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