SQL的DML语句

select语句(查询语句)

select  '属性列表'  from  '表名或视图名列表'  [where  '条件表达式1' ]  [ group  by '属性名1'  [ having '条件表达式2' ] ]  [ order  by '属性名2'  [ asc / desc ] ] 

该语句是SQL查询语句的语句规则。其中,“属性列表”参数表示需要查询的字段名,“表名或视图名列表”参数表示从指定的表或视图中查询数据,表或视图可以有多个,“条件表达式1”参数指定查询条件,“属性名1”参数指定该字段中的数据进行分组,“条件表达式2”参数表示数据分组时,满足该表达式的数据输出;“属性名2”参数指定按照该字段中的数据进行排序,排序的方式由asc和desc两个参数指出,asc为升序,他也是默认参数,desc为降序(从小到大为升序,从大到小为降序)。
"[ ]"表示可以写也可以不写。

insert语句(插入语句)

单条语句插入

insert  into  '表名'  values('值1','值2',...,'值n')

该语句可以将向数据表中插入一条数据,但是’值1’,‘值2’,…,'值n’分别对应表中的每个字段,顺序一致,数据类型一样,并且n必须等于数据表中的字段个数。

insert  into  '表名'('字段名1','字段名2',...,'字段名n') values('值1','值2',...,'值n')

该语句可以将向数据表中插入一条数据,但是’值1’,‘值2’,…,‘值n’分别对应’字段名1’,‘字段名2’,…,‘字段名n’,顺序一致,数据类型一样,n可以小于等于数据表中字段的个数。

多行语句插入

insert  into  '表名'('字段名1','字段名2',...,'字段名n') 
values('值1','值2',...,'值n'),
('值1','值2',...,'值n'),
.
.
. ,
('值1','值2',...,'值n')

该语句可以向数据表中同时插入多条数据,每条数据之间使用","隔开。

查询插入

nsert  into  '表名1' ('属性列表1')
  select  '属性列表2'  from  '表名2'  [where  '条件表达式'];

该语句可以将查询结果插入到另一个数据表中,但是使用这个方法时必须保证“属性列表1”与“属性列表2”中的字段个数相同,而且,每个对应的字段的数据类型也必须相同。其中,“表名1”参数表示查询结果要插入的数据表;“表名2”表示要查询的数据表;“条件表达式”参数设置了select语句的查询条件。

update(更新语句)

update  '表名'  set  '属性名1'='数值1','属性名2'='属性名2',...,'属性名n'='数值n'  where  '条件表达式';

该语句可以对数据进行更新操作。其中,“属性名1”到“属性名n”表示需要更新的字段(n可以小于等于表的属性总数,没有列出的字段就表示他不需要更新,数据不变);“条件表达式”表示更新满足条件的数据;如果没有where语句,将会对整个数据表进行更新。

delete(删除语句)

delete  from  '表名'  [where  '条件表达式']

如果没有这个条件表达式,数据库系统就会将这个数据表数据全部删除,并且整个删除过程不会有任何提示,数据也不能恢复。

delete epd from exa_paper_detail epd left join exa_paper ep on epd.PAPER_ID = ep.ID where ep.DELETE_MARK = 0 and ep.TEST_ID = 36 and epd.IS_DONE = 1

将关联的数据删除。

条件表达式的分类

1.比较

=、<、>、<=、>=、!=、!<、<>(“等于”)、!>

select * from students where age >= 10 and age <=20 ;

.>该语句可以将数据表中年龄(age)在10~20的所有学生查询出来。

2.指定范围

between A and B:在A、B之间,包括A和B)
not between A and B:不在A、B之间,不包括A和B,即A的B值不取

select * from students where age between 10 and 20;

该语句可以将数据表中年龄(age)在10~20的所有学生查询出来。

select * from students where age not between 10 and 20;

该语句可以将数据表中年龄(age)不在10~20的所有学生查询出来。

3.指定集合

in:在指定的取值范围
not in:不在指定的取值范围

select * from students where age in(10,15,20);

该语句可以将数据表中年龄(age)是10、15、20的所有学生查询出来。

select * from students where age not in(10,15,20);

该语句可以将数据表中年龄(age)不是10、15、20的所有学生查询出来。

4.匹配字符(模糊查询)

like :匹配
not like:不匹配

select * from students where name like "%a%";

该语句可以将数据表中名字(name)中带有’a’的所有学生查询出来。

select * from students where name not like "%a%";

该语句可以将数据表中名字(name)中不带有’a’的所有学生查询出来。

5.是否为空值

is null:为空
is not null :不为空

select * from students where address is null;

该语句可以将数据表中地址(address)为"null"的所有学生查询出来。

select * from students where address is not null;

该语句可以将数据表中地址(address)不为"null"的所有学生查询出来。
注:[not] like ‘字符串’;“字符串”表示指定用来匹配的字符串;该字符串必须加单引号或加双引号,他既可以是一个完整的字符串,又可以是一个包含百分号(%)或下划线()的通配字符;百分号(%)可以代替任何长度的字符串,如b%k就表示以字母b开头,字母k结尾的任意字符串;“”只能表示单个任意字符,如b_k就表示以字母b开头,以字母k结尾的任意3个字符的字符串(关键字like不区分字母的大小写)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值