1 #标识列
2 /*
3 又称为自增长列
4 含义:可以不用手动的插入值,系统提供默认的序列值
5
6
7 特点:
8 1、标识列必须和主键搭配吗?不一定,但要求是一个key
9 2、一个表可以有几个标识列?至多一个!
10 3、标识列的类型只能是数值型
11 4、标识列可以通过 SET auto_increment_increment=3;设置步长
12 可以通过 手动插入值,设置起始值
13
14
15 */
16
17 #一、创建表时设置标识列
18
19
20 DROP TABLE IF EXISTS tab_identity;
21 CREATE TABLE tab_identity(
22 id INT ,
23 NAME FLOAT UNIQUE AUTO_INCREMENT,
24 seat INT
25
26
27 );
28 TRUNCATE TABLE tab_identity;
29
30
31 INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');
32 INSERT INTO tab_identity(NAME) VALUES('lucy');
33 SELECT * FROM tab_identity;
34
35
36 SHOW VARIABLES LIKE '%auto_increment%';
37
38
39 SET auto_increment_increment=3;
40
41
42
43 #TCL
44 /*
45 Transaction Control Language 事务控制语言
46
47 事务:
48 一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。
49
50 案例 转账
51
52 张三丰 1000
53 郭襄 1000
54
55 update 表 set 张三丰的余额=500 where name='张三丰'
56 意外
57 update 表 set 郭襄的余额=1500 where name='郭襄'
58
59
60 事务的特性:
61 ACID
62 原子性:一个事务不可再分割,要么都执行要么都不执行
63 一致性:一个事务执行会使数据从一个一致状态切换到另外一个一致状态
64 隔离性:一个事务的执行不受其他事务的干扰
65 持久性:一个事务一旦提交,则会永久的改变数据库的数据.
66
67
68
69 事务的创建
70 隐式事务:事务没有明显的开启和结束的标记
71 比如insert、update、delete语句
72
73 delete from 表 where id =1;
74
75 显式事务:事务具有明显的开启和结束的标记
76 前提:必须先设置自动提交功能为禁用
77
78 set autocommit=0;
79
80 步骤1:开启事务
81 set autocommit=0;
82 start transaction;可选的
83 步骤2:编写事务中的sql语句(select insert update delete)
84 语句1;
85 语句2;
86 ...
87
88 步骤3:结束事务
89 commit;提交事务
90 rollback;回滚事务
91
92 savepoint 节点名;设置保存点
93
94
95
96 事务的隔离级别:
97 脏读 不可重复读 幻读
98 read uncommitted:√ √ √
99 read committed: × √ √
100 repeatable read: × × √
101 serializable × × ×
102
103
104 mysql中默认 第三个隔离级别 repeatable read
105 oracle中默认第二个隔离级别 read committed
106 查看隔离级别
107 select @@tx_isolation;
108 设置隔离级别
109 set session|global transaction isolation level 隔离级别;
110
111
112
113
114 开启事务的语句;
115 update 表 set 张三丰的余额=500 where name='张三丰'
116
117 update 表 set 郭襄的余额=1500 where name='郭襄'
118 结束事务的语句;
119
120
121
122 */
123
124 SHOW VARIABLES LIKE 'autocommit';
125 SHOW ENGINES;
126
127 #1.演示事务的使用步骤
128
129 #开启事务
130 SET autocommit=0;
131 START TRANSACTION;
132 #编写一组事务的语句
133 UPDATE account SET balance = 1000 WHERE username='张无忌';
134 UPDATE account SET balance = 1000 WHERE username='赵敏';
135
136 #结束事务
137 ROLLBACK;
138 #commit;
139
140 SELECT * FROM account;
141
142
143 #2.演示事务对于delete和truncate的处理的区别
144
145 SET autocommit=0;
146 START TRANSACTION;
147
148 DELETE FROM account;
149 ROLLBACK;
150
151
152
153 #3.演示savepoint 的使用
154 SET autocommit=0;
155 START TRANSACTION;
156 DELETE FROM account WHERE id=25;
157 SAVEPOINT a;#设置保存点
158 DELETE FROM account WHERE id=28;
159 ROLLBACK TO a;#回滚到保存点
160
161
162 SELECT * FROM account;

mysql标识列和事务的更多相关文章

  1. mysql - 标识列

    #标识列 /* 又称为自增长列 含义:可以不用手动插入值,系统提供默认的序列值 特点: 1.表示列必须和主键搭配吗?不一定,但是要求是一个key 2.一个表中只能有一个标识列! 3.标识列的类型有限制 ...

  2. MySQL标识列(自增长列)

    #标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值 特点:1.标识列必须和主键搭配吗?不一定,但要求是一个key2.一个表可以有几个标识列?至多一个!3.标识列的类型只能是数值 ...

  3. (七)MySQL常见的数据类型、约束和标识列

    一.MySQL常见数据类型 1.数值型: ①整型:tinyint.smllint.mediumint.int/integer.bigint 图源:尚硅谷李玉婷 案例1:关键表格teacher,分别添加 ...

  4. MySQL 避免使用字符串类型作为标识列

    避免使用字符串类型作为标识列: 消耗空间. 比数字类型慢(MyISAM 中对字符串使用压缩索引,查询会慢). 对于 MD5().UUID() 生成的随机字符串,这些值会分布在很大的空间内,导致 ins ...

  5. MySQL数据库引擎、事务隔离级别、锁

    MySQL数据库引擎.事务隔离级别.锁 数据库引擎InnoDB和MyISAM有什么区别 大体区别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是性能 ...

  6. MySQL InnoDB存储引擎事务的ACID特性

    1.前言 相信工作了一段时间的同学肯定都用过事务,也都听说过事务的4大特性ACID.ACID表示原子性.一致性.隔离性和持久性.一个很好的事务处理系统,必须具备这些标准特性: 原子性(Atomicit ...

  7. SQL Server解惑——标识列的限制和跳号现象

      1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table ...

  8. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。

    在创建事务复制时,很多时候不一定使用快照进行初始化,而是使用备份还原初始化.当对有标识列(即identity的自增列)的表进行复制的时候,使用备份还原初始化搭建起来的复制常常就会报错,即:当 IDEN ...

  9. 【原创】互联网项目中mysql应该选什么事务隔离级别

    摘要 企业千万家,靠谱没几家. 社招选错家,亲人两行泪. 祝大家金三银四跳槽顺利! 引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:"讲讲mysql有几个事务隔离级别?& ...

  10. 关于SQL Server数据库中的标识列

    一.标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列. 该种列具有以下三种特点: 1.列的数据类型为不带小数的数值类型 2.在进行插入(Insert)操作时,该列的值 ...

随机推荐

  1. 关于git的几点疑问

    git rename后查看之前的记录 对于某个文件进行rename之后,使用show log命令查看之前的修改记录都会丢失,通过命令行方式进行mv之后,在tortoisegit中查看记录还是丢失的 g ...

  2. HarmonyOS实战[三]—可编辑的卡片交互

    相关文章: HarmonyOS实战[一]--原理概念介绍安装:基础篇 HarmonyOS实战[二]-超级详细的原子化服务体验[可编辑的卡片交互]快来尝试吧 [本文正在参与"有奖征文|Harm ...

  3. 4.7 C++ Boost 多线程并发库

    Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量.可移植.高效的C应用程序.Boost库可以作为标准C库的后备,通常被称为准标准 ...

  4. 在package.json里面配置npx

    1.配置这个npx表示打包的时候选择本地node_modules安装的webpack来打包

  5. Python下的三维建模和可视化

    本文介绍基于AnyCAD Rapid Py三维图形平台开发Python的三维应用 1 准备工作 1.1 安装 vc_resit 2022 在Windows下,AnyCAD Rapid SDK依赖Vis ...

  6. 神经网络优化篇:详解Batch Norm 为什么奏效?(Why does Batch Norm work?)

    Batch Norm 为什么奏效? 为什么Batch归一化会起作用呢? 一个原因是,已经看到如何归一化输入特征值\(x\),使其均值为0,方差1,它又是怎样加速学习的,有一些从0到1而不是从1到100 ...

  7. 图(树)的深度优先遍历dfs

    图的深度优先遍历 深度优先,即对于一个图或者树来说,在遍历时优先考虑图或者树的单一路径的深度.示意图如下 即深度优先搜索的核心就是对一个路径一直向下搜索,当搜索到头时就回溯到前一状态再寻找别的路 深搜 ...

  8. P3089 Pogo-Cow S

    [USACO13NOV] Pogo-Cow S 题目传送门 题解 首先,一眼DP,想想怎么推状态转移方程 朴素DP 定义二维数组 \(f[i][j]\),其中第一维表示当前所在的目标点是\(i\),第 ...

  9. 基于Microsoft SemanticKernel和GPT4实现一个智能翻译服务

    今年.NET Conf China 2023技术大会,我给大家分享了 .NET应用国际化-AIGC智能翻译+代码生成的议题 .NET Conf China 2023分享-.NET应用国际化-AIGC智 ...

  10. Linux 中竖线“|”与双竖线“||”的意思

    linux中竖线'|',双竖线'||',&和&&的意思 对于初学者来说这几个意思可能只知道其中几个的意思,下面我们来看一下. 1.竖线'|' ,在linux中是作为管道符的,将 ...