MySQL表的基本查詢?cè)敿?xì)圖文教程
1,創(chuàng)建表
前面基礎(chǔ)的文章已經(jīng)講了很多啦,直接上操作:
非常簡單!下一個(gè)!
2,插入數(shù)據(jù)
1,全列插入
前面也說很多了,直接上操作:
以上插入和全列插入類似,全列插入也可以這樣寫:
注意,后面插入的數(shù)據(jù)數(shù)量必須和定義表的列的數(shù)量及順序一致
2,多行數(shù)據(jù) + 指定列插入
插入兩條記錄,value_list 數(shù)量必須和指定列數(shù)量及順序一致
操作:
如果需要用一條語句插入多行數(shù)據(jù),可以在values后面用逗號(hào)隔開然后加入數(shù)據(jù):
3,插入否,則更新
由于 主鍵 或者 唯一鍵 對(duì)應(yīng)的值已經(jīng)存在而導(dǎo)致插入失敗
可以選擇性的進(jìn)行同步更新操作語法:
on duplicate key update = 。。。。。
可以看到,因?yàn)橹麈I沖突所以無法插入數(shù)據(jù),那么我又不想要id為1的數(shù)據(jù),這個(gè)時(shí)候就可以用上面的語法:
可以看到,表中的第一行數(shù)據(jù)被更新了。
3,替換
用法:
-- 主鍵 或者 唯一鍵 沒有沖突,則直接插入;
-- 主鍵 或者 唯一鍵 如果沖突,則刪除后再插入
我們可以用創(chuàng)建成功后的提示來看有沒有數(shù)據(jù)沖突:
-- 1 row affected: 表中沒有沖突數(shù)據(jù),數(shù)據(jù)被插入
-- 2 row affected: 表中有沖突數(shù)據(jù),刪除后重新插入
創(chuàng)建表和插入數(shù)據(jù)講完之后,就可以開始我們的主題了:表的查詢!
4,表的查詢
首先我們來快速創(chuàng)建一個(gè)表,讓我們可以方便查詢:
具體指令:
創(chuàng)建表指令:
CREATE TABLE exam_result ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL COMMENT '同學(xué)姓名', chinese float DEFAULT 0.0 COMMENT '語文成績', math float DEFAULT 0.0 COMMENT '數(shù)學(xué)成績', english float DEFAULT 0.0 COMMENT '英語成績' );
插入表指令:
INSERT INTO exam_result (name, chinese, math, english) VALUES ('唐三藏', 67, 98, 56), ('孫悟空', 87, 78, 77), ('豬悟能', 88, 98, 90), ('曹孟德', 82, 84, 67), ('劉玄德', 55, 85, 45), ('孫權(quán)', 70, 73, 78), ('宋公明', 75, 65, 30);
1,select列
1,全列查詢
通常情況下不建議使用 * 進(jìn)行全列查詢
1. 查詢的列越多,意味著需要傳輸?shù)臄?shù)據(jù)量越大;
2. 可能會(huì)影響到索引的使用。(索引待后面講解)
操作:
2,指定列查詢
操作:
3,查詢字段為表達(dá)式
可以看到,可以進(jìn)行運(yùn)算并顯示在表中。
4,為查詢結(jié)果指定別名
操作:在加算表達(dá)式后面加as加要命名的名字
其中,as可以省略:
5,結(jié)果去重
我們想去差個(gè)成績,看全班分?jǐn)?shù)的整體趨勢(shì),為此要求分?jǐn)?shù)不重復(fù),而我們看到math里分?jǐn)?shù)有重復(fù)的部分,那么我們?cè)趺唇鉀Q這個(gè)分?jǐn)?shù)重復(fù)的問題?
去重!語法:在列名前加distinct:
可以看到,表中的數(shù)據(jù)被去重
2,where語句
我們可以用where語句來做判斷來查詢表,具體判斷的表達(dá)式:
我們用例子來描述上面操作符的使用:
1 英語不及格的同學(xué)及英語成績 ( < 60 )
可以用比較來篩選出想要的數(shù)據(jù)。
2,語文成績?cè)?[80, 90] 分的同學(xué)及語文成績
這個(gè)時(shí)候,可以引入一個(gè)指令:and,它代表的是且命令,就和C++中的&&差不多
也可以用between來查詢,操作如下:
3,數(shù)學(xué)成績是 58 或者 59 或者 98 或者 99 分的同學(xué)及數(shù)學(xué)成績
這里面可以用or指令來完成,or相當(dāng)于C++里的||:
當(dāng)然,這樣寫比較麻煩,那么可以使用in條件來寫:
這些寫會(huì)比第一種方法好看。
4,姓孫的同學(xué) 及 孫某同學(xué)
這時(shí)候得引入模糊查找和%:
可以看到,孫后面的名字都查到了,但是如果只想要后面只有一個(gè)字的怎么操作?
可以看到,用_可以指定后面跟多少字
5,語文成績好于英語成績的同學(xué)
可以打印列表與列表的比較:
6,總分在 200 分以下的同學(xué)
可以用表相加減得出,但是不能用給表啟的名字做比較,因?yàn)檎Z句執(zhí)行的順序不一樣:
7,語文成績 > 80 并且不姓孫的同學(xué)
這里用到了like和not連用
8,孫某同學(xué),否則要求總成績 > 200 并且 語文成績 < 數(shù)學(xué)成績 并且 英語成績 > 80
9,NULL 的查詢
先創(chuàng)建表
查詢 qq 號(hào)已知的id:
NULL 和 NULL 的比較,= 和 的區(qū)別
3,結(jié)果排序
語法:
-- ASC 為升序(從小到大)
-- DESC 為降序(從大到?。?/p>
-- 默認(rèn)為 ASC
注意:沒有 ORDER BY 子句的查詢,返回的順序是未定義的,永遠(yuǎn)不要依賴這個(gè)順序
1,同學(xué)及數(shù)學(xué)成績,按數(shù)學(xué)成績升序顯示
2,同學(xué)及數(shù)學(xué)成績,按數(shù)學(xué)成績降序顯示
3,查詢同學(xué)各門成績,依次按 數(shù)學(xué)降序,英語升序,語文升序的方式顯示
4,查詢同學(xué)及總分,由高到低
5,查詢姓孫的同學(xué)或者姓曹的同學(xué)數(shù)學(xué)成績,結(jié)果按數(shù)學(xué)成績由高到低顯示
4,篩選分頁結(jié)果
關(guān)鍵字:limit
只顯示前幾行
操作:
可以看到,limit前加的數(shù)字代表從第幾行開始,第二個(gè)數(shù)字代表往下顯示幾行
可以用關(guān)鍵字offset來表示第幾行開始:
總結(jié)
到此這篇關(guān)于MySQL表的基本查詢的文章就介紹到這了,更多相關(guān)MySQL表的基本查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyEclipse連接Mysql數(shù)據(jù)庫的方法(一)
這篇文章主要介紹了MyEclipse連接Mysql數(shù)據(jù)庫的方法(一)的相關(guān)資料,非常實(shí)用,具有參考價(jià)值,需要的朋友可以參考下2016-05-05mysql數(shù)據(jù)存儲(chǔ)過程參數(shù)實(shí)例詳解
這篇文章主要介紹了mysql數(shù)據(jù)存儲(chǔ)過程參數(shù)實(shí)例詳解,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-10-10mysql的基礎(chǔ)語句和外鍵查詢及其語句詳解(推薦)
這篇文章主要介紹了mysql的基礎(chǔ)語句和外鍵查詢及其語句詳解(推薦),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-04-04Express連接MySQL及數(shù)據(jù)庫連接池技術(shù)實(shí)例
數(shù)據(jù)庫連接池是程序啟動(dòng)時(shí)建立足夠數(shù)量的數(shù)據(jù)庫連接對(duì)象,并將這些連接對(duì)象組成一個(gè)池,由程序動(dòng)態(tài)地對(duì)池中的連接對(duì)象進(jìn)行申請(qǐng)、使用和釋放,本文重點(diǎn)給大家介紹Express連接MySQL及數(shù)據(jù)庫連接池技術(shù),感興趣的朋友一起看看吧2022-02-02