DML、DDl、DQL实战

表的创建与删除

create table 学生成绩(
id int primary key,
name char(10) not null,
sex char(10) not null,
物理 int not null,
语文 int not null,
英语 int not null,
数学 int
)DEFAULT CHARSET=utf8mb4;

drop table 学生成绩;

DML

数据操纵语言DML主要有三种形式:

  1. 插入:INSERT
  2. 更新:UPDATE
  3. 删除:DELETE

M:manipulate 操纵

##增
insert 学生成绩 Values(02,‘天李德’,‘男’,100,90,111,90);
insert 学生成绩 Values(03,‘万德华’,‘女’,90,90,122,80);
insert 学生成绩 Values(04,‘德玛西亚’,‘男’,90,80,133,90);
insert 学生成绩 Values(05,‘刘德华’,‘男’,80,20,55,70);
insert 学生成绩 Values(06,‘刘看山’,‘男’,70,30,66,90);
insert 学生成绩 Values(07,‘刘天’, ‘女’,50,20,66,null);
insert 学生成绩(id,name,‘男’,物理,语文,英语) Values(‘08’,‘刘天俊’,20,65,70);

##删
delete from 学生成绩 where id=8;
delete from 学生成绩;
truncate table 学生成绩; ##删除表,再创建一个一模一样的

##改
update 学生成绩 set 语文=2 where id = 2;
update 学生成绩 set 语文=40 ,物理=20 where id = 2;

update 学生成绩 set 语文=2; ##不加条件则全部修改

DDL

数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
索引、同义词、聚簇等

D:define 定义

##添加一列
alter table student add sex char(2);
select * from student;

##删除列
alter table student drop sex;

##修改表名

alter table student rename teacher;
alter table teacher rename student;

##修改表的字符集
alter table student character set utf8;
show create table student;

##修改名称类型
alter table student change sex sex int not null;
alter table student modify sex char(20) null;
desc student;

DQL

数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块。

Q:query 查询

##去重
select * from 学生成绩;
select distinct 物理 from 学生成绩;

##计算列
select 物理,语文,物理+语文 from 学生成绩;
select 物理,数学,物理+数学 from 学生成绩;
select name 物理,数学,物理+ ifnull(数学,0) from 学生成绩;

##起别名
select name,物理,数学,物理+ ifnull(数学,0) as 总分 from 学生成绩;

##模糊查询
##_代表一个占位符,%代表随意
select * from 学生成绩 where name like ‘德%’;
select * from 学生成绩 where name like ‘_德%’;
select * from 学生成绩 where name like ‘__德%’;

1、排序

##默认是asc(升序),记:d:decline(降)

##order by XXX desc

select * from 学生成绩 order by 物理 desc ,语文 asc;

2、聚合函数(纵向计算)

##count
select count(数学) from 学生成绩; ## 排除NULL
select count(ifnull(数学,0)) as 数学人数 from 学生成绩; ## 如果为null值则为0

##max 最高分
select max(数学) from 学生成绩;

##min 最低分
select min(数学) from 学生成绩;

##sum 全部总和
select sum(数学) from 学生成绩;

##avg 平均分
select avg(数学) from 学生成绩;

3、分组查询

##group by
select sex, count(sex) from 学生成绩 group by sex; ##男女生数量
select sex, avg(数学),count(id) from 学生成绩 group by sex; ##男女生数学平均成绩
– (注意:只加分组字段和聚合函数,不要添加额外字段)
select sex, avg(数学),count(id) from 学生成绩 where 数学>70 group by sex; ##数学<=70并不参与分组
select sex, avg(数学),count(id) from 学生成绩 where 数学>70 group by sex HAVING count(id)>2;

– where 在分组之前进行,have在分组之后

4、分页查询

select * from 学生成绩 limit m,n;
##m是索引数据的第m+1条
##n是一页显示的条数
##该语句只能在mysql中用

##约束
1、主键约束:primary key
2、非空约束:not null
3、唯一约束:unique
4、外键约束:foreign key
5、自动增长:auto_increment ##必须配合主键使用

##删除主键和唯一的方式
alter table 学生成绩 drop primary key
alter table 学生成绩 drop index name

##添加外键
constraint 外键名称 foreign key (外键列名称) references 主表名称(字段)

4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

  1. GRANT:授权。

  2. ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
    回滚—ROLLBACK
    回滚命令使数据库状态回到上次最后提交的状态。其格式为:
    SQL>ROLLBACK;

  3. COMMIT [WORK]:提交。

数据库备份:
mysqldump -uroot -p123456 db1> D://a.sql
将数据库db1备份至a.sql

发布了171 篇原创文章 · 获赞 29 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43560272/article/details/103791685