1.创建数据库测试
连接后新建数据库新建三个表。学生表,教师表,教学表
er图(未设计)
设计后
2.
1NF每项不可拆分
2NF依赖唯一主键
3NF不传递依赖主键,传递了要拆分
BCNF关键字不决定关键字
3.
4.DDL 数据库定义语句
数据类型
字符串:char(n) 固定长度n,varchar(n)不超过长度n
数字:
samllint
int,bigint,float,double。
时间:date,time,year,datetime(日期时间混合)
列级约束条件:主键,外键,唯一,检查,默认,空、非空值
表级约束条件:主键外键唯一检查
创建表
修改表
删除表
drop table 表名[restrict|cascade]
5.DML 数据库操纵语言
插入
修改
updatae 表名 set 列名=值,。。。where 条件
删除
delete from 表名 where 条件
6.DQL数据库查询语句
select (distinct)列名,列名/名/* from 表名 where 条件
distinct查询不重复的值
是否在集合中in not in
模糊查询like not like
条件连接查询and or not
select * from student where sid not like ’%03‘ or sex=’男‘;
从所有学生里查找 学号不 以03结尾 或者性别为男的
order by 列名 ASCIDESC
ASC升序,desc降序。
order by sid .
聚集函数
count() sum()avg()max()min()
分组查询
group by 列名 having 约束条件
limit+行数/起始位置,行量 限制查询数量或者进行分页
多表查询
select * from 表1,表2 得到两张表合并而成的笛卡尔积单表
自身连接查询
外连接查询
inner join 。一张所有用户的表,一张某些用户详细信息表。用innerjoin连起来。取两者都有的连在一起,交集
嵌套查询
5.DCL数据库控制语言
创建用户
root中创建带密码的用户 create user test identified by ‘123456’;
用户授权:
grant all on study.* to test.给test用户所有权限
revoke all on study.* from test.收回test 的所有权限
grantselect,update(name) on study.student to test.给test用户在学生表中选择和更改名字的权限
6视图
create view 视图名称(列名) as 子查询 [with check option]
create view test asseect * from student where sex=‘男’;
select * from test。将视图作为一个表查询
update test set name=‘小蓝’ where sid=1231231;
drop view test
with check option 的作用:
视图的规则。
7.索引
8.触发器
9.事务
原子性:要做就全部做完
一致性
隔离性
持久性
(其他内容)