中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql增刪改的方法是什么

發布時間:2022-11-02 11:02:49 來源:億速云 閱讀:108 作者:iii 欄目:MySQL數據庫

這篇文章主要介紹“mysql增刪改的方法是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql增刪改的方法是什么”文章能幫助大家解決問題。

插入數據

  • 代碼案例

# 方式1:一條一條的添加數據
# 沒有指明添加的字段時,一定要按照聲明的字段的先后順序添加
INSERT INTO emp1
VALUES (1,'Tom','2000-12-21',3400); 
# 錯誤寫法:沒有指定添加字段,也沒有按聲明順序
INSERT INTO emp1
VALUES (2,3400,'2000-12-21','Jerry');

# 指明要添加的字段 (推薦)
INSERT INTO emp1(id,hire_date,salary,`name`)
VALUES(2,'1999-09-09',4000,'Jerry');
# 說明:沒有進行賦值的hire_date的值為 null
INSERT INTO emp1(id,salary,`name`)
VALUES(3,4500,'shk');

# 同時插入多條記錄 (推薦)
INSERT INTO emp1(id,NAME,salary)
VALUES
(4,'Jim',5000),
(5,'張俊杰',5500);

# VALUES 也可以寫成 VALUE ,但是VALUES是標準寫法。
# 字符和日期型數據應包含在單引號中

# 方式2:將查詢結果插入到表中;查詢的字段一定要與添加到的表的字段一一對應
INSERT INTO emp1(id,NAME,salary,hire_date)
SELECT employee_id,last_name,salary,hire_date  
FROM employees
WHERE department_id IN (70,60);

# 說明:emp1表中要添加數據的字段的長度不能低于employees表中查詢的字段的長度
# 如果emp1表中要添加數據的字段的長度低于employees表中查詢的字段的長度的話,就有添加不成功的風險

更新數據

  • 代碼案例

# UPDATE .... SET .... WHERE ...
# 可以實現批量修改數據的
# 更新為當前時間
UPDATE emp1
SET hire_date = CURDATE()
WHERE id = 5;

#同時修改一條數據的多個字段
UPDATE emp1
SET hire_date = CURDATE(), salary = 6000
WHERE id = 4;

# 將表中姓名中包含字符a的提薪20%
UPDATE emp1
SET salary = salary * 1.2
WHERE NAME LIKE '%a%';

# 修改數據時,是可能存在不成功的情況的。(可能是由于約束的影響造成的)
UPDATE employees
SET department_id = 10000
WHERE employee_id = 102;

刪除數據

  • 代碼案例

# 刪除id為1的數據
DELETE FROM emp1
WHERE id = 1;

# 在刪除數據時,也有可能因為約束的影響,導致刪除失敗
DELETE FROM departments
WHERE department_id = 50;

# DML操作默認情況下,執行完以后都會自動提交數據
# 如果希望執行完以后不自動提交數據,則需要在DML操作前,使用 SET autocommit = FALSE

mysql8新特性,計算列

  • 代碼案例

# 新建1張表,字段c即為計算列
CREATE TABLE test1(
a INT,
b INT,
c INT GENERATED ALWAYS AS (a + b) VIRTUAL  
);

# 插入前2個字段時,自動計算第3個字段
INSERT INTO test1(a,b)
VALUES(10,20);

# 修改第1個字段后,自定計算第3個字段
UPDATE test1 SET a = 100;

綜合案例

  • 代碼案例

# 創建數據庫test01_library
CREATE DATABASE IF NOT EXISTS test01_library CHARACTER SET 'utf8';

# 切換數據庫
USE test01_library;

# 創建表 books,表結構如下:
CREATE TABLE IF NOT EXISTS books(
id INT,
`name` VARCHAR(50),
`authors` VARCHAR(100),
price FLOAT,
pubdate YEAR,
note VARCHAR(100),
num INT
);

# 查看表結構
DESC books;

# 查看表數據
SELECT * FROM books;

# 向books表中插入記錄
# 1)不指定字段名稱,插入第一條記錄
INSERT INTO books VALUES(1, 'Tal of AAA', 'Dickes', 23, '1995', 'novel', 11);
# 2)指定所有字段名稱,插入第二記錄
INSERT INTO books(id, NAME, AUTHORS, price, pubdate, note, num)
VALUES(2, 'EmmaT', 'Jane lura', 35, '1993', 'joke', 22);
# 3)同時插入多條記錄
INSERT INTO books(id, NAME, AUTHORS, price, pubdate, note, num)
VALUES
(3, 'Story of Jane', 'Jane Tim', 40, 2001, 'novel', 0),
(4, 'Lovey Day', 'George Byron', 20, 2005, 'novel', 30),
(5, 'Old land', 'Honore Blade', 30, 2010, 'Law', 0),
(6, 'The Battle', 'Upton Sara', 30, 1999, 'medicine', 40),
(7, 'Rose Hood', 'Richard haggard', 28, 2008, 'cartoon', 28);

# 將小說類型(novel)的書的價格都增加5
UPDATE books
SET price = price + 5
WHERE note = 'novel';

# 將名稱為EmmaT的書的價格改為40,并將說明改為drama
UPDATE books
SET price = 40, note = 'drama'
WHERE NAME = 'EmmaT';

# 刪除庫存為0的記錄
DELETE FROM books WHERE num = 0;

# 統計書名中包含a字母的書
SELECT NAME
FROM books
WHERE NAME LIKE '%a%';

# 統計書名中包含a字母的書的數量和庫存總量
SELECT COUNT(*), SUM(num)
FROM books
WHERE NAME LIKE '%a%';

#  找出“novel”類型的書,按照價格降序排列
SELECT NAME, note, price
FROM books
WHERE note = 'novel'
ORDER BY price DESC;

# 查詢圖書信息,按照庫存量降序排列,如果庫存量相同的按照note升序排列
SELECT *
FROM books
ORDER BY num DESC, note ASC;

# 按照note分類統計書的數量
SELECT note, COUNT(*)
FROM books
GROUP BY note;

# 按照note分類統計書的庫存量,顯示庫存量超過30本的
SELECT note, SUM(num)
FROM books
GROUP BY note
HAVING SUM(num) > 30;

# 查詢所有圖書,每頁顯示5本,顯示第二頁
SELECT *
FROM books
LIMIT 5, 5;

# 按照note分類統計書的庫存量,顯示庫存量最多的
SELECT note, SUM(num) sum_num
FROM books
GROUP BY note
ORDER BY sum_num DESC
LIMIT 0, 1;

# 查詢書名達到10個字符的書,不包括里面的空格
SELECT CHAR_LENGTH(REPLACE(NAME, ' ', ''))
FROM books;
# 方式2:
SELECT NAME
FROM books
WHERE CHAR_LENGTH(REPLACE(NAME, ' ', '')) >= 10;

# 查詢書名和類型,其中note值為novel顯示小說,law顯示法律,medicine顯示醫藥,cartoon顯示卡通,joke顯示笑話
SELECT NAME "書名", note, CASE note 
WHEN 'novel' THEN '小說'
WHEN 'law' THEN '法律'
WHEN 'medicine' THEN '醫藥'
WHEN 'cartoon' THEN '卡通'
WHEN 'joke' THEN '笑話'
ELSE '其他'
END "類型"
FROM books;

# 查詢書名、庫存,其中num值超過30本的,顯示滯銷,大于0并低于10的,顯示暢銷,為0的顯示需要無貨
SELECT NAME AS "書名", num AS "庫存", 
CASE WHEN num > 30 THEN '滯銷'
WHEN num > 0 AND num < 10 THEN '暢銷'
WHEN num = 0 THEN '無貨'
ELSE '正常'
END "顯示狀態"
FROM books;

# 統計每一種note的庫存量,并合計總量
SELECT IFNULL(note, '合計庫存總量') AS note, SUM(num)
FROM books
GROUP BY note WITH ROLLUP;

# 統計每一種note的數量,并合計總量
SELECT IFNULL(note, '合計總量') AS note, COUNT(*)
FROM books
GROUP BY note WITH ROLLUP;

# 統計庫存量前三名的圖書
SELECT *
FROM books
ORDER BY num DESC
LIMIT 0, 3;

# 找出最早出版的一本書
SELECT *
FROM books
ORDER BY pubdate ASC
LIMIT 0, 1;

# 找出novel中價格最高的一本書
SELECT *
FROM books
WHERE note = 'novel'
ORDER BY price DESC
LIMIT 0, 1;

# 找出書名中字數最多的一本書,不含空格
SELECT *
FROM books
ORDER BY CHAR_LENGTH(REPLACE(NAME, ' ', '')) DESC
LIMIT 0, 1;

關于“mysql增刪改的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

随州市| 黄骅市| 曲阳县| 隆回县| 张家界市| 新密市| 永春县| 大名县| 玉树县| 双流县| 丹阳市| 靖边县| 嘉荫县| 武隆县| 河间市| 建瓯市| 远安县| 巩留县| 扎赉特旗| 孝感市| 琼海市| 德钦县| 温宿县| 阿合奇县| 徐水县| 阿瓦提县| 大理市| 荆州市| 怀远县| 泽州县| 吴堡县| 峡江县| 临漳县| 榆林市| 永嘉县| 玛纳斯县| 梁河县| 阿城市| 商南县| 贵溪市| 普定县|