国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解

瀏覽:22日期:2023-10-15 15:40:43

本文實例講述了mysql連接查詢、聯合查詢、子查詢原理與用法。分享給大家供大家參考,具體如下:

本文內容: 連接查詢 聯合查詢 子查詢 from子查詢 where子查詢 exists子查詢

首發日期:2018-04-11

連接查詢: 連接查詢就是將多個表聯合起來查詢,連接查詢方式有內連接、外連接、自然連接、交叉連接。連接查詢使得可以同時查看多張表中數據。 內連接:有條件連接,多個表之間依據指定條件連接,匹配結果是保留符合匹配結果的記錄。 外連接:與內連接不同的是不管匹配符不符合都保留,根據外連接連接方式來決定保留哪張表,比如保留左表的話,那么左表無法匹配右表時,保留左表數據,然后置右表字段數據為null. 自然連接:有條件連接,自動依據“同名字段”連接(多個同名字段就都作為條件)。 交叉連接cross join:無條件連接,將每一條記錄與另外一個表的每一條記錄連接(笛卡爾積),結果是字段數等于原來字段數之和,記錄數等于之前各個表記錄數之乘積。

-- 實驗表結構create table student(id int,name varchar(15),gender varchar(15),cid int);create table class(cid int,cname varchar(15));drop table student,class;-- 實驗表數據:insert into student values(1,'lilei','male',1),(2,'hanmeimei','male',2),(3,'jack','male',1),(4,'alice','female',4); --這里特意創建了一個class中沒有的4insert into class values(1,'linux'),(2,'python'),(3,'java'),(5,'html5');--這里特意創建了一個student中沒有的5select * from student;select * from class;

mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解

內連接: 從左表中取出每一條記錄,去右表中與所有的記錄進行匹配,保留匹配成功的記錄,并將兩份記錄拼接。 語法:select 字段列表 from 左表 [inner] join 右表 on 左表.字段 = 右表.字段; 不使用on條件的時候,結果與交叉連接相同

-- 內連接-- select * from student inner join class; --結果與交叉連接相同select * from student join class on student.cid = class.cid;select * from student inner join class on student.cid = class.cid; mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解外連接: 與內連接不同的是主表記錄不管匹配符不符合都保留,方式有左外連接、右外連接,左外連接是保留左表,右外連接是保留右表 語法: 左外連接:select 字段列表 from 左表 left join 右表 on 左表.字段 = 右表.字段; 右外連接:select 字段列表 from 左表 right join 右表 on 左表.字段 = 右表.字段;

select * from student left join class on student.cid = class.cid; mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解

select * from student right join class on student.cid = class.cid; mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解 自然連接: 自動匹配連接條件,系統以字段名字作為匹配模式(同名字段就作為條件,多個同名字段就都作為條件) 自然內連接:類似內連接,但不提供連接條件。 自然外連接:類似外連接,但不提供連接條件。 語法: 自然內連接:select 字段列表 from 表名 natural join 表名; 自然外連接:select 字段列表 from 表名 natural leftright join 表名;

select * from student natural join class;mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解

select * from student natural left join class;mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解 交叉連接: 將每一條記錄與另外一個表的每一條記錄連接 語法: select 字段列表 from 表名 cross join 表名;select 字段列表 from 表名 ,表名;

select * from student cross join class;select * from student,class; mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解補充: 在多個表中,為了區分每個表,以及簡便使用,可以使用表別名。

select * from student inner join class on student.cid = class.cid;-- 原本結果select id,name,gender,c.cid,cname from student as s inner join class as c on s.cid = c.cid;-- 使用表別名 可以多重連接。 外連接可以模擬自然連接,只需要將連接條件on 左表.字段 = 右表.字段變成'using 字段名'即可。 聯合查詢: 聯合查詢是將多個查詢結果在記錄上進行拼接。(相當于將其他表的查詢記錄結果連接到第一個表的后面)【因為是拼接,所以多個查詢結果的字段數必須相同】【拼接不在意數據類型,比如第一個表的第一個字段是int,但后面的表中的varchar依然可以拼接到第一列中】 語法:select語句 union select語句…;

select name,gender from studentunion select * from class;-- 因為class就兩個字段,所以第一個只選出兩個字段 mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解補充: union可以有選項,加在union 后面,all選項是不對相同去重,distinct是去重。 聯合查詢一般用來處理同一表中以不同方法顯示不同數據。(比如,想將學生各科成績表中的兩科(這里假設為python 跟linux)同時查詢出來) union和order by同時使用報錯時 如果你想針對聯合查詢中的某個查詢結果排序,需要將這個select語句用括號括起來。【另外,由于聯合查詢的拼接機制,需要在order by 后面加上limit子句才行,limit的數量可以是一個很大的值。】如果是針對最終的聯合查詢結果,就在最后一個select語句中使用order by 【建議給最后一個字段加上括號,再加ordery by,使用情況是有同名字段】 子查詢: 子查詢是嵌套在查詢語句中的查詢。 子查詢按照出現的位置可以分為三類: from子查詢:子查詢跟在from之后的;一般用在“先查出二維表,再處理”的情況。 比如:

-- 這是一個無意義的例子。僅為舉例使用select cid,cname from (select * from class where cname='python') as c; where子查詢:子查詢跟在where條件中;一般用在“先查詢出指定條件再查詢”的情況 比如:

select * from student where cid=(select cid from class where cname='python'); exist子查詢:子查詢在exist語句里面;一般用作“存在才做”的情況 比如:

-- 這是一個如果學生沒有選擇cid=1的課,那么不輸出對應課程信息的例子select * from class where exists(select * from student where cid=1) and cid=1; 事實上,有些人認為union之后跟著的也是子查詢,不過這里不把這些當作子查詢,只把上面幾個與“查詢”非常緊密相關的當作子查詢。 補充: 事實上,還可以根據結果來分類子查詢: 標量子查詢,子查詢得到的結果是一行一列,情況一般發生于where子查詢只查詢出一行一列的情況。列子查詢,子查詢得到的結果是一列多行,情況一般發生于where子查詢查詢出一列多行的情況。行子查詢,子查詢得到的結果是多列一行(或者多行多列) ,情況一般發生在where子查詢查詢出多列一行的情況。表子查詢,子查詢得到的結果是多行多列 ,情況一般發生在from子查詢中 where子查詢中有時候還使用一些其他關鍵字,如any,all,some,但對=來說,=基本可以實現他們的功能了。

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數據庫鎖相關技巧匯總》及《MySQL常用函數大匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 在线观看视频国产 | 日本一区二区三区在线 视频 | 欧洲欧美成人免费大片 | 成人免费a视频 | 成人中文字幕在线 | 美国成人免费视频 | 67194在线午夜亚洲 | 台湾黄三级高清在线观看播放 | 一区二区三区免费视频 www | 欧美国产在线观看 | 熟女毛片 | 欧美一级特黄特黄做受 | 有码一区 | 久久久9999久久精品小说 | 337p粉嫩大胆噜噜噜鲁 | 成人午夜两性视频免费看 | 成人在线网站 | 久久精品国产免费高清 | 国产精品视频一区二区猎奇 | 日韩在线不卡一区在线观看 | 亚洲小视频在线播放 | 国产亚洲欧美成人久久片 | 免费人成年短视频在线观看免费网站 | 精品一区二区三区在线视频观看 | 最新亚洲人成网站在线影院 | 97视频免费观看 | 中文字幕日韩精品亚洲七区 | 成人在线免费小视频 | 男人操美女逼视频 | 波多野结衣中文一区二区免费 | 成人午夜毛片 | 国产亚洲精品免费 | 国产国产人免费视频成69堂 | 狠狠色丁香婷婷综合 | 日韩美女视频一区 | 手机在线毛片免费播放 | 欧美极品欧美精品欧美视频 | 在线观看国产精品日本不卡网 | 成年人网站黄 | 国产一级久久免费特黄 | 一级毛片免费观看不卡的 |