MySQL数据处理之增删改,MySQL8新特性计算列,完整详细可收藏
文章目錄
- 1、插入數(shù)據(jù)
- 2、更新數(shù)據(jù)
- 3、刪除數(shù)據(jù)
- 4、MySQL8新特性:計算列
 
1、插入數(shù)據(jù)
1.1 方式1:VALUES的方式添加
情況1:為表的所有字段按默認順序插入數(shù)據(jù)
INSERT INTO 表名 VALUES (value1,value2,....);值列表中需要為表的每一個字段指定值,并且值的順序必須和數(shù)據(jù)表中字段定義時的順序相同。
 舉例:
情況2:為表的指定字段插入數(shù)據(jù)
INSERT INTO 表名(column1 [, column2, …, columnn]) VALUES (value1 [,value2, …, valuen]);為表的指定字段插入數(shù)據(jù),就是在INSERT語句中只向部分字段中插入值,而其他字段的值為表定義時的默認值。在 INSERT 子句中隨意列出列名,但是一旦列出,VALUES中要插入的value1,…valuen需要與column1,…columnn列一一對應。如果類型不同,將無法插入,并且MySQL會產(chǎn)生錯誤。
 舉例:
情況3:同時插入多條記錄
 INSERT語句可以同時向數(shù)據(jù)表中插入多條記錄,插入時指定多個值列表,每個值列表之間用逗號分隔開,基本語法格式如下:
舉例:
mysql> INSERT INTO emp(emp_id,emp_name) -> VALUES (1001,'shkstart'), -> (1002,'atguigu'), -> (1003,'Tom'); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0使用INSERT同時插入多條記錄時,MySQL會返回一些在執(zhí)行單行插入時沒有的額外信息,這些信息的含義如下: ● Records:表明插入的記錄條數(shù)。
 ● Duplicates:表明插入時被忽略的記錄,原因可能是這些記錄包含了重復的主鍵值。 ● Warnings:表明有問題的數(shù)據(jù)值,例如發(fā)生數(shù)據(jù)類型轉換。
1.2 方式2:將查詢結果插入到表中
 INSERT還可以將SELECT語句查詢的結果插入到表中,此時不需要把每一條記錄的值一個一個輸入,只需要使用一條INSERT語句和一條SELECT語句組成的組合語句即可快速地從一個或多個表中向一個表中插入多行。基本語法格式如下:
舉例:
INSERT INTO emp2 SELECT * FROM employees WHERE department_id = 90;INSERT INTO sales_reps(id, name, salary, commission_pct) SELECT employee_id, last_name, salary, commission_pct FROM employees WHERE job_id LIKE '%REP%';2、更新數(shù)據(jù)
 使用 UPDATE 語句更新數(shù)據(jù)。語法如下:
可以一次更新多條數(shù)據(jù)。如果需要回滾數(shù)據(jù),需要保證在DML前,SET AUTOCOMMIT = FALSE;。
UPDATE employees SET department_id = 70 WHERE employee_id = 113;3、刪除數(shù)據(jù)
 使用 DELETE 語句從表中刪除數(shù)據(jù):
如果省略 WHERE 子句,則表中的全部數(shù)據(jù)將被刪除。
4、MySQL8新特性:計算列
什么叫計算列呢?簡單來說就是某一列的值是通過別的列計算得來的。例如,a列值為1、b列值為2,c列不需要手動插入,定義a+b的結果為c的值,那么c就是計算列,是通過別的列計算得來的。
在MySQL 8.0中,CREATE TABLE 和 ALTER TABLE 中都支持增加計算列。
舉例:定義數(shù)據(jù)表tb1,然后定義字段id、字段a、字段b和字段c,其中字段c為計算列,用于計算a+b的值。 首先創(chuàng)建測試表tb1,語句如下:
CREATE TABLE tb1( id INT, a INT, b INT, c INT GENERATED ALWAYS AS (a + b) VIRTUAL );插入演示數(shù)據(jù),語句如下:
INSERT INTO tb1(a,b) VALUES (100,200);查詢數(shù)據(jù)表tb1中的數(shù)據(jù),結果如下:
mysql> SELECT * FROM tb1; +------+------+------+------+ | id | a | b | c | +------+------+------+------+ | NULL | 100 | 200 | 300 | +------+------+------+------+ 1 row in set (0.00 sec)總結
以上是生活随笔為你收集整理的MySQL数据处理之增删改,MySQL8新特性计算列,完整详细可收藏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        