Sql的DDL、DML、DQL、DCL

总的来说

  • 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'@'%';

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值