日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL数据处理之增删改,MySQL8新特性计算列,完整详细可收藏

發布時間:2023/12/2 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL数据处理之增删改,MySQL8新特性计算列,完整详细可收藏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1、插入數據
    • 2、更新數據
    • 3、刪除數據
    • 4、MySQL8新特性:計算列


1、插入數據

1.1 方式1:VALUES的方式添加

情況1:為表的所有字段按默認順序插入數據

INSERT INTO 表名 VALUES (value1,value2,....);

值列表中需要為表的每一個字段指定值,并且值的順序必須和數據表中字段定義時的順序相同。
舉例:

INSERT INTO departments VALUES (70, 'Pub', 100, 1700);INSERT INTO departments VALUES (100, 'Finance', NULL, NULL);

情況2:為表的指定字段插入數據

INSERT INTO 表名(column1 [, column2,, columnn]) VALUES (value1 [,value2,, valuen]);

為表的指定字段插入數據,就是在INSERT語句中只向部分字段中插入值,而其他字段的值為表定義時的默認值。在 INSERT 子句中隨意列出列名,但是一旦列出,VALUES中要插入的value1,…valuen需要與column1,…columnn列一一對應。如果類型不同,將無法插入,并且MySQL會產生錯誤。
舉例:

INSERT INTO departments(department_id, department_name) VALUES (80, 'IT');

情況3:同時插入多條記錄
INSERT語句可以同時向數據表中插入多條記錄,插入時指定多個值列表,每個值列表之間用逗號分隔開,基本語法格式如下:

INSERT INTO table_name VALUES (value1 [,value2,, valuen]), (value1 [,value2,, valuen]), …… (value1 [,value2,, valuen]); INSERT INTO table_name(column1 [, column2,, columnn]) VALUES (value1 [,value2,, valuen]), (value1 [,value2,, valuen]), …… (value1 [,value2,, valuen]);

舉例:

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會返回一些在執行單行插入時沒有的額外信息,這些信息的含義如下: ● Records:表明插入的記錄條數。
● Duplicates:表明插入時被忽略的記錄,原因可能是這些記錄包含了重復的主鍵值。 ● Warnings:表明有問題的數據值,例如發生數據類型轉換。

1.2 方式2:將查詢結果插入到表中
INSERT還可以將SELECT語句查詢的結果插入到表中,此時不需要把每一條記錄的值一個一個輸入,只需要使用一條INSERT語句和一條SELECT語句組成的組合語句即可快速地從一個或多個表中向一個表中插入多行。基本語法格式如下:

INSERT INTO 目標表名 (tar_column1 [, tar_column2,, tar_columnn]) SELECT (src_column1 [, src_column2,, src_columnn]) FROM 源表名 [WHERE condition]

舉例:

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、更新數據


使用 UPDATE 語句更新數據。語法如下:

UPDATE table_name SET column1=value1, column2=value2,, column=valuen [WHERE condition]

可以一次更新多條數據。如果需要回滾數據,需要保證在DML前,SET AUTOCOMMIT = FALSE;。

UPDATE employees SET department_id = 70 WHERE employee_id = 113;

3、刪除數據


使用 DELETE 語句從表中刪除數據:

DELETE FROM table_name [WHERE <condition>]; DELETE FROM departments WHERE department_name = 'Finance';

如果省略 WHERE 子句,則表中的全部數據將被刪除。


4、MySQL8新特性:計算列

什么叫計算列呢?簡單來說就是某一列的值是通過別的列計算得來的。例如,a列值為1、b列值為2,c列不需要手動插入,定義a+b的結果為c的值,那么c就是計算列,是通過別的列計算得來的。

在MySQL 8.0中,CREATE TABLE 和 ALTER TABLE 中都支持增加計算列。

舉例:定義數據表tb1,然后定義字段id、字段a、字段b和字段c,其中字段c為計算列,用于計算a+b的值。 首先創建測試表tb1,語句如下:

CREATE TABLE tb1( id INT, a INT, b INT, c INT GENERATED ALWAYS AS (a + b) VIRTUAL );

插入演示數據,語句如下:

INSERT INTO tb1(a,b) VALUES (100,200);

查詢數據表tb1中的數據,結果如下:

mysql> SELECT * FROM tb1; +------+------+------+------+ | id | a | b | c | +------+------+------+------+ | NULL | 100 | 200 | 300 | +------+------+------+------+ 1 row in set (0.00 sec)

總結

以上是生活随笔為你收集整理的MySQL数据处理之增删改,MySQL8新特性计算列,完整详细可收藏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。