1.复习内容
2.灵感代办
- 找数据库笔记
- 金山打字通 练习指法
3.学习内容
-
Mysql 高级
-
外键(foregin key)重要
-
外键定义:
- 当前表字段的值,要和另一个表其中一个字段的内容对应
- 从表:参照表
- 主表:被参照表
- 级联动作:主表操作从表跟着做什么动作
-
外键语法:
- foreign key() //从表的参考字段
- references 主表(被参考字段名)
- on delete 级联动作
- on update 级联动作(针对参考字段id改变)
- 注意:级联动作非必须
-
级联动作 (必须背)
-
cascade
- 数据级联删除,更新(参考字段)
- 删除是跟着都删除
- 更新是管理主键被更改,才更新
-
restrict(默认)
- 从表有相关记录,主表的字段就不能删除
-
set null
- 主表删除,更新,从相关联的字段记录值为null
-
外键使用规则:
- 主表从表字段类型要一致
- 主表被参考字段:KEY的一种,一般是主键
- KEY :PRI UNI
-
删除外键
- ALTER TABLE 表名 drop foreign key 外键名;
-
查看外键:
- SHOW CREATE TABLE 表名;
-
Mysql高级查询
-
嵌套查询
-
定义:
- 查询里面带查询
- 把内层的查询结果作为外层的查询条件
-
语法格式
- select ... from 表名 where 条件(select ....);
-
笛卡尔积(重要)
- select 字段名列表 from 表名列表
- 拿前一个表和后一个表匹配
- 每个表的每一条记录和另一个表都组合在一起
- 多表查询就是笛卡尔积上进行筛选
-
多表查询
- select 字段名列表 from 表名列表 where 条件
- 一定有相关联的字段可以联系
- 浪费很多的资源,效率很低,笛卡尔积的缺点
- 能用连接查询的尽量用连接查询;
-
连接查询
- 跟多表查询差不多,把where条件都换成inner join 表名 on 条件
- 能用连接查询的尽量用连接查询;
-
内连接
- select 字段名 from 表1 inner join 表2 on 条件 inner join 表3 on 条件
- 内连接的inner 关键字可以省略
-
左外链接
- 以左表为主显示结果,右表不符合就是null
- select 字段名 from 表1 left join 表2 on 条件 left join 表3 on 条件
-
右外连接
- 以右表为主显示结果,左边不符合就是Null
- select 字段名 from 表1 right join 表2 on 条件 right join 表3 on 条件
-
数据导入
- 把文件系统的内容导入到数据库中(例如CSV)
-
语法(方式一)
- load data infile “目录/文件名”
- into table 表名
- fields terminated by “分隔符”
- lines terminated by “\n”
-
语法(方式二)
- source 文件名.sql
-
数据导出
- 把数据库的数据导出到文件中
-
语法格式
- select … from 表名
- into outfile “文件名”
- fields terminated by “分隔符”
- lines terminated by “分隔符”
-
表的复制
-
语法
- create table 表名 select 查询命令;
- 复制表的时候不会把原有表的KEY属性复制过来(主键,索引,唯一)
-
复制表结构
- create table 表名 select 查询命令 where false;
-
Mysql 锁(自动加锁释放锁)
-
目的:
- 解决客户端并发的冲突问题(也很耗费资源)
-
锁类型分类:
-
读锁(读,共享锁):
- select 查询的时候就加了锁
- 加读锁之后别人不能更改表记录,但可以查询
-
写锁(互斥,排他锁):
- 加锁之后不能写不能读
-
锁粒度分类
-
表级锁:
- 锁一张表
- myisam
-
行级锁:
- 锁一行
- innodb
4.扩展延伸知识
-
mysql函数 count
- 不能判断null值
-
where和on
-
主表从表的另一个叫法
- 参照表,被参照表
-
mysql CONSTRAINT
- 可以添加限制,比如 外键 not null
- https://blog.csdn.net/w_linux/article/details/79655073
-
mysql delete和drop
-
mysql if not exists
-
on和from
-
linux文件权限
-
更改一个库的编码
- alter database charset uft8;
-
mysql导入数据
- secure-files-priv=“”
- my.inf 把上面写入 ,就不限制导入
- https://blog.csdn.net/weixin_44595372/article/details/88723191
-
mysql中int填充0
- int(2) 数值类型的,2是显示宽度,只用来显示占位
- zerofill写在int后
-
mysql中选定库(database)
- use database;然后可以进行操作
- databaseName.table 直接库名.表名
-
mysql命令行中要执行Linux命令
- 在命令的开头添加:system 命令
5.知识内容个人梳理
6.今天都复习了之前的什么内容
- 找数据库笔记
- 金山打字通 练习指法
3.学习内容
-
Mysql 高级
-
外键(foregin key)重要
-
外键定义:
- 当前表字段的值,要和另一个表其中一个字段的内容对应
- 从表:参照表
- 主表:被参照表
- 级联动作:主表操作从表跟着做什么动作
-
外键语法:
- foreign key() //从表的参考字段
- references 主表(被参考字段名)
- on delete 级联动作
- on update 级联动作(针对参考字段id改变)
- 注意:级联动作非必须
-
级联动作 (必须背)
-
cascade
- 数据级联删除,更新(参考字段)
- 删除是跟着都删除
- 更新是管理主键被更改,才更新
-
restrict(默认)
- 从表有相关记录,主表的字段就不能删除
-
set null
- 主表删除,更新,从相关联的字段记录值为null
-
外键使用规则:
- 主表从表字段类型要一致
- 主表被参考字段:KEY的一种,一般是主键
- KEY :PRI UNI
-
删除外键
- ALTER TABLE 表名 drop foreign key 外键名;
-
查看外键:
- SHOW CREATE TABLE 表名;
-
Mysql高级查询
-
嵌套查询
-
定义:
- 查询里面带查询
- 把内层的查询结果作为外层的查询条件
-
语法格式
- select ... from 表名 where 条件(select ....);
-
笛卡尔积(重要)
- select 字段名列表 from 表名列表
- 拿前一个表和后一个表匹配
- 每个表的每一条记录和另一个表都组合在一起
- 多表查询就是笛卡尔积上进行筛选
-
多表查询
- select 字段名列表 from 表名列表 where 条件
- 一定有相关联的字段可以联系
- 浪费很多的资源,效率很低,笛卡尔积的缺点
- 能用连接查询的尽量用连接查询;
-
连接查询
- 跟多表查询差不多,把where条件都换成inner join 表名 on 条件
- 能用连接查询的尽量用连接查询;
-
内连接
- select 字段名 from 表1 inner join 表2 on 条件 inner join 表3 on 条件
- 内连接的inner 关键字可以省略
-
左外链接
- 以左表为主显示结果,右表不符合就是null
- select 字段名 from 表1 left join 表2 on 条件 left join 表3 on 条件
-
右外连接
- 以右表为主显示结果,左边不符合就是Null
- select 字段名 from 表1 right join 表2 on 条件 right join 表3 on 条件
-
数据导入
- 把文件系统的内容导入到数据库中(例如CSV)
-
语法(方式一)
- load data infile “目录/文件名”
- into table 表名
- fields terminated by “分隔符”
- lines terminated by “\n”
-
语法(方式二)
- source 文件名.sql
-
数据导出
- 把数据库的数据导出到文件中
-
语法格式
- select … from 表名
- into outfile “文件名”
- fields terminated by “分隔符”
- lines terminated by “分隔符”
-
表的复制
-
语法
- create table 表名 select 查询命令;
- 复制表的时候不会把原有表的KEY属性复制过来(主键,索引,唯一)
-
复制表结构
- create table 表名 select 查询命令 where false;
-
Mysql 锁(自动加锁释放锁)
-
目的:
- 解决客户端并发的冲突问题(也很耗费资源)
-
锁类型分类:
-
读锁(读,共享锁):
- select 查询的时候就加了锁
- 加读锁之后别人不能更改表记录,但可以查询
-
写锁(互斥,排他锁):
- 加锁之后不能写不能读
-
锁粒度分类
-
表级锁:
- 锁一张表
- myisam
-
行级锁:
- 锁一行
- innodb
4.扩展延伸知识
-
mysql函数 count
- 不能判断null值
-
where和on
-
主表从表的另一个叫法
- 参照表,被参照表
-
mysql CONSTRAINT
- 可以添加限制,比如 外键 not null
- https://blog.csdn.net/w_linux/article/details/79655073
-
mysql delete和drop
-
mysql if not exists
-
on和from
-
linux文件权限
-
更改一个库的编码
- alter database charset uft8;
-
mysql导入数据
- secure-files-priv=“”
- my.inf 把上面写入 ,就不限制导入
- https://blog.csdn.net/weixin_44595372/article/details/88723191
-
mysql中int填充0
- int(2) 数值类型的,2是显示宽度,只用来显示占位
- zerofill写在int后
-
mysql中选定库(database)
- use database;然后可以进行操作
- databaseName.table 直接库名.表名
-
mysql命令行中要执行Linux命令
- 在命令的开头添加:system 命令
5.知识内容个人梳理
6.今天都复习了之前的什么内容
Mysql 高级
-
外键(foregin key)重要
-
外键定义:
- 当前表字段的值,要和另一个表其中一个字段的内容对应
- 从表:参照表
- 主表:被参照表
- 级联动作:主表操作从表跟着做什么动作
-
外键语法:
- foreign key() //从表的参考字段
- references 主表(被参考字段名)
- on delete 级联动作
- on update 级联动作(针对参考字段id改变)
- 注意:级联动作非必须
-
-
级联动作 (必须背)
-
cascade
- 数据级联删除,更新(参考字段)
- 删除是跟着都删除
- 更新是管理主键被更改,才更新
-
restrict(默认)
- 从表有相关记录,主表的字段就不能删除
-
set null
- 主表删除,更新,从相关联的字段记录值为null
-
-
外键使用规则:
- 主表从表字段类型要一致
- 主表被参考字段:KEY的一种,一般是主键
- KEY :PRI UNI
-
删除外键
- ALTER TABLE 表名 drop foreign key 外键名;
-
查看外键:
- SHOW CREATE TABLE 表名;
Mysql高级查询
-
嵌套查询
-
定义:
- 查询里面带查询
- 把内层的查询结果作为外层的查询条件
-
语法格式
- select ... from 表名 where 条件(select ....);
-
-
笛卡尔积(重要)
- select 字段名列表 from 表名列表
- 拿前一个表和后一个表匹配
- 每个表的每一条记录和另一个表都组合在一起
- 多表查询就是笛卡尔积上进行筛选
-
多表查询
- select 字段名列表 from 表名列表 where 条件
- 一定有相关联的字段可以联系
- 浪费很多的资源,效率很低,笛卡尔积的缺点
- 能用连接查询的尽量用连接查询;
-
连接查询
- 跟多表查询差不多,把where条件都换成inner join 表名 on 条件
- 能用连接查询的尽量用连接查询;
-
内连接
- select 字段名 from 表1 inner join 表2 on 条件 inner join 表3 on 条件
- 内连接的inner 关键字可以省略
-
左外链接
- 以左表为主显示结果,右表不符合就是null
- select 字段名 from 表1 left join 表2 on 条件 left join 表3 on 条件
-
右外连接
- 以右表为主显示结果,左边不符合就是Null
- select 字段名 from 表1 right join 表2 on 条件 right join 表3 on 条件
-
数据导入
- 把文件系统的内容导入到数据库中(例如CSV)
-
语法(方式一)
- load data infile “目录/文件名”
- into table 表名
- fields terminated by “分隔符”
- lines terminated by “\n”
-
语法(方式二)
- source 文件名.sql
-
- 把文件系统的内容导入到数据库中(例如CSV)
-
数据导出
- 把数据库的数据导出到文件中
-
语法格式
- select … from 表名
- into outfile “文件名”
- fields terminated by “分隔符”
- lines terminated by “分隔符”
-
- 把数据库的数据导出到文件中
-
表的复制
-
语法
- create table 表名 select 查询命令;
- 复制表的时候不会把原有表的KEY属性复制过来(主键,索引,唯一)
-
复制表结构
- create table 表名 select 查询命令 where false;
-
-
Mysql 锁(自动加锁释放锁)
-
目的:
- 解决客户端并发的冲突问题(也很耗费资源)
-
锁类型分类:
-
读锁(读,共享锁):
- select 查询的时候就加了锁
- 加读锁之后别人不能更改表记录,但可以查询
-
写锁(互斥,排他锁):
- 加锁之后不能写不能读
-
-
锁粒度分类
-
表级锁:
- 锁一张表
- myisam
-
行级锁:
- 锁一行
- innodb
-
-
-
mysql函数 count
- 不能判断null值
-
where和on
-
主表从表的另一个叫法
- 参照表,被参照表
-
mysql CONSTRAINT
- 可以添加限制,比如 外键 not null
- https://blog.csdn.net/w_linux/article/details/79655073
-
mysql delete和drop
-
mysql if not exists
-
on和from
-
linux文件权限
-
更改一个库的编码
- alter database charset uft8;
-
mysql导入数据
- secure-files-priv=“”
- my.inf 把上面写入 ,就不限制导入
- https://blog.csdn.net/weixin_44595372/article/details/88723191
-
mysql中int填充0
- int(2) 数值类型的,2是显示宽度,只用来显示占位
- zerofill写在int后
-
mysql中选定库(database)
- use database;然后可以进行操作
- databaseName.table 直接库名.表名
-
mysql命令行中要执行Linux命令
- 在命令的开头添加:system 命令