1 #标识列2 /*
3 又称为自增长列4 含义:可以不用手动的插入值,系统提供默认的序列值5
6
7 特点:8 1、标识列必须和主键搭配吗?不一定,但要求是一个key9 2、一个表可以有几个标识列?至多一个!10 3、标识列的类型只能是数值型11 4、标识列可以通过 SET auto_increment_increment=3;设置步长12 可以通过 手动插入值,设置起始值13
14
15 */
16
17 #一、创建表时设置标识列18
19
20 DROP TABLE IF EXISTStab_identity;21 CREATE TABLEtab_identity(22 id INT,23 NAME FLOAT UNIQUEAUTO_INCREMENT,24 seat INT
25
26
27 );28 TRUNCATE TABLEtab_identity;29
30
31 INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');32 INSERT INTO tab_identity(NAME) VALUES('lucy');33 SELECT * FROMtab_identity;34
35
36 SHOW VARIABLES LIKE '%auto_increment%';37
38
39 SET auto_increment_increment=3;40
41
42
43 #TCL44 /*
45 Transaction Control Language 事务控制语言46
47 事务:48 一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。49
50 案例 转账51
52 张三丰 100053 郭襄 100054
55 update 表 set 张三丰的余额=500 where name='张三丰'56 意外57 update 表 set 郭襄的余额=1500 where name='郭襄'58
59
60 事务的特性:61 ACID62 原子性:一个事务不可再分割,要么都执行要么都不执行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 read105 oracle中默认第二个隔离级别 read committed106 查看隔离级别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 * FROMaccount;141
142
143 #2.演示事务对于delete和truncate的处理的区别144
145 SET autocommit=0;146 START TRANSACTION;147
148 DELETE FROMaccount;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 TOa;#回滚到保存点160
161
162 SELECT * FROM account;