MYSQL笔记20201224

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:保存 日期+时间
        ⑥Datetime 与 timestamp 区别
在这里插入图片描述

3、约束

(1)概念
        ①一种限制,用于限制表中的数据,为了保证表中数据的准确和可靠性
(2)约束的种类
        ①默认:default
        ②非空约束:NOT Null
        ③主键约束:PRIMARY KEY
        ④唯一约束:UNIQUE
        ⑤检查约束:CHECK(mysql不支持)
        ⑥外键约束:FOREIGN KEY
(3)添加约束的分类
        ①列级约束
                1)六大约束语法都支持,但是外键约束没有效果
        ②表级约束
                1)除了 非空、默认,其他都支持
(4)案例:(列级别约束)
在这里插入图片描述
(5)案例:(表级别约束)
在这里插入图片描述

                注意:检查约束 无效
(6)案例:(表级别约束:自定义约束名称)
在这里插入图片描述

4、约束的修改

(1)添加列级别约束
        ①Alter table 表名 modify column 字段名 字段类型 新约束;
(2)添加表级别约束
        ①Alter table 表名 add 【constraint 约束名】 约束类型(字段名)【外键引用】
(3)案例:
在这里插入图片描述

(4)删除约束
在这里插入图片描述

(5)主键约束 与 唯一约束对比
在这里插入图片描述

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

(1)自增长:可以不用手动的插入值,系统提供默认的序列值
(2)使用形式:
        ①auto_increment(mysql支持)
        ②sequence (序列:oracle支持)
(3)案例:
在这里插入图片描述

(4)是否可以设置自增长的步长???
        ①默认的步长:1
        ②set auto_increment_increment = 步长;

6、事务:transaction

(1)什么是事务
        ①一个完整的业务逻辑单元,不可再分
(2)和事务相关的语句:insert、delete、update
        ①为什么?
                1)因为这三个语句都是和数据库中的数据有关,事务的存在主要是为了保证诗句的完整性、安全性
(3)事务的特性:ACID
        ①A:原子性
                1)事务是最小的工作单元,是不可再分
        ②C:一致性
                1)事务必须保证多条DML语句同时成功或同时失败
        ③I: 隔离性
                1)事务与事务之间是相互独立,互不影响
        ④D:持久性
                1)持久性就是说最终数据必须持久化到硬盘文件中,事务才算成功结束
(4)Mysql中事务模式是:自动提交的
        ①如何关闭自动提交?
                1)start transaction
(5)事务隔离级别
        ①第一级别:读未提交(read uncommitted)
                1)对方事务还没有提交,我们当前事务就可以读到对方未提交的数据
                2)读未提交存在:脏读
        ②第二级别:读已提交(read committed)
                1)对方事务提交之后,我们才可以读取
                2)解决了脏读现象
        ③第三级别:可重复读(repeatable read)
        ④第四级别:序列化读/串行化读
        ⑤注意:
                1)Mysql默认:可重复读
                2)Oracle默认:读已提交
(6)如何查看隔离级别?
                ①select @@global.tx_isolation;
                在这里插入图片描述

(7)设置隔离级别
                ①set gloal transaction isolation level 隔离级别;
                ②例如:
                在这里插入图片描述

(8)自己测试:隔离级别的改变

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值