SQL语言分类之DDL、DML、DCL、DQL

时间:2021-11-10 20:49:29

SQL 语言共分为四大类:

  • 数据控制语言 DCL
  • 数据定义语言 DDL
  • 数据操纵语言 DML
  • 数据查询语言 DQL

一、数据控制语言 DCL

1.1 作用

用来设置或更改数据库用户或角色权限的语句,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

1.2 实例

创建用户

create user ‘用户名’@’允许其登录的地址’ identified by ‘密码’;

删除用户

drop user ‘用户名’@’允许其登录的地址’;

修改自己账号密码

set password = password(‘新密码’);

修改其他账号密码

set password for ‘用户名’@’允许其登录的地址’ = password(‘新密码’);

权限分配

grant 权限名1,权限名2, .... on 数据库名.对象名 to ‘用户名’@’允许其登录的地址’ identified by ‘密码’;

删除权限

revoke 权限名1,权限名2, .... on 数据库名.对象名 from ‘用户名’@’允许其登录的地址’ ;

二、 数据定义语言 DDL

2.1 作用

定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等操作。

2.2 实例

查看所有数据库

show databases;

查看部分数据库

show databases like "匹配模式";
* _:匹配单个任意字符
* %:匹配多个任意字符

创建数据库

create database 数据库名称 [库选项];
* charset:字符集
* collate:校对集

选择数据库

use 数据库名称;

查看当前数据库

select database();

修改数据库选项(谨慎操作)

alter database 数据库名称 新的库选项;

删除数据库

drop database 数据库名称;

查看所有数据表

show tables;

查看部分表

show tables like "匹配模式";

查看表结构

desc 表名; 或 show columns from 表名;

创建表

create table 表名称(字段 字段类型 [字段属性],字段 字段类型 [字段属性],...) [表选项];

扩展创建表

create table 新表名 like 已有表名;

注:只复制表结构,不复制数据

修改表名

rename table 旧表名 to 新表名;

修改表选项

alter table 表名 新的表选项;

修改数据表结构

新增:alter table 表名 add 字段名 字段类型 [字段属性] [位置];
修改:alter table 表名 modify 字段名 新字段类型 [新字段属性] [新位置];
删除:alter table 表名 drop 字段名;

删除表

drop table 表名;

三、数据操纵语言 DML

3.1 作用

对数据库里的数据进行操作。

3.2 实例

向表中所有字段插入数据

insert into 表名  values (值列表);

向表中指定字段插入数据

insert into 表名 (字段1,字段2,...) values (字段1的值,字段2的值,...);

向表中同时插入多条数据

insert into 表名 values (第一条记录的值), (第二条记录的值),...;

向表中插入其它表的查询结果数据

insert into 表名  select * from 其它表名 [where 条件];

修改指定记录数据(where 条件一定要写上)

update 表名 set 字段名=新的值, 字段名=新的值... where 条件;

删除表中指定数据

delete from 表名 where 条件;

删除所有记录

delete from 表名 where 条件;

删除表中所有数据

delete from 表名;

truncate table 表名;
  • delete 方式只删除表中所有数据,不清空 auto_increment 记录数。
  • truncate 方式删除表中所有数据,并清空 auto_increment 记录数。

四、数据查询语言 DQL

4.1 作用

用来查询指定数据。

4.2实例

查询

select 选项 字段列表 from 数据源
where 条件
group by 分组 having 条件
order by 排序
limit 分页 ;

select选项 :

  • all:默认的,表示查询所有的记录

  • distinct:去重,去除重复的记录(所有的字段值都相同)