SQL基础语法
2021/5/11 2:25:26
本文主要是介绍SQL基础语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、DDL
1.创建表
CREATE TABLE mytable ( # int 类型,不为空,自增 id INT NOT NULL AUTO_INCREMENT, # int 类型,不可为空,默认值为 1,不为空 col1 INT NOT NULL DEFAULT 1, # 变长字符串类型,最长为 45 个字符,可以为空 col2 VARCHAR(45) NULL, # 日期类型,可为空 col3 DATE NULL, # 设置主键为 id PRIMARY KEY (`id`));
2.修改表
2.1 增
2.1.1 添加列
如果想在一个已经建好的表中添加一列,可以用诸如:
alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null;
这条语句会向已有的表中加入新的一列,这一列在表的最后一列位置。如果我们希望添加在指定的一列,可以用:
alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null after COLUMN_NAME;
注意,上面这个命令的意思是说添加新列到某一列后面。如果想添加到第一列的话,可以用:
alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null first;
2.2 删
2.2.2 删除列
ALTER TABLE mytable DROP COLUMN col;
2.2.3 删除整张表
DROP TABLE mytable;
2.2.4 删除整张表的数据
TRUNCATE TABLE
可以清空表,也就是删除所有行。
TRUNCATE TABLE mytable;
2.2.5 删除有外键约束的表
drop table student cascade constraints;
2.2.6 删除拥有对象的用户
drop table 用户名 cascade;
在 Oracle 使用 Drop 语句时,例如: drop table CUSTOMER_INFO cascade constraints; 在删除主键约束时:
使用 cascade 关键字,可以删除参照该列的那些外键和使用 on delete cascade 关键字来级联删除参照该关键字的数据。
使用 cascade constraint 在删除列的同时删除约束。例如主键约束等等。
使用 Drop table table_a cascade constraints 可以以删除关联 table table_a 的 constraint 来达成你 drop table table_a 的目的,原来属于表 table_b 的 foreign key constraint 已经跟随着被删除掉了,但是,储存在 table table_b 的资料可不会被删除,也就是说 Drop table cascade constraints 是不影响到存储于objec 里的 row data。
总的来说,对于那些处于包含了多个列的约束中的列的删除,我们一定要使用 cascade constraint 关键字,否则没有必要,虽然使用了也是没有错误的。
2.3 改
2.3.1 修改列名
alter table 表名 rename column 列名 to 新列名
2.3.2 修改列的属性
alter table 表名 modify 列名 varchar2(字符长度)/number(精度)/char(数据类型/default ‘默认值’);
2.3.3 重命名表
rename 表名 to 新表名
二、DML
1.增
1.1 普通插入
INSERT INTO mytable(col1, col2) VALUES(val1, val2);
1.2 插入检索出来的数据
INSERT INTO mytable1(col1, col2) SELECT col1, col2 FROM mytable2;
1.3 将一个表的内容插入到一个新表
CREATE TABLE newtable AS SELECT * FROM mytable;
1.4 向表中添加注释
comment on table 表名 is ‘注释文字’
2.删
2.1 删除某些条数据
DELETE FROM mytable WHERE id = 1;
3.改
3.1 更新表数据:
UPDATE mytable SET col = val WHERE id = 1;
4.查
4.1 DISTINCT
相同值只会出现一次。它作用于所有列,也就是说所有列的值都相同才算相同。
SELECT DISTINCT col1, col2 FROM mytable;
4.2 LIMIT
限制返回的行数。可以有两个参数,第一个参数为起始行,从 0 开始;第二个参数为返回的总行数。
返回前 5 行:
SELECT * FROM mytable LIMIT 5; SELECT * FROM mytable LIMIT 0, 5;
返回第 3 ~ 5 行:
SELECT * FROM mytable LIMIT 2, 3;
4.3 通配符
通配符也是用在过滤语句中,但它只能用于文本字段。
-
% 匹配 >=0 个任意字符;
-
_ 匹配 ==1 个任意字符;
-
[ ] 可以匹配集合内的字符,例如 [ab] 将匹配字符 a 或者 b。用脱字符 ^ 可以对其进行否定,也就是不匹配集合内的字符。
使用 Like 来进行通配符匹配。
SELECT * FROM mytable WHERE col LIKE '[^AB]%'; -- 不以 A 和 B 开头的任意文本
不要滥用通配符,通配符位于开头处匹配会非常慢。
这篇关于SQL基础语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么修改Kafka的JVM参数?-icode9专业技术文章分享
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?