MySQL數(shù)據(jù)庫CRUD增刪改查實操詳解(附可直接運行示例)
前言
CRUD是MySQL最基礎(chǔ)、最常用的核心操作,對應(yīng)插入(Create)、查詢(Read)、修改(Update)、刪除(Delete),也是新手入門MySQL的第一個實操重點。
很多新手剛學(xué)的時候,要么語句寫錯、要么條件遺漏,導(dǎo)致操作失敗。這篇文章全程用「可直接復(fù)制運行」的示例,手把手教你CRUD每一步,搭配避坑提示,新手也能零錯誤上手。
先準(zhǔn)備測試表(所有示例均基于此表,復(fù)制即可創(chuàng)建):
-- 創(chuàng)建測試表:user(用戶表)
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT, -- 自增主鍵
name VARCHAR(20) NOT NULL, -- 用戶名(非空)
age INT, -- 年齡
gender TINYINT, -- 性別(1=男,2=女)
email VARCHAR(50) UNIQUE, -- 郵箱(唯一)
create_time DATETIME DEFAULT NOW() -- 創(chuàng)建時間(默認(rèn)當(dāng)前時間)
);一、插入操作(Create):INSERT
1. 基礎(chǔ)插入(指定字段)
最常用、最安全的方式,明確指定要插入的字段,避免字段順序錯亂導(dǎo)致報錯。
-- 插入1條數(shù)據(jù)
INSERT INTO user (name, age, gender, email)
VALUES ('張三', 20, 1, 'zhangsan@163.com');
-- 插入多條數(shù)據(jù)(逗號分隔,效率更高)
INSERT INTO user (name, age, gender, email)
VALUES
('李四', 22, 1, 'lisi@163.com'),
('王五', 19, 2, 'wangwu@163.com'),
('趙六', 21, 1, 'zhaoliu@163.com');2. 簡化插入(不指定字段)
需嚴(yán)格按照表中字段順序插入,且不能遺漏非空字段,不推薦新手使用。
INSERT INTO user VALUES (NULL, '孫七', 23, 2, 'sunqi@163.com', DEFAULT); -- 說明:主鍵自增可填NULL,DEFAULT表示使用字段默認(rèn)值(此處為當(dāng)前時間)
插入避坑
- 錯誤:插入非空字段(如name)時不賦值,會報錯;
- 錯誤:插入唯一字段(如email)時,值重復(fù),會報錯;
- 正確:插入前確認(rèn)非空字段、唯一字段的值合規(guī)。
二、查詢操作(Read):SELECT
查詢是開發(fā)中使用頻率最高的操作,先掌握基礎(chǔ)查詢,后續(xù)再學(xué)進(jìn)階用法。
1. 查詢所有數(shù)據(jù)(全表查詢)
-- 查用戶名、年齡、郵箱 SELECT name, age, email FROM user;
2. 查詢指定字段
只查需要的字段,避免全表查詢浪費性能,推薦使用。
-- 查用戶名、年齡、郵箱 SELECT name, age, email FROM user;
3. 去重查詢(DISTINCT)
當(dāng)字段有重復(fù)值時,只顯示唯一值。
-- 查所有不重復(fù)的性別 SELECT DISTINCT gender FROM user;
三、修改操作(Update):UPDATE
修改表中已存在的數(shù)據(jù),必須加WHERE條件,否則會修改全表數(shù)據(jù),極其危險!
1. 基礎(chǔ)修改(指定條件)
-- 修改張三的年齡為21 UPDATE user SET age = 21 WHERE name = '張三'; -- 修改王五的郵箱和性別 UPDATE user SET email = 'wangwu@qq.com', gender = 1 WHERE id = 3; -- 用主鍵作為條件,更精準(zhǔn)、更安全
2. 批量修改(謹(jǐn)慎使用)
多條件匹配,批量修改符合條件的數(shù)據(jù),務(wù)必確認(rèn)條件無誤。
-- 修改所有年齡>20的用戶,性別改為1 UPDATE user SET gender = 1 WHERE age > 20;
修改避坑
- 錯誤:忘記加WHERE條件,導(dǎo)致全表數(shù)據(jù)被修改;
- 錯誤:修改唯一字段時,值重復(fù),會報錯;
- 正確:修改前先執(zhí)行SELECT查詢,確認(rèn)條件匹配的是目標(biāo)數(shù)據(jù)。
四、刪除操作(Delete):DELETE
刪除表中數(shù)據(jù),同樣必須加WHERE條件,否則會刪除全表數(shù)據(jù),無法恢復(fù)(無備份情況下)。
1. 基礎(chǔ)刪除(指定條件)
-- 刪除名字為孫七的用戶 DELETE FROM user WHERE name = '孫七'; -- 刪除id為4的用戶(主鍵刪除,最安全) DELETE FROM user WHERE id = 4;
2. 批量刪除
-- 刪除年齡<20的用戶 DELETE FROM user WHERE age < 20;
3. 清空表(TRUNCATE)
清空全表數(shù)據(jù),且重置自增主鍵(和DELETE刪除全表的區(qū)別:DELETE不重置自增)。
-- 清空user表所有數(shù)據(jù),自增主鍵從1重新開始 TRUNCATE TABLE user;
刪除避坑
- 錯誤:忘記加WHERE條件,刪除全表數(shù)據(jù);
- 錯誤:用DELETE清空表后,自增主鍵不會重置;
- 正確:日常刪除用DELETE+WHERE,清空表用TRUNCATE(確認(rèn)無需保留數(shù)據(jù))。
五、CRUD總結(jié)
1. 插入:INSERT INTO ... VALUES ...(多數(shù)據(jù)用逗號分隔);
2. 查詢:SELECT 字段 FROM 表名(* 表示所有字段);
3. 修改:UPDATE 表名 SET 字段=值 WHERE 條件(必加WHERE);
4. 刪除:DELETE FROM 表名 WHERE 條件(必加WHERE),清空用TRUNCATE。
到此這篇關(guān)于MySQL數(shù)據(jù)庫CRUD增刪改查實操詳解(附可直接運行示例)的文章就介紹到這了,更多相關(guān)MySQL CRUD操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
優(yōu)化MySQL數(shù)據(jù)庫中的查詢語句詳解
這篇文章主要介紹了優(yōu)化MySQL數(shù)據(jù)庫中的查詢語句,非常實用的經(jīng)驗總結(jié),需要的朋友可以參考下2014-07-07
詳解MySQL數(shù)據(jù)庫insert和update語句
用于操作數(shù)據(jù)庫的SQL一般分為兩種,一種是查詢語句,也就是我們所說的SELECT語句,另外一種就是更新語句,也叫做數(shù)據(jù)操作語句。接下來通過本文給大家介紹MySQL數(shù)據(jù)庫insert和update語句,需要的朋友一起學(xué)習(xí)吧2016-04-04
利用mycat實現(xiàn)mysql數(shù)據(jù)庫讀寫分離的示例
本篇文章主要介紹了利用mycat實現(xiàn)mysql數(shù)據(jù)庫讀寫分離的示例,mycat是最近很火的一款國人發(fā)明的分布式數(shù)據(jù)庫中間件,它是基于阿里的cobar的基礎(chǔ)上進(jìn)行開發(fā)的,有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03

