63.数据完整性:保证用户输入的数据保存到数据库中时正确的
 64.如何添加数据完整性:在创建表的时候给表添加约束
 65.完整性分类:实体完整性、域完整性、引用完整性
 66.表中的一行(一条记录)代表一个实体
 67.实体完整性的作用:标识(标记)每一行数据不重复,行级约束
 68.约束类型:主键约束(primary key)、唯一约束(unique)、自动增长(auto_increment)
 69.主键约束的特点:(创建)每个表中要有一个主键,数据唯一,且不能为null
 70.添加主键约束方式:create table 表名(列名 数据类型 primary key,列名2 数据类型)
 Create table 表名(列名 数据类型,列名2 数据类型,primary key(要设置主键的列名))
 71.联合主键:create table 表名(列名1 数据类型,列名2 数据类型,primary key(主键1,主键2))
 72.唯一约束的特点:指定列的数据不能重复 可以为空值
 73.唯一约束方式:create table 表名(列名 数据类型 主键约束,列名2 数据类型 unique)
 74.自动增长的特点:指定列的数据自动增长,即使数据删除,还是从删除的序号继续往下,一般我们会给主键设置为自动增长
 75.自动增长格式:create table 表名(列名1 数据类型 primary key auto_increment,列名2 数据类型 unique)
 76.域完整性特点:限制此单元格的数据正确,不对照此列的其他单元格比较,域代表当前的单元格
 77.域完整性数据类型:数值类型,日期类型,字符串类型
 78.非空约束:not null
 79.默认值约束:default
 80.参照完整性:是指表与表之间的一种对应关系,通常情况下可以通过设置两表之间的主键、外键关系,或者编写两表的触发器来实现,有对应参照完整性的两张表格,再对他们进行数据插入,更新,删除的过程中,系统都会将被修改表格与另外一张对应表格进行对照,从而阻止一些不正确的数据的操作
 81.数据库的主键和外键类型一定要一致
 82.两个表必须要是lnnodb引擎
 83.设置参照完整性后,外键当中的内值,必须得是主键当中得内容
 84.一个表设置当中得字段设置为主键,设置主键得为主表
 85.创建表时,设置外键,设置外键得为子表
 86.数据库设计三范式:1.要求每一个字段原子性不可在分
 2.要求所有非主键字段完全依赖主键,不能产生部分依赖
 3.所有非主键字段和主键字段之间不能产生传递依赖
 87.删除主外键表时,要先解除主外键的关系:
 Alter table 表名 drop foreign key 主外键关系名称
 88.添加外键:constraint 外键关系名称 foreign key(列名) references 表名(列名)
 89.查询第几条到第几条的命令:select * from student limit 1,3;
 其中1表示从第二条记录开始查询
 3表示查询出3条记录
 90.表之间的关系:一对一,一对多,多对多
 多对多的表关系,要创建一个中间表来表示另外两张表的关系
 91.合并结果集就是把两个select语句的查询结果合并到一起展示
 92.合并结果集的两种方式:union 合并时去除重复记录
 Union all 合并时不去除重复记录
 93.合并结果集的两种写法:
 Select * from 表1 union select * from 表2
 Select * from 表1 union all select * from 表2
 94.被合并的两个结果集:列数,列类型必须相同
 95.连接查询:也可以叫跨表查询,需要关联多个表进行查询
 96.去除笛卡尔积的原理:主外键保持一致,就可以去除笛卡尔积
 97.99法(隐式内连接):select * from A表,B表where A.主键 = B.外键
 98.连接方式分类:内连接、外连接、自然连接
 外连接分为左外连接、右外连接
 内链接分为多表连接、自连接、非等值连接、等值连接
 99.内连接写法:select * from A表 inner join B表 on A.主键 = B.外键
 100.多表联查约束主外键一样,只是写法改变了
 On后面只写主外键
 (对于结果)如果还有条件直接在后面写where
 多表联查后还有条件就直接写and
 101.左外连接:左边表数据全部查询出来,右边表只查询满足条件的
 102.左外连接写法:select * from 左表 left outer join 右表 on 左表的主键 = 右表的外键
 103.右外连接:右边表数据全部查询出来,左边表只查询满足条件的
 104.右外连接写法:select * from A表 right outer join B表 on A.主键 = B.外键
 105.多表连接:属于内链接
 多表连接99连接法写法:select * from 表名1,表名2,表名3 where 表名1主键=表名2外键 and 表名2主键=表名3外键
 多表连接内链接法写法:select * from 表1 join 表2 on 表1主键=表2外键 join 表3 on 表2主键=表3
 106.非等值连接:
 99连接法写法:select * from 表1,表2,表3 where 表1主键=表2外键 and 条件1 and 条件2
 内链接法写法:select * from 表1 join 表2 on 表1主键=表2外键 join 表三 on 条件 between 条件 and 条件
 Between…and…写法:select * from 表1,表2,表3 where 表1主键=表2外键 between 条件 and 条件
 107.自然连接要求:两张连接的表中列名和类型完全一致
 108.自然连接写法:select * from 表1 natural join 表二
 109.子查询:一个select语句中包含另一个完整的select语句,或者说两个以上select语句,就是子查询
 110.select语句在where后,被当成前一个select语句的条件存在
 Select语句在from后,被当成一个表来存在
 111.主键和外键只影响我们数据的添加,不影响查询。
 112.自连接的内链接方法:select * from 表1 join 表2 on 表1主键=表2外键 where 条件
 113.函数分类:字符串函数,数值函数,日期和时间函数,流程函数,其他函数(数据库,系统相关)
 114.字符串函数:concat(s1,s2…sn)将传入的字符串连成一个字符串,任何字符串与null进行连接的结果都是null
 Insert(str,x,y,instr)将字符串str从x位置开始,y个字符串长的子串替换为指定的字符
 Lower(str)和uooer(str)把字符串转换成小写或者大写
 Left(str,x)和right(str,x)分别返回字符串最左边的X个字符和最右边的X个字符
 Lapd(str,n,pad)和rpad(str,n,pad)用字符串pad对str最左边或最右边进行填充,直接到长度为n个字符串长度
 Ltrim(str)和rtrim(str)去掉字符串当中最左侧和最右侧的空格
 Trim(str)去掉字符串左右的空格
 Repeat(str,x)返回str重复x次结果
 Replace(str,a,b)用字符串b替换字符串str中所有出现的字符串a
 Substring(str,x,y)返回字符串str中的第X位置起Y个字符串长度的字符
 115.数值函数:abs(x) 返回X的绝对值
 Ceil(x)小数部位零部分上取整,即向上取最近的整数(只要有小数点就进1)
 Floor(x)向下取整
 Mod(x,y)返回x/y的摸(余数)
 Rand()返回0-1内容的随机数
 116.日期相关函数:curdate()返回当前日期(年月日)
 Curtime()返回当前的时间(时分秒)
 Now()返回当前的日期和时间(年月日时分秒)
 Unix_timestamp()返回当前的时间戳
 From_unixtime(unixtime)将一个时间戳转换成日期
 Week(date)返回当前是一年中第几周
 Year(date)返回所给日期是哪一年
 Hour(time)返回当前时间的小时
 Minute(time)返回当前分钟
 Date_format(date,fmt)按字符串格式化日期date值
 Date_add(date,interval expr type)计算日期间隔
 Datediff(date1,date2)计算两个日期相差天数
 117.流程函数:if(value,t,f)如果value是真,返回t,否则返回f
 Ifnull(value,value2)如果value1不为空,返回value1否则返回value2
 Case when then end 判断
 118.其他函数:database()返回当前数据库名称
 Version()返回当前数据库版本
 User()返回当前登陆用户
 Password()对str进行加密 返回str的MD5值
 119.事务:不可分隔的操作,每条sql语句都是一个事务,事务只对DML语句有效,对DQL无效
 120.事务的ACID:
 一、原子性:包含的所有操作要么全部成功,要么全部失败回滚
 二、一致性:是指事务必须使数据库从一个一致性状态变换到另外一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态,让数据保持一定上的合理性
 三、隔离性:是指并发的事务互相隔离,不能互相干扰
 四、持久性:是指事务一旦提交,对数据的状态变更应该被永久保存
 121.事务的使用:开始事务 start transaction
 提交事务 commit
 回滚事务 rollback
 122.事务了解部分查看印象笔记28章
 123.视图就是一条select语句执行后返回的结果集
 124.定义视图 create view 视图名称 as select 语句
 125.查看视图 show tables
 126.使用视图 select * from 视图名称
 127.删除视图 drop view 视图名称
 128.权限:限制一个用户能够做什么事情。
 129.有哪些权限:
 权限 说明
 create 创建数据库、表或者索引权限
 drop 删除数据库或者表权限
 alter alter更改表,比如添加字段、索引等
 delete 删除数据权限
 index 索引权限
 insert 插入权限
 select 查询权限
 update 更新权限
 create view 创建视图权限
 excute 执行存储过程权限
 130.创建用户 create user ‘用户名’@‘localhost’identified by ‘密码’
 131.删除用户 drop user ‘用户名’@‘localhost’
 132.分配权限 crant 权限(cloumns)on 数据库对象 to 用户 identified by ‘密码’ with grant option
 133.查看权限 show grants
 134.查看指定用户的权限 show grants for root@localhost
 135.删除权限 revoke 权限 on 数据库对象 from 用户
 136.备份 mysqldump -uroot -p 数据库名 > python.sql
 137.恢复 连接mysql,创建新的数据库 退出连接,执行如下命令
 Mysql -uroot -p 新数据库名 < python.sql