总的来说
- DDL即data definition language,也就是对数据库、表的一些定义相关的操作
- DML即data manipulate language,也就是对数据表的添加、修改、删除相关的操作
- DQL即data query language,也就是对数据库表的查询相关的操作
- DCL即data control language,也就是对数据库用户管理、权限管理相关的操作
- 接下来详解了每种下面的一些具体操作方式和案例
一、DDL(Data Definition Language)
DDL-数据库操作
--查看有哪些数据库
show databases;
--查看当前使用的是哪个数据库
select database();
--创建数据库
create database [if not exitst] 数据库名 [default charset 字符集][collate 字符集的排序规则]
--举例
create database tests default charset utf8mb4; --使用数据库 use database tests; --tests 为数据库名
DDL-表操作
--修改表名
alter table 表名 rename to 新表名 alter table test rename to student;
--查看表
show tables;
--删除表
drop table [if exists]表名;
--删除指定表并重新创建此表,也可以理解为清空表
truncate table 表名;
--添加字段
alter table 表名 add 字段名 类型(长度) [comment注释][约束];
--举例
alter table student add stuName varchar(20);
--查看表中的字段
--desc 表名
desc student;
--修改字段
--修改数据类型
alter table 表名 modify 字段名 新数据类型(长度)
--修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释][约束];
--举例 alter table student change stuName nickname varchar(30) comment '昵称';
--删除
alter table 表名 drop 字段名;
--举例 alter table student nickname;
二、DML(Data Manipulation Language)
添加,修改,删除 数据记录,也就是insert,update,delete
添加数据
--1.在制定字段中添加数据 insert into 表名(字段1,字段2,..)values (值1, 值2,...) --2.给全部字段添加数据 insert into 表名 values(值1,值2,...) --3.批量添加数据 --3.1给制定字段批量添加数据 insert into 表名(字段1,字段2,..)values (值1, 值2,...)(值1, 值2,...)(值1, 值2,...); --3.2给所有字段批量添加数据 insert into 表名values(值1, 值2,...)(值1, 值2,...)(值1, 值2,...);
修改数据
update 表名 set 字段名1=值1,字段名2=值2,...[where 条件];
举例
update student set nickname = 'fanghua' where id = 1;
--如果update没有加where 条件,则会更新整个数据库
删除数据
delete from 表名 [where 条件]
举例 delete from student where nickname = '芳华';
删除所有学生
delete from student;
三、DQL(Data Query Language)数据查询语句
条件查询where
聚合函数(count、max、min、avg、sum)sum是字段的值的总和,count是记录的条数
分组查询(group by)
排序查询(order by desc/asc)
分页查询(limit)
select 字段列表 from 表名 limit 起始索引,查询记录条数 第一个参数是起始索引
--查询第1页数据,每一页10条记录
select * from student limit 0,10;
--查询第2页数据,显示10条记录
select * from student limit 10,10;
习题
--1.查询学号为1,2,3的男学生信息
select * from student where gender='男' and sutNum in(1,2,3)
--2.查询性别为女,且年龄在14-19岁的姓名为2个字的学生信息 (like后面跟两个下划线)
select * from student where age (between 14 and 19) and name like '__';
--3.统计学生表,年龄小于18岁的男学生和女学生
select gender, count(*) from student where age < 18 group by gender;
--4.查询所有年龄小于17岁的学生姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入学时间降序排序
select name, age from student where age < 17 order by age, entrydate desc;
--5.查询性别为女,且年龄在14-19岁的前8个学生,并对查询结果按年龄升序排序,如果年龄相同按入学时间降序排序
select * from student where gender = '女' and age (between 14 and 19) order by age, entrydate desc limit 0,8;
四、DCL(Data Control Language)数据控制语言,用来管理数据 用户、控制数据的访问权限
--创建用户afang,只能在当前主机访问,密码是123456
create user 'afang'@'localhost' identified by '123456';
--创建afang,可在任意主机访问该数据库,密码123456;
create user 'afang'@'%' identified by '123456';
--修改用户密码
alter user 'afang'@'%' identified by '123';
--删除afang@localhost用户
drop user 'afang'@'%';