数据库SQL语言的分类

四大类型:

1. DDL(Data Definition Language)数据定义语言:操作数据库和表结构。
2. DML(Data Manipulation Language)数据操作语言:操作数据记录–增删改操作。
3. DQL(Data Query Language)数据查询语言:查询数据记录。
4. DCL(Data Control Language)数据控制语言:用户权限的控制–授权和撤销权限。

一般情况只提出四种类型,其实还有第五种类型

5. TCL事务控制命令:事务的操作在jdbc流程中。

(1)开启事务:start transaction; (2)回滚事务:rollback; (3)提交事务:commit;


一、DDL

ddl的全称是Data Definition Language,是对数据库、表进行操作的。

  • 操作数据库
  1. 创建
    1.1创建数据库
    create database 数据库名; 1.2. 创建数据库前先判断是否存在
    create database if not exists 数据库名; 1.3. 创建数据库,判断是否存在,并指定字符集
    create database if not exists 数据库名 character set 字符集;
  2. 查询数据库
    2.1 查询所有数据库名称
    show databases; 2.2 查询某个数据库的字符集 – 其实就是查询数据库的创建sql语句
    show create database 数据库名;
  3. 修改数据库的字符集
    alter database 数据库名 character set 字符集;
  4. 删除
    4.1 删除数据库
    drop database 数据库名; 4.2 删除数据库前先判断是否存在
    drop database if exists 数据库名;
  5. 使用数据库
    5.1 查询正在使用的数据库
    select database(); 5.2 使用数据库
    use 数据库名;
  • 操作表
  1. 创建
    create table 表名(列名1 数据类型1, 列名2 数据类型2, ···, 列名n 数据类型n);
  2. 查询
    2.1 查询某个数据库的所有表名称
    show tables; 2.2 查询表结构
    desc 表名; 2.3 查询表的创建语句
    show create table 表名;
  3. 修改
    3.1 修改表
    (a)修改表名
    alter table 表名 rename to 新表名; (b)修改表的字符集
    alter table 表名 character set 字符集; 3.2 修改列
    (a)添加一列
    alter table 表名 add 列名 数据类型; (b)修改列类型
    alter table 表名 modify 列名 数据类型; (c)修改列名和类型
    alter table 表名 change 旧列名 新列名 数据类型; (d)删除列
    alter table 表名 drop 列名;

二、DML

DQL的全称是Data Manipulation Language,是对数据库中表格的数据进行添加、删除、修改操作。

创建一个users表
create table users (id int, name varchar(20), age int,)

  1. 添加
    1.1 添加全部字段
    insert into users (id, name, age) values(1, '张三', 18),(2, '李四', 20); 1.2 添加部分字段
    insert into users (name, age) values('王五', 22);
  2. 删除
    2.1 删除满足条件的数据
    delete from 表名 where 条件 2.2 删除表中所有数据
    truncate table 表名
  3. 修改
    update 表名 set 列名1=值1, 列名2=值2, 列名3=值3 where 条件;

三、DQL

DQL的全称是Data Query Language,是对数据库中表格的数据进行查询操作。

完整的查询语法
select 字段名 from 表格名 where 条件 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定;

  1. 基础查询
    (a)多个字段查询
    selelct 字段1, 字段2, ··· from 表名; (b)去除重复
    select distinct 字段1, 字段2, ··· from 表名; (c)四则运算:例如计算数学和英语成绩之和
    select math, english, ifnull(math,o)+ifnull(english,0) from student; (d)起别名
    字段名 as 想要的别名; 或者将as换成空格
    例如:math as 数学 或 math 数学
  2. 条件查询
    使用 where运算符 构成条件查询
    例如:查询学号为1的学生信息
    select * from student where id=1;
  3. 模糊查询
    使用关键字like
    通配符:① _ 匹配一个字符 ② % 匹配0-n个字符
    例如:查询姓马的有哪些?
    select * from student where name like '马%';

四、DCL

DQL的全称是Data Control Language,是对数据库中表格的数据进行用户权限的控制–授权和撤销权限。

  1. 管理用户
    1.1 创建一个用户 zs,密码 666
    create user '用户名'@'主机名' identified by '密码'; 1.2 删除一个用户
    drop user '用户名'@'主机名'; 1.3 修改密码
    set password for '用户名'@'主机名'= password ('新密码');
  2. 管理权限
    2.1 查询权限:
    show grants for '用户名'@'主机名'; 例如:
    show grants for 'lisi'@'%';show grants for 'root'@'%'; 2.2 授予权限:
    grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'; 例如:给张三用户授予所有权限,在任意数据库任意表上
    grant all on *.* to 'zhangsan'@'localhost'; 2.3 撤销权限:
    revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'; 例如:撤销李四对数据库db3的修改权限
    revoke update on db3. `account` from 'lisi'@'%';