柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MySQL表的增刪改查
柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MySQL表的增刪改查
?博主主頁(yè):?碼農(nóng)派大星.
數(shù)據(jù)庫(kù)專欄:MySQL數(shù)據(jù)庫(kù)
關(guān)注博主帶你了解更多MySQL數(shù)據(jù)庫(kù)知識(shí)
1. CRUD
注釋:在SQL中可以使用“--空格+描述”來(lái)表示注釋說(shuō)明
CRUD 即增加(Create)、查詢(Retrieve)、更新(Update)、刪除(Delete)四個(gè)單詞的首字母縮寫
2. 新增(Create)?
create table stu_test(
id int,name varchar(20) comment'姓名',
chinese int,math int,english int)
我們上篇?jiǎng)?chuàng)建了一張表
現(xiàn)在我們來(lái)插入數(shù)據(jù):
2.1 單行數(shù)據(jù) + 全列插入
insert into stu_test values(1001,'蔡虛坤',44,55,76);
插入一條記錄,stu_test 數(shù)量必須和定義表的列的數(shù)量及順序一致?
2.2 多行數(shù)據(jù) + 指定列插入?
insert into stu_test(id,name,chinese,math,english)values
-> (1002,'蔡依林',34,56,78),
-> (1003,'孫悟空',45,56,87),
-> (1004,'唐三藏',56,78,98),
-> (1005,'豬無(wú)能',78,80,89);
3. 查詢(Retrieve)?
3.1 全列查詢
select * from stu_test;
3.2 指定列查詢?
select id,name,math from stu_test;
3.3 查詢字段為表達(dá)式?
表達(dá)式包含一個(gè)字段:
select id,name,math+10 from stu_test;
表達(dá)式包含多個(gè)字段?:
select id,name,math+chinese+english from stu_test;
3.4 別名?
為查詢結(jié)果中的列指定別名,表示返回的結(jié)果集中,以別名作為該列的名稱,語(yǔ)法:
SELECT id, name, chinese + math + english 總分 from stu_test;
3.5 去重:DISTINCT?
使用DISTINCT關(guān)鍵字對(duì)某列數(shù)據(jù)進(jìn)行去重:
56分重復(fù)了
select distinct math from stu_test;
去重結(jié)果:?
3.6 排序:ORDER BY?
ASC 為升序(從小到大)
-- DESC 為降序(從大到?。?/p>
-- 默認(rèn)為 ASC
1. 沒(méi)有 ORDER BY 子句的查詢,返回的順序是未定義的,永遠(yuǎn)不要依賴這個(gè)順序
2. NULL 數(shù)據(jù)排序,視為比任何值都小,升序出現(xiàn)在最上面,降序出現(xiàn)在最下面
select name,chinese from stu_test order by chinese;
select name,chinese from stu_test order by chinese desc;
3. 使用表達(dá)式及別名排序
select name,chinese+math+english from stu_test order by chinese+math+english;
select name,chinese+math+english 總分 from stu_test order by 總分 desc;
4. 可以對(duì)多個(gè)字段進(jìn)行排序,排序優(yōu)先級(jí)隨書寫順序?
SELECT name, math, english, chinese FROM stu_test order by math desc ,english,chinese;
-- 查詢同學(xué)各門成績(jī),依次按 數(shù)學(xué)降序,英語(yǔ)升序,語(yǔ)文升序的方式顯示
3.7 條件查詢:WHERE?
比較運(yùn)算符:
邏輯運(yùn)算符:
注意:
1. WHERE條件可以使用表達(dá)式,但不能使用別名。
2. AND的優(yōu)先級(jí)高于OR,在同時(shí)使用時(shí),需要使用小括號(hào)()包裹優(yōu)先執(zhí)行的部分?
基本查詢:?
select name math from stu_test where math < 60;
-- 查詢數(shù)學(xué)不及格的同學(xué)及數(shù)學(xué)成績(jī) ( < 60 )
SELECT name, chinese, english FROM stu_test WHERE chinese < english;
-- 查詢語(yǔ)文成績(jī)不好于英語(yǔ)成績(jī)的同學(xué)
SELECT name, chinese + math + english 總分 FROM stu_test
-> where chinese + math + english < 200;
-- 查詢總分在 200 分以下的同學(xué)
?AND與OR:
SELECT * FROM stu_test WHERE chinese > 70 and english > 80;
-- 查詢語(yǔ)文成績(jī)大于70分,且英語(yǔ)成績(jī)大于80分的同學(xué)
SELECT * FROM stu_test WHERE chinese > 70 or english > 80;
-- 查詢語(yǔ)文成績(jī)大于70分,或英語(yǔ)成績(jī)大于80分的同學(xué)
??觀察AND 和 OR 的優(yōu)先級(jí):
SELECT * FROM stu_test WHERE chinese > 50 or math>70 and english > 70;
SELECT * FROM stu_test WHERE (chinese > 50 or math>70) and english > 70;
范圍查詢:?
1. BETWEEN ... AND
SELECT name, chinese FROM stu_test WHERE chinese BETWEEN 60 AND 90;
查詢語(yǔ)文成績(jī)?cè)?[60, 90] 分的同學(xué)及語(yǔ)文成績(jī)
SELECT name, chinese FROM stu_test WHERE chinese >= 60 AND chinese <= 90;
使用and也能實(shí)現(xiàn)
2. IN?
SELECT name, math FROM stu_test WHERE math IN (58, 59, 80, 78);
查詢數(shù)學(xué)成績(jī)是 58 或者 59 或者 78 或者 80 分的同學(xué)及數(shù)學(xué)成績(jī)
SELECT name, math FROM stu_test WHERE math = 58 OR math = 59 OR math = 80 or math = 78;
使用or也能查出
模糊查詢:LIKE?
select name from stu_test where name like '蔡%'
-- % 匹配任意多個(gè)(包括 0 個(gè))字符
select name from stu_test where name like '%無(wú)%';
select name from stu_test where name like '蔡__';
_ 匹配嚴(yán)格的一個(gè)任意字符
NULL 的查詢:IS [NOT] NULL?
select name,english from stu_test where english is null;
查詢 english 未知的同學(xué)姓名
select name,english from stu_test where english is not null;
查詢 english 已知的同學(xué)姓名
?3.8 分頁(yè)查詢:LIMIT
起始下標(biāo)為 0
select name from stu_test limit 3;
- 從 0 開(kāi)始,篩選 3 條結(jié)果
select name from stu_test limit 3,2;
從 3 開(kāi)始,篩選 2條結(jié)果
select name from stu_test limit 3 offset 2;
從 2 開(kāi)始,篩選 3 條結(jié)果,比第二種用法更明確,建議使用
按 id 進(jìn)行分頁(yè),每頁(yè) 3 條記錄,分別顯示 第 1、2、3 頁(yè)
SELECT id, name, math, english, chinese FROM stu_test ORDER BY id LIMIT 3 offset 0;
SELECT id, name, math, english, chinese FROM stu_test ORDER BY id LIMIT 3 offset 3;
SELECT id, name, math, english, chinese FROM stu_test ORDER BY id LIMIT 3 offset 5;
4. 修改(Update)
語(yǔ)法:
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
將孫悟空同學(xué)的數(shù)學(xué)成績(jī)變更為 80 分
update stu_test set math = 80 where name = '孫悟空';
將孫悟空同學(xué)的數(shù)學(xué)成績(jī)變更為 60 分,語(yǔ)文成績(jī)變更為 70 分
select math, chinese from stu_test where name = '孫悟空';
- 將總成績(jī)倒數(shù)前三的 3 位同學(xué)的數(shù)學(xué)成績(jī)加上 30 分
update stu_test set math = math + 30 order by chinese+math+english limit 3;
將所有同學(xué)的語(yǔ)文成績(jī)更新為原來(lái)的 2 倍
UPDATE exam_result SET chinese = chinese * 2;
5. 刪除(Delete)?
語(yǔ)法:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
刪除孫悟空同學(xué)的考試成績(jī)
DELETE FROM exam_result WHERE name = '孫悟空';
- 刪除整張表數(shù)據(jù)
delete from stu_test;
刪除操作比較危險(xiǎn),這里小編就不給大家演示了哈!?
柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MySQL表的增刪改查
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。