SQL(四、數據更新)
來自專欄露珠學數據分析
1、數據的插入(INSERT語句)
INSERT語句的基本用法:
INSERT INTO 表名 (列1,列2,...)VALUES (值1,值2,...);
例:
INSERT INTO ProductIns (product_id, product_name, product_type, sale_price, purchase_price, regist_data) VALUES (0001,T恤衫,衣服,1000,500,2009-09-20);
清單:將列名和值名用逗號隔開,分別括在括弧內的形式。
列清單:(product_id, product_name, product_type, sale_price, purchase_price, regist_data)
行情單: (0001,T恤衫,衣服,1000,500,2009-09-20)
原則上,執行一次INSERT語句可以插入一行至多行數據。
列清單一般省略
插入NULL
INSERT語句中想給某一列賦予NULL值時,可以直接在VALUES子句的值清單中寫入NULL。
想要插入NULL的列一定不能設置成NOT NULL。
插入默認值
在創建表格時設置該列為默認值;
顯示插入:在VALUE子句中指定DEFAULT關鍵字。(常用)
確認插入的數據行
SELECT * FROM Product1 WHERE product_id=0007;
隱式插入:在列清單和VALUES中省略了設置默認值的列即可。
註:如果省略了沒有設置默認值的列,該列的值就會被設定為NULL,如果省略的是設置了NOT NULL7約束的列,INSERT語句就會出錯。
從其他表中複製數據
INSERT...SELECT...語句用於數據備份。
例:首先創建與Product完全一樣的表Product_copy,然後將Product表中的數據插入到Product_copy中來。
多種多樣的SELECT語句
INSERT語句中的SELECT語句,也可以使用WHERE子句或者GROUP BY子句等。
2、數據的刪除(DELETE語句)
DROP TABLE 表名;——將表完全刪除
DELETE語句會留下容器,而刪除表中的全部數據。
DELETE語句的基本語法:
保留數據表,而刪除全部數據行。
DELETE FROM 表名;
注:DELETE語句刪除的對象不是表或者列,而是記錄(行)。
指定刪除對象的DELETE語句(搜索型DELETE)
刪除部分數據行的搜索型DELETE
DELETE FROM 表名
WHERE 條件;
3、數據的更新(UPDATE語句)
UPDATE語句語法:
UPDATE 表名
SET 列名 = 表達式;
例:將登記日期全部更新為"2009-10-10"
原本登記日期為NULL的數據行的值也更新為2009-10-10了。
指定條件的UPDATE語句(搜索型UPDATE):
搜索型UPDATE語法:
UPDATE 表名
SET 列名 = 表達式
WHERE 條件;
例:將商品種類為廚房用具的記錄的銷售單價更新為原來的10倍。
確認更新後的內容
使用NULL進行更新
UPDATE語句可以將值清空為NULL,但是僅限於未設置NOT NULL的約束列。
例:將商品編號為0008的登記日期更新為NULL.
確認更新後的內容
多列更新
例:將銷售單價更新為原來的一半,同時,將進貨單價更新為原來的二倍。
4、事務
事務
事務:在同一個處理單元中執行的一系列更新處理的集合。
創建事務(DBMS)
事務開始語句;(Mysql中START TRANSACTION;)
DML語句1;(INSERT/UPDATE/DELETE語句)
DML語句2;
......
事務結束語句;(COMMIT;(提交處理)或者ROLLBACK;(取消處理))
如何區分各個事務
(1)每條SQL語句就是一個事務;(自動提交模式)
(2)知道用戶執行COMMIT或者ROLLBACK為止算作一個事務。
推薦閱讀:
※關係型資料庫的原理
※免費家譜資料庫及相關資料
※spring配置連接池(斷開後,自動重連(proxool))
※關係資料庫—SQL(學習筆記)
※OceanBase|官網上線|試用版下載