数据库知识点汇总

*十分个人向,请谨慎参考

一.数据定义语言(DDL)

1.动词

CREATE、ALTER、DROP

2.实例

2.1数据库的管理

CREATE DATABASE db_name
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utfmb4_0900_ai_ci; -- 创建数据库
SHOW CREATE DATABASE db_name; -- 查看数据库
ALTER DATABASE db_name
DEFAULT CHARACTER SET gbk
DEFAULT COLLATE gbk_chinese_ci; -- 修改数据库
DROP DATABASE db_name; -- 删除数据库

2.2数据表的管理

2.2.1创建数据表
CREATE TABLE table_name(
`sno` CHAR(10) NOT NULL  COMMENT '学号', -- NOT NULL非空约束
`sn` VARCHAR(45) COMMENT '姓名',
`sex` ENUM('男','女') DEFAULT '男' COMMENT '性别',
`score` DECIMAL(5,2) CHECK(score>=0 AND score<=100) COMMENT '成绩', -- CHECK检查约束
UNIQUE(`sn`,`sex`), -- UNIQUE唯一约束
PRIMARY KEY(`sno`), -- PRIMARY KEY主码约束
FOREGIN KEY(`sn`) REFERENCES sc(`sn`) -- FOREGIN KEY外码约束
)
2.2.2修改数据表
--ADD
ALTER TABLE s
ADD maj VARCHAR(45);
--RENAME 修改表名
ALTER TABLE s
RENAME student;
--CHANGE 修改字段名
ALTER TABLE s
CHANGE s sname;
--MODIFY 修改字段数据类型和字段排序
ALTER TABLE s
MODIFY sn CHAR(30);--修改自动数据类型
ALTER TABLE s
MODIFY maj VARCHAR(45) AFTER sn;--修改字段排序
--ENGINE 修改表的存储引擎
ALTER TABLE s
ENGINE=MyISAM;--修改自动数据类型
--DROP删除字段和完整性约束

二.数据查询语言(DQL)

1.动词

SELECT

2.实例

2.1无条件和有条件查询

select sno
from s;--无条件查询
select sno
from s
where sn='Bob';--有条件查询

2.2聚合函数查询

select sno as 学号,count(*) as 选课门数
from sc
group by sno
having count(*)>=3;--having必须在group by之后

2.3查询结果排序

select *
from c
order by ct desc--升序用asc

2.4限制查询结果数量

select tno,tn,prof
from t
limit 1,3--从第2位老师开始的3位教师的教师号、姓名和昵称

2.5多关系数据查询

2.5.1内连接查询
--方法一
select s.sno,sn,cno
from s,sc
where s.sno='s5' and s.sno=sc.sno;
--方法二
select s.sno,sn,cno
from s inner join sc
on s.sno='s5' and s.sno=sc.sno;
2.5.2外连接查询

左(右)连接用于显示符号条件的记录以及左(右)边表中不符合条件的记录

FULL (OUTER) JOIN用于显示符号条件的记录以及左右两边表中不符合条件的记录

select s.sno,sn,cno
from s left outer join sc
on s.sno='s5' and s.sno=sc.sno;
2.5.3交叉连接查询
select *
from t cross jion c;
2.5.4自链接查询
--查询与王彤专业相同的学生的学号和姓名
--方法1
select x.sno,x.sn
from s as x,s as y
where x.maj=y.maj and y.sn='王彤';
--方法2
select x.sno,x.sn
from s as x inner join s as y
on x.maj=y.maj and y.sn='王彤';

2.6子查询

2.6.1普通子查询
2.6.1.1返回一个值的子查询
--查询与教师“顾伟”职称不同的教师的教师号、姓名和职称
select tno,tn,prof
from t
where prof<>(select prof
             from t
             where tn='顾伟')
2.6.1.2返回多个值的子查询
--使用ANY
-->ANY相当于>min()
--<ANY相当于<max()
--<>ANY相当于not in
select sno
from c
where cno=any(
            select cno
            from sc
            where sno='s2');
--使用IN
--in相当于=any
select sno
from c
where cno in(select cno
            from sc
            where sno='s2');

2.6.2相关子查询

定义:子查询的条件查询需要引进父查询表中的属性值

三.数据操纵语言(DML)

1.动词

INSERT、UPDATE、DELETE

2.实例

--添加数据
insert into s(sno,sn,age)
values('s1','Bob',21);
--修改数据
update s
set dept='计算机学院'
where sno='s1';
--删除数据
delete
from s
where age=21;

四.数据控制语言(DCL)

1.动词

GRANT、REVOKE

2.实例

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值