SQL(四、數據更新)

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|官網上線|試用版下載

TAG:SQL | MySQL | 資料庫 |