推荐网站:w3school 在线教程
用途:关键词参考书等等
注:本人习惯小写字母,建议关键字大写
SQL语言的分类:
1. DDl:数据定义语言,用来定义数据库对象(数据库,表,字段)
2.DML:数据操作语言,用来对数据库表中的数据进行增删改
3.DQL:数据查询语言,用来查询数据库中表的记录
4.DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限
1. DDl:数据定义语言,用来定义数据库对象(数据库,表,字段)
数据库:
Show databases; | 查询所有数据库 |
Create database [if not exists] + 数据库名 [default charset +字符集] [collate +排序规则]; | 创建数据库 |
Use +数据库名; | 使用数据库 |
Drop database [if exists] +数据库名; | 删除数据库 |
Select database(); | 查询当前数据库 |
表:
Show tables; | 查询当前数据库所有表 |
Create table +表名(字段 字段类型,字段 字段类型); | 创建表 |
Desc +表名; | 查询表结构 |
Show create table +表名; | 查询指定表的建表语句 |
Alter table +表名+add+字段名 +类型(长度) [comment '注释']; | 向表里添加字段 |
Alter table+表名+change+旧字段名 新字段名 类型(长度) [comment '注解'] ; | 修改字段名和字段类型 |
Alter table+表名+modify+字段名 新数据类型(长度); | 修改数据类型 |
Alter table+表名+drop+字段名; | 删除字段 |
Alter table+表名+rename to+新表名; | 修改表名 |
Truncate table +表名; | 删除指定表,并重新创建该表 |
Drop table [if exists] 表名; | 删除表 |
创建表:
Create table +表名 (
字段1 +字段1类型+[comment+字段1注释 ]
) +[comment+表注释];
Comment+注释
2.DML:数据操作语言,用来对数据库表中的数据进行增删改
Insert into 表名 (字段名1,字段名2,…) values(值1,值2,…); | 给指定字段添加数据 |
Insert into 表名 values(值1,值2,…); | 给全部字段添加数据 |
Insert into 表名(字段名1,字段名2,…) values (值1,值2,…),(值1,值2,…); | 批量添加数据 |
Insert into 表名 values (值1,值2,…),(值1,值2,…); |
|
Update 表名 set 字段1=值1,字段2=值2 [where 条件]; | 修改数据 |
Delete from 表名 [where 条件]; | 删除数据 |
3.DQL:数据查询语言,用来查询数据库中表的记录
基本查询
Select 字段1,字段2… from 表名; | 查询多个字段 |
Select * from 表名; | 查询所有字段 |
Select 字段1 [as 别名1], 字段2 [as 别名2]… from 表名; | 设置别名 |
Select distinct 字段列表 from 表名; | 去除重复记录 |
条件查询
Select 字段列表 from 表名 where 条件列表;
In(…) | 在in 之后的列表中的值,满足其一即可 |
Like 占位符 | 模糊匹配(_ 匹配单个字符,%匹配任意个字符) |
聚合函数:
注意:null值不参与所有聚合函数运算。
Select count()/avg()/max()/min()/sum() from 表名; | 统计表中的数量/平均/最大/最小/之和 |
分组查询:
Select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
执行顺序:where > 聚合函数 > having
排序查询:
Select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
排序方式: asc 升序(默认值,可省略) desc 降序
分页查询:
Select 字段列表 from 表名 limit 起始索引,查询记录数;
执行顺序:
From 表名列表-->where 条件列表-->group by 分组字段列表-->having 分组后条件列表
-->select 字段列表-->order by 排序字段列表-->limit 分页参数
编写顺序:
Select-->from-->where-->group by-->having-->order by-->limit
4.DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限
用户管理
Use mysql; Select * from user; | 查询用户 |
Create user '用户名'@'主机名' identified by '密码'; | 创建用户 |
Alter user '用户名'@'主机名' identified with mysql_native_password by '新密码' | 修改用户密码 |
Drop user '用户名'@'主机名' | 删除用户 |
权限控制
Show grants for '用户名'@'主机名' | 查询权限 |
Grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'; | 授予权限 |
Revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'; | 撤销权限 |