真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL5.7數(shù)據(jù)庫中表連接、子查詢、外鍵的示例分析-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設、成都網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務大渡口,十多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108

文章目錄


    • 表連接


    • 自關聯(lián)

    • 外鍵


    • 內(nèi)連接

    • 左連接

    • 右連接

    • 子查詢

    • 外鍵介紹

    • 創(chuàng)建表時設置外鍵約束


表連接

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

  • 這時需要表進行連接

內(nèi)連接
  • 內(nèi)連接僅選出兩張表中互相匹配的記錄

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;-- 查詢 有能夠?qū)嗉壍膶W生以及班級信息,按照班級進行排序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數(shù)據(jù)庫中表連接、子查詢、外鍵的示例分析
MySQL5.7數(shù)據(jù)庫中表連接、子查詢、外鍵的示例分析
在這里插入圖片描述

左連接

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

select * from 表1 left join 表2 on 表1.列=表2.列-- students表左連接classes表 并查看班級為null的數(shù)據(jù)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" 的數(shù)據(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數(shù)據(jù)庫中表連接、子查詢、外鍵的示例分析

右連接

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

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

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

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能夠?qū)膶W生信息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="女";

在這里插入圖片描述

自關聯(lián)

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

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

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

外鍵

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

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

創(chuàng)建表時設置外鍵約束
  • 當創(chuàng)建外鍵的時候,必須先刪除從表才能刪除主表。

  • 主表需存在時創(chuàng)建從表。

  • 從表的外鍵關聯(lián)必須是主表的主鍵,并且主鍵與外鍵的類型必須保持一致。

[constraint 外鍵名] foreign key (字段名 [,字段名2, ...]) references <主表名> 主鍵列1 [, 主鍵列2, ...]
-- 創(chuàng)建班級表create table classes(
    id int(4) not null primary key,
    name varchar(36));-- 創(chuàng)建學生表create table student(
    sid int(4) not null primary key,
    sname varchar(30),
    cid int(4) not null);-- 創(chuàng)建直接含有外鍵關系的學生表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數(shù)據(jù)庫中表連接、子查詢、外鍵的示例分析


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

看完了這篇文章,相信你對“MySQL5.7數(shù)據(jù)庫中表連接、子查詢、外鍵的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


當前題目:MySQL5.7數(shù)據(jù)庫中表連接、子查詢、外鍵的示例分析-創(chuàng)新互聯(lián)
標題路徑:http://weahome.cn/article/pdhgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部