SQL概述学习:
Mysql学习:
数据表的类型:MyISAM和InnoDB的区别!!!
DDL(操作数据库及表):
数据库的增删改查:
表的增删改查:
表的复制:
表中修改列名及其数据类型:
DML(增删改表中数据):
DQL(查询语句):
条件查询where:
模糊查询:
排序查询:
mysql自带的聚合函数:
mysql分组查询:
注意:where和having的区别
聚合函数取别名
分页查询
约束:
删除非空约束:
删除唯一约束:
主键约束
自增主键的具体使用方法
外键约束
#外键约束(创建表时添加外键约束):让表与表产生关系
create table department(
id int primary key AUTO_INCREMENT,
dep_name varchar(20),
dep_location varchar(20)
);
insert department values(null ,'销售部','广州');
insert department values(null ,'研发部','深圳');
select* from department;
--子表的外键必须关联父表的主键,且数据类型相同
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)
);
insert into employee (name,age,dep_id) values('张三',18,1);
insert into employee (name,age,dep_id) values('王五',19,1);
insert into employee (name,age,dep_id) values('赵六',18,1);
insert into employee (name,age,dep_id) values('李四',21,2);
insert into employee (name,age,dep_id) values('洪七',22,2);
insert into employee (name,age,dep_id) values('马二',23,2);
select* from employee;
delete from department where dep_name='研发部';--发现删不了,由于外键的关联
级联更新:
级联删除:
![](https://i-blog.csdnimg.cn/blog_migrate/efa16245762aa1d36a9f8cbae9e531da.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7c0cdfc73241acc6ff684f64dd22e88b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ef035384071342cb1cbedcdf7977efda.png)
![](https://i-blog.csdnimg.cn/blog_migrate/22e6124b7eed474ec9590202a4fa5fe6.png)
多表之间的关系
![](https://i-blog.csdnimg.cn/blog_migrate/9ec91471dc167dee2fc3528c9c2363b0.png)
#多表关系的案例
--路线分类(与‘所有旅游路线’是多对1)
create table tap_category(
cid int primary key AUTO_INCREMENT,
cname varchar(100) not null unique
);
--所有旅游路线
create table tap_route(
rid int primary key AUTO_INCREMENT,
rname varchar(100) not null unique,
rdate date,
cid int,
foreign key (cid) references tap_category (cid)
);
--用户表(与‘所有旅游路线’是多对多)
create table tap_user(
uid int primary key AUTO_INCREMENT,
username varchar(100) not null unique,
password varchar(30) not null,
name varchar(100),
birthday date,
sex char(1) default '男',
telephone varchar(11),
email varchar(100)
);
--创建中间表
create table tab_favorite(
rid int,
date datetime,
uid int,
primary key(rid,uid),
foreign key (rid) references tap_route (rid),
foreign key (uid) references tap_user (uid)
);
数据库范式
原子项(1),部份依赖(1-2),传递依赖(2-3)
数据库的还原与备份
备份数据库
还原数据库
多表查询
内连接查询(仅需要两个表的交集信息)
外连接查询(需要一个表的所有信息和另一个表的交集信息)
子查询(包含了嵌套子查询)
嵌套子查询示例:
三张表的查询:
事务:
(开启两个线程检验一下:)
事务隔离级别:
查询隔离级别新版的:
最高级别的隔离状态:(开启两个线程)
1.未提交
(表被锁):
提交后:
DCL:(管理用户,授权)
管理用户:
mysql忘记登陆密码的操作:
权限管理: