1 #標識列 2 /* 3 又稱為自增長列 4 含義:可以不用手動的插入值,系統提供預設的序列值 5 6 7 特點: 8 1、標識列必須和主鍵搭配嗎?不一定,但要求是一個key 9 2、一個表可以有幾個標識列?至多一個! 10 3、標識列的類型只能是數值型 11 4、標識列可以通過 SET auto ...
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;