DQL:
- 查询排序
order by
asc:升序 desc: 降序
eg: select * from stu order by math desc;
eg: select * from stu order by math desc, english asc;
- 聚合函数
列纵向计算
count, max, min, sum, avg
eg: select count(sid) from student;
- 分组函数
group by 分组字段
where在分组之前进行限定,而having在分组之后进行限定.
eg: select sex, avg(score) from student group by sex;
- 分页函数
limit begin_index, nums
eg: select * from stuaaa limit 2,3;
约束
- primary key
* auto_increment : 自动增长(数值类型) - not null
- unique
- foreign key : 外键约束
* 在创建表时,添加外键.
'''create table table_name(
......
外键列
constraint 外键名称 foreign key 外键列名称 reference 主表名称(主表列名称))'''
eg: create table employee( id int primary key auto_increment,
name varchar(20),
age int,
dep_id int,
constraint emp_dept_fk foreign key (dep_id) references department(id)
);
* 删除外键: alter table table_name drop foreign key key_name;
* 添加外键: alter table table_name add constraint key_name foreign key 外键列名称 reference 主表名称(主表列名称);'''
* 级联操作
级联更新:
alter table table_name add constraint key_name foreign key 外键列名称 reference 主表名称(主表列名称) on update cascade;
级联删除:
将上文的on update cascade改为on delect cascade,两者可以同时使用.
* 联合主键: eg: PRIMARY KEY(rid, uid), -- 联合主键
删除唯一约束: alter table student drop index sid; //删除了sid中的约束
添加约束: alter table student modify sid int primary key;
数据库的设计
多表之间的关系
- 多对多: 借助中间表实现
中间表至少包含两个字段, 这两个字段作为第三张表的外键, 分别指向两张表的关系.
范式
一般使用前三范式
- 1NF: 原子项
- 2NF
1. 函数依赖
2. 完全函数依赖
3. 部分函数依赖
4. 传递函数依赖
5. 码: 属性或属性组. - 3NF
在2NF基础上消除传递依赖.
备份和还原
- 备份
mysqldump -u -p database_name > path - 还原
step1. 创建数据库.
step2. 在数据库中使用: source path_sql 还原数据.
网友评论