久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL5.7數據庫中表連接、子查詢、外鍵的示例分析

152次閱讀
沒有評論

共計 2748 個字符,預計需要花費 7 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下 MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

文章目錄

表連接

自關聯

外鍵

內連接

左連接

右連接

子查詢

外鍵介紹

創建表時設置外鍵約束

表連接

當查詢結果的列來源于多張表時,需要將多張表連接成一個大的數據集,再選擇合適的列返回 mysql

這時需要表進行連接

內連接

內連接僅選出兩張表中互相匹配的記錄

select * from  表 1  inner join  表 2  on  表 1. 列  =  表 2. 列 --  顯示學生的所有信息,但只顯示班級名稱 select s.*, c.name from students s inner join classes c on s.id=c.id;--  將班級名稱顯示在第一列 select c.name, s.* from students s inner join classes c on s.id=c.id;--  查詢   有能夠對應班級的學生以及班級信息,按照班級進行排序 select c.name, s.* from students s inner join classes c on s.cls_id = c.id order by c.name asc;--  當同一個班級時,按照學生的 id 進行從小到大排序 select c.name, s.* from students s inner join classes c on s.cls_id = c.id order by c.name asc, s.id asc;

MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析
MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析
在這里插入圖片描述

左連接

查詢的結果為兩個表匹配到的數據,左表持有的數據,對于右表中不存的數據使用 null 填充

select * from  表 1  left join  表 2  on  表 1. 列 = 表 2. 列 -- students 表左連接 classes 表   并查看班級為 null 的數據 select * from students s left join classes c on s.cls_id=c.id having s.cls_id is null;--  左連接   并且   查詢  s.cls_id=1  并且  s.name= small-j   的數據 select * from students s left join classes c on s.cls_id=c.id having s.cls_id=1 and s.name= small-j

MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析

右連接

查詢結果為兩個表匹配到的數據,右表持有的數據,對于左表中不存在的數據使用 null 填充。

select * from  表 1  right join  表 2  on  表 1. 列  =  表 2. 列;

子查詢

某些情況下,當進行查詢的時候,需要的條件是另外一個 select 語句的結果,這個時候,就要使用到子查詢

select * from  表  where  表(子查詢語句)--  查詢出 students 中身高最高的男生。顯示名字和身高 select s.name, s.high from students s where high=(select max(high) from students) and gender= 男 --  查詢出高于平均身高的學生信息 select * from students where high (select avg(high) from students);--  查詢學生班級號 cls_id 能夠對應的學生信息 select * from students where cls_id in (select id from students);--  查詢最大年齡的女生的 idselect * from students where id=(select max(id) from students where gender= 女 ) and gender= 女

在這里插入圖片描述

自關聯

簡單理解為自己與自己進行連接查詢

--  查詢廣東省下的所有廣東市 select * from cities c inner join provinces p on c.provinceid=p.provinceid having p.province= 廣東省 --  查詢廣東省下的所有廣東市 --  自關聯 select * from areas a inner join areas b on a.id=b.pid having a.name= 廣東

MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析
MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析

外鍵外鍵介紹

MySQL 的外鍵 (foreing key) 是表的一個特殊字段。對于兩個具有關聯關系的表而言,相關聯字段的主鍵所在表就是主表(父表),外鍵所在的表是從表(子表)。

注意:主鍵不能包含空值,但允許在外鍵中出現空值,也就是說,只要外鍵的每個非空值出現在指定的主鍵中,這個外鍵的內容就是正確的。

創建表時設置外鍵約束

當創建外鍵的時候,必須先刪除從表才能刪除主表。

主表需存在時創建從表。

從表的外鍵關聯必須是主表的主鍵,并且主鍵與外鍵的類型必須保持一致。

[constraint  外鍵名] foreign key (字段名  [, 字段名 2, ...]) references  主表名   主鍵列 1  [,  主鍵列 2, ...]
--  創建班級表 create table classes( id int(4) not null primary key,
 name varchar(36));--  創建學生表 create table student( sid int(4) not null primary key,
 sname varchar(30),
 cid int(4) not null);--  創建直接含有外鍵關系的學生表 create table student(  sid int(4) not null primary key,
  sname varchar(30),
  cid int(4) not null,
  constraint pk_id foreign key (cid) references classes(id));--  通過 alter 來添加外鍵關系 alter table student add constraint pk_id foreign key (cid) references classes(id);--  刪除外鍵約束 alter table student drop foreign key pk_id;

MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析

MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析

看完了這篇文章,相信你對“MySQL5.7 數據庫中表連接、子查詢、外鍵的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計2748字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 乌兰县| 开远市| 岳池县| 广安市| 晋中市| 呼和浩特市| 韩城市| 兴山县| 齐河县| 台南市| 恩施市| 中卫市| 五指山市| 托克托县| 中西区| 莱芜市| 凭祥市| 花莲县| 台湾省| 万载县| 溧水县| 哈尔滨市| 菏泽市| 灵璧县| 东兴市| 邛崃市| 庄浪县| 错那县| 女性| 大化| 汉源县| 新蔡县| 盐城市| 顺平县| 马龙县| 马鞍山市| 西宁市| 陆丰市| 大同市| 米易县| 丽水市|