您好,登錄后才能下訂單哦!
這篇文章主要介紹“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
代碼案例
# 新建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增刪改的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。