东软大三上学期实训笔记-mysql篇Day4

mysql篇Day4


20201224
知识点回顾:
1、连接查询:
(1) 内查询
(2) 外查询
2、三表查询
3、分页查询:limit
4、联合查询:union、union all
5、DML语言:
(1) Insert、delete、update
(2) truncate
6、DDL语言
(1) 数据库的定义(数据库与表)
(2) 数据库定义:
① 创建、删除、修改编码格式
(3) 表的定义:alter table
① 表的创建、修改、删除
② 默认表名定义:t_ 或 tbl_
作业分析与讲解:
1、------

知识点讲解:

1、表复制

(1) 复制表的结构

create table 新表 like 原表

(2) 复制表结构+数据

Create table 新表 select * from 原表

(3) 只复制部分数据

Create table 新表 select 列表 from 原表 where 筛选条件

(4) 只复制某些字段

Create table 新表 select 列表 from 原表 where 1=2

2、常见的数据类型

(1) 数值型
① 整型
② 小数
(2) 字符型
① 较短文本

  1. Char、varchar

② 较长文本

  1. text、blob

(3) 日期型
① Date
② Time
③ Year
④ Datetime
⑤ Timestamp
(4) 整型
① Tinyint =》1
② Smallint =》2
③ Mediumint =》3
④ Int、integer =》4
⑤ Bigint =》8
(5) 小数
① 分类

  1. 浮点型
    a. float(M,D)
    b. Double(M,D)
  2. 定点型(精准:财务计算)
    a. decimal(M,D)
    b. 建议使用时,设置长度
    备注:M:整数位数+小数位数,D:小数位数

(6) 字符型
① Char:定长

  1. 常用:状态码、性别 等

② Varchar

  1. 非定长的字符串
  2. 默认长度:255

③ 较长的文本

  1. text
  2. Blob(二进制)

④ 其他类型

  1. Enum:枚举
  2. Set:集合

(7) 日期类型
① Date:只保存日期
② Time:只保存时间
③ Year:只保存年份
④ Datetime:保存 日期+时间
⑤ Timestamp:保存 日期+时间
东软大三上学期实训笔记-mysql篇Day4
⑥ Datetime 与 timestamp 区别
东软大三上学期实训笔记-mysql篇Day4

3、约束

(1) 概念
① 一种限制,用于限制表中的数据,为了保证表中数据的准确和可靠性
(2) 约束的种类
① 默认:default
② 非空约束:NOT Null
③ 主键约束:PRIMARY KEY
④ 唯一约束:UNIQUE
检查约束:CHECK(mysql不支持)
⑥ 外键约束:FOREIGN KEY
(3) 添加约束的分类
① 列级约束

  1. 六大约束语法都支持,但是外键约束没有效果

② 表级约束

  1. 除了 非空、默认,其他都支持

(4) 案例:(列级别约束)
东软大三上学期实训笔记-mysql篇Day4
注意:检查约束与外键约束,无效
(5) 案例:(表级别约束)
东软大三上学期实训笔记-mysql篇Day4
注意:检查约束 无效
(6) 案例:(表级别约束:自定义约束名称)
东软大三上学期实训笔记-mysql篇Day4

4、约束的修改

(1) 添加列级别约束

Alter table 表名 modify column 字段名 字段类型 新约束;

(2) 添加表级别约束

Alter table 表名 add 【constraint 约束名】 约束类型(字段名)【外键引用】

(3) 案例:
东软大三上学期实训笔记-mysql篇Day4
(4) 删除约束
东软大三上学期实训笔记-mysql篇Day4
(5) 主键约束 与 唯一约束对比
东软大三上学期实训笔记-mysql篇Day4

5、自增长:(经常与主键配合使用)

(1) 自增长:可以不用手动的插入值,系统提供默认的序列值
(2) 使用形式:
① auto_increment(mysql支持)
② sequence (序列:oracle支持)
(3) 案例:
东软大三上学期实训笔记-mysql篇Day4
(4) 是否可以设置自增长的步长???
① 默认的步长:1

set auto_increment_increment = 步长;

6、事务:transaction

(1) 什么是事务
① 一个完整的业务逻辑单元,不可再分
(2) 和事务相关的语句:insert、delete、update
① 为什么?

  1. 因为这三个语句都是和数据库中的数据有关,事务的存在主要是为了保证诗句的完整性、安全性
    (3) 事务的特性:ACID
    ① A:原子性
  2. 事务是最小的工作单元,是不可再分

② C:一致性

  1. 事务必须保证多条DML语句同时成功或同时失败

③ I: 隔离性

  1. 事务与事务之间是相互独立,互不影响

④ D:持久性

  1. 持久性就是说最终数据必须持久化到硬盘文件中,事务才算成功结束

(4) Mysql中事务模式是:自动提交的
如何关闭自动提交?

start transaction

(5) 事务隔离级别
① 第一级别:读未提交(read uncommitted)

  1. 对方事务还没有提交,我们当前事务就可以读到对方未提交的数据
  2. 读未提交存在:脏读

② 第二级别:读已提交(read committed)

  1. 对方事务提交之后,我们才可以读取
  2. 解决了脏读现象

③ 第三级别:可重复读(repeatable read)
④ 第四级别:序列化读/串行化读
⑤ 注意:

  1. Mysql默认:可重复读
  2. Oracle默认:读已提交

(6) 如何查看隔离级别?
① select @@global.tx_isolation;
东软大三上学期实训笔记-mysql篇Day4
(7) 设置隔离级别
① set global transaction isolation level 隔离级别;
② 例如:
东软大三上学期实训笔记-mysql篇Day4
(8) 自己测试:隔离级别的改变

上一篇:JavaScript学习笔记【DAY4(2020.8.20)周四】


下一篇:Day4-软件测试环境搭建——Linux测试环境搭建