mysql数据库语句分类_mysql数据库-SQL语句的分类-DML语句

1.插入一条记录

语法:INSERT INTO tbname (field1,field2...fieldn)VALUES(value1,value2...valuen);

139408202_1_20180725122802310

也可以不用指定字段名,但是values后面的顺序应该和字段的排列顺序一致;

可空字段,或有默认值的字段,自增字段,可以不写对应的value值,会默认取NULL,或者默认值,自增的下一个数字。

如下图,增加了一条空记录:

139408202_2_20180725122802357

2.插入多条记录

语法:

INSERT INTO tbname (field1,field2...fieldn)VALUES

(record1_value1,record1_value2...record1_valuen),

(record2_value1,record2_value2...record2_valuen)

...

(recordn_value1,recordn_value2...recordn_valuen);

更新记录

语法1:UPDATE tbname SET field1=expr1,field2=expr2...fieldn=exprn [WHERE condition]

139408202_3_20180725122802450

语法2:UPDATE t1,t2...tn SET t1.field1=expr1,tn.fieldn=exprn [WHERE condition]

注意:1.如果不加where条件,将会把表的所有记录修改;

2.如果表名用别名,则后面也要用相应的别名,否则会提示语法错误;

删除记录

语法1:DELETE FROM tbname [WHERE condition];

语法2:DELETE t1,t2...tn FROM t1,t2...tn [WHERE condition];

查询记录

语法:SELECT * FROM tbname [WHERE condition];查询去重时,使用distinct关键字来实现;

排序时,用关键字 order by 来实现,DESC表示降序,ASC表示升序;order by后面可以跟多个不同的排序字段,作为第二、第三排序依据;

如果只想取部分结果显示时,可以用limit关键字来实现;

聚合查询

语法:

SELECT [field1,field2,...fieldn] fun_name

FROM tbname

[WHERE condition]

[GROUP BY field1,field2,...fieldn [WITH ROLLUP]]

[HAVING where condition]fun_name:聚合函数,常用 的有sum(),count(),max(),min();

group by:表示要进行分类聚合的字段;

with rollup:可选语法,表示是否对分类聚合后的结果进行再汇总;

having:表示对分类后的结果再进行条件的过滤。having与where的区别在于,having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤;

表连接-内连接

从大类上分,表连接分为内连接和外连接,它们之间的主要区别是:内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录,常用的是内连接。

内连接(INNER JOIN)语法:

SELECT *

FROM tbname1

INNER JOIN tbname2 ON tbname1.column=tbname2.column

139408202_4_20180725122802732

139408202_5_20180725122802841

与内连接等价效果

表连接-外连接

外连接分为左连接和右连接:

左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录;

右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录;

139408202_6_2018072512280391

左连接

139408202_7_20180725122803528

右连接

子查询

当进行查询的时候,需要的条件是另一个select语句的结果,这时候,就要用到子查询,用于子查询的关键字主要包括in,not in,=,!=,exists,not exists等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值