数据库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创建数据库create database 数据库名;
1.2. 创建数据库前先判断是否存在create database if not exists 数据库名;
1.3. 创建数据库,判断是否存在,并指定字符集create database if not exists 数据库名 character set 字符集;
- 查询数据库
2.1 查询所有数据库名称show databases;
2.2 查询某个数据库的字符集 – 其实就是查询数据库的创建sql语句show create database 数据库名;
- 修改数据库的字符集
alter database 数据库名 character set 字符集;
- 删除
4.1 删除数据库drop database 数据库名;
4.2 删除数据库前先判断是否存在drop database if exists 数据库名;
- 使用数据库
5.1 查询正在使用的数据库select database();
5.2 使用数据库use 数据库名;
- 操作表
- 创建
create table 表名(列名1 数据类型1, 列名2 数据类型2, ···, 列名n 数据类型n);
- 查询
2.1 查询某个数据库的所有表名称show tables;
2.2 查询表结构desc 表名;
2.3 查询表的创建语句show create table 表名;
- 修改
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 添加全部字段insert into users (id, name, age) values(1, '张三', 18),(2, '李四', 20);
1.2 添加部分字段insert into users (name, age) values('王五', 22);
- 删除
2.1 删除满足条件的数据delete from 表名 where 条件
2.2 删除表中所有数据truncate table 表名
- 修改
update 表名 set 列名1=值1, 列名2=值2, 列名3=值3 where 条件;
三、DQL
DQL的全称是Data Query Language,是对数据库中表格的数据进行查询操作。
完整的查询语法
select 字段名 from 表格名 where 条件 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定;
- 基础查询
(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 数学- 条件查询
使用 where 和 运算符 构成条件查询
例如:查询学号为1的学生信息select * from student where id=1;
- 模糊查询
使用关键字like
通配符:① _ 匹配一个字符 ② % 匹配0-n个字符
例如:查询姓马的有哪些?select * from student where name like '马%';
四、DCL
DQL的全称是Data Control Language,是对数据库中表格的数据进行用户权限的控制–授权和撤销权限。
- 管理用户
1.1 创建一个用户 zs,密码 666create user '用户名'@'主机名' identified by '密码';
1.2 删除一个用户drop user '用户名'@'主机名';
1.3 修改密码set password for '用户名'@'主机名'= password ('新密码');
- 管理权限
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'@'%';