日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL不就是多表查詢嗎

瀏覽:194日期:2023-08-14 20:18:43
目錄前言一、多表關(guān)系1.概述1.1 一對一1.2 一對多(多對一) 1.3 多對多 二、多表查詢概述三、多表查詢分類3.1 連接查詢3.2 內(nèi)連接語法3.2.1隱式內(nèi)連接3.2.2 顯式內(nèi)連接3.3 內(nèi)連接練習(xí)3.3.1 查詢每一個員工的姓名,及關(guān)聯(lián)的部門的名稱(隱式內(nèi)連接實現(xiàn))3.3.2 查詢每一個員工的姓名,及關(guān)聯(lián)的部門的名稱(顯示內(nèi)連接實現(xiàn))3.4 外連接語法3.5 外連接練習(xí)3.5.1 查詢emp表的所有數(shù)據(jù),和對應(yīng)部門信息(左外連接)3.5.2 查詢dept表的所有數(shù)據(jù),和對應(yīng)的員工信息(右外連接)3.6 自連接語法3.7 聯(lián)合查詢 union,union all四、總結(jié) 前言

嗨!小伙伴們大家好呀,忙碌的一周就要開始!在此之前我們學(xué)習(xí)的MySQL數(shù)據(jù)庫的各種操作都是在一張表之中,今天我們學(xué)習(xí)要對多張表進行相關(guān)操作,相比較于單一的表來說,多張表操作相對復(fù)雜一些,我相信只要認(rèn)真學(xué)習(xí)多表查詢也不再話下!

一、多表關(guān)系1.概述

項目開發(fā)中,在進行數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計時,會根據(jù)業(yè)務(wù)需求及業(yè)務(wù)模塊之間的關(guān)系,分析并設(shè)計表結(jié)構(gòu),由于業(yè)務(wù)之間相互關(guān)聯(lián),所以各個表結(jié)構(gòu)之間也存在著各種聯(lián)系,基本上分為三種:

一對一(多對一)

一對多

多對多

1.1 一對一

案例: 用戶與 用戶詳情的關(guān)系關(guān)系:一對一關(guān)系,多用于單表拆分,將一張表的基礎(chǔ)字段放在一張表中,其他詳情字段放在另一張表中,以提升操作效率

實現(xiàn): 在任意一方加入外鍵,關(guān)聯(lián)另外一方的主鍵,并且設(shè)置外鍵為唯一的(UNIQUE)

1.1.1 創(chuàng)建用戶基本信息

create table tb_user( id int auto_increment comment '主鍵id'primary key, name varchar(10) null comment '姓名', age int null comment '年齡', gender charnull comment '年齡 1男 2女', phone char(11) null comment '手機號') comment '用戶基本信息表';

1.1.2 創(chuàng)建用戶教育信息表

create table tb_user_edu( id int auto_increment comment '主鍵id'primary key, degreevarchar(20) null comment '學(xué)歷', major varchar(50) null comment '專業(yè)', primaryschool varchar(50) null comment '小學(xué)', middleschool varchar(50) null comment '中學(xué)', university varchar(50) null comment '大學(xué)', useridint null comment '用戶id', constraint useridunique (userid), constraint fk_useridforeign key (userid) references tb_user (id)) comment '用戶教育信息表'; 1.2 一對多(多對一)

案例:部門與員工的關(guān)系 關(guān)系:一個部門對應(yīng)多個員工,一個員工對應(yīng)一個部門 實現(xiàn): 在多的一方建立外鍵,指向一的一方的主鍵

1.3 多對多

案例: 學(xué)生與 課程的關(guān)系關(guān)系:一個學(xué)生可以選修多門課程,一門課程也可以供多個學(xué)生選擇實現(xiàn): 建立第三張中間表,中間表至少包含兩個外鍵,分別關(guān)聯(lián)兩方主鍵

建立三張表的代碼如下

1.3.1 創(chuàng)建學(xué)生表且插入數(shù)據(jù)

create table student(id int auto_increment primary key comment'主鍵id',name varchar(10) comment'姓名',novar char(10) comment'學(xué)號') comment'學(xué)生表';insert into student values(null,'宋江','001'),(null,'魯智深','002'),(null,'李逵','001');

1.3.2 創(chuàng)建課程表且插入數(shù)據(jù)

create table course(id int auto_increment primary key comment '主鍵id',name varchar(10) comment'課程名稱') comment'課程表';insert into course values(null,'java'),(null,'js'),(null,'MySQL');

1.3.3 創(chuàng)建課程中間表且插入數(shù)據(jù)

create table student_course( idint auto_increment comment '主鍵'primary key, studentid int not null comment '學(xué)生id', courseid int not null comment '課程id', constraint f_kcourseidforeign key (courseid) references course (id), constraint f_kstudentidforeign key (studentid) references student (id)) comment '學(xué)生課程中間表';

二、多表查詢概述

概述: 指從多張表中查詢數(shù)據(jù),多表查詢就是要消除笛卡爾積。笛卡爾積: 笛卡爾乘積是指在數(shù)學(xué)中,兩個集合A集合和 B集合的所有組合情況。(在多表查詢時,需要消除無效的笛卡爾積)

創(chuàng)建兩張表:部門表、員工表

create table dept( id int auto_increment comment 'id'primary key, name varchar(50) not null comment '部門名稱') comment '部門表'; create table emp( id int auto_increment comment 'id'primary key, name varchar(50) not null comment '姓名', ageint null comment '年齡', jobvarchar(20) null comment '職位', salary int null comment '薪水', entrydate datenull comment '入職時間', mangagerid int null comment '直屬的領(lǐng)導(dǎo)id', dept_id int null comment '部門id', constraint dept_idforeign key (dept_id) references dept (id)) comment '員工表';

兩張表消除笛卡爾積的方法:emp.dept_id=dept.id

三、多表查詢分類3.1 連接查詢

內(nèi)連接:相當(dāng)于查詢A、B交集部分?jǐn)?shù)據(jù)。外連接: 左外連接:查詢左表所有數(shù)據(jù),以及兩張表交集部分?jǐn)?shù)據(jù) 。 右外連接:查詢右表所有數(shù)據(jù),以及兩張表交集部分?jǐn)?shù)據(jù)。

自連接:當(dāng)前表與自身的連接查詢,自連接必須使用表別名。

3.2 內(nèi)連接語法3.2.1隱式內(nèi)連接select 字段名 from 表1,表2 where 條件....;3.2.2 顯式內(nèi)連接select 字段名 from 表1 [inner] join 表2 no 連接條件;

內(nèi)連接是兩張表交集的部分

3.3 內(nèi)連接練習(xí)3.3.1 查詢每一個員工的姓名,及關(guān)聯(lián)的部門的名稱(隱式內(nèi)連接實現(xiàn))select emp.name,dept.name from emp,dept where emp.id=dept.id;3.3.2 查詢每一個員工的姓名,及關(guān)聯(lián)的部門的名稱(顯示內(nèi)連接實現(xiàn))select emp.name,dept.name from emp join dept on emp.id=dept.id;

3.4 外連接語法

左外連接

select 字段列表 from 表1 left [outer] join 表2 on 條件...;

相當(dāng)于查詢表1(左表)的所有數(shù)據(jù) 包含 表1和表2交集部分的數(shù)據(jù)

右外連接

select 字段列表 from 表1 right [outer] join 表2 on 條件...;

相當(dāng)于查詢表2(右表)的所有數(shù)據(jù) 包含 表1和表2交集部分的數(shù)據(jù)

3.5 外連接練習(xí)

連接條件:emp.id=dept.id

3.5.1 查詢emp表的所有數(shù)據(jù),和對應(yīng)部門信息(左外連接)select e.*,d.name from emp e left outer join dept d on d.id=e.id;3.5.2 查詢dept表的所有數(shù)據(jù),和對應(yīng)的員工信息(右外連接)select d.*,e.* from emp e right outer join dept d on d.id=e.id;

右連接可以改為左連接

select d.*,e.* from dept d left outer join emp e on d.id=e.id;

3.6 自連接語法select 字段列表 from 表A 別名A join 表B 別名B on 條件;

子連接查詢,可以是內(nèi)連接查詢,也可以是外連接查詢。

3.7 聯(lián)合查詢 union,union all

對于union查詢,就是把多次查詢的結(jié)果合并起來,形成一個新的查詢結(jié)果集。

union 語法

SELECT 字段列表 FROM 表A ....UNION [ ALL]SELECT 字段列表 FROM 表B ....;

注意:

對于聯(lián)合查詢的多張表的列數(shù)必須保持一致,字段類型也需要保持一致。

union all 會將全部的數(shù)據(jù)直接合并在一起,union 會對合并之后的數(shù)據(jù)去重。

四、總結(jié)

今天的課程就到此結(jié)束了,今天所學(xué)的課程為多表查詢的一部分,在下一期的課程中我們主要學(xué)習(xí)子查詢,期待我們下次再見

到此這篇關(guān)于MySQL不就是多表查詢嗎的文章就介紹到這了,更多相關(guān)mysql多表查詢內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91久久中文| 国产日韩在线观看视频| 精品视频高潮| 国产精品极品国产中出| 日韩欧乱色一区二区三区在线| 日韩午夜电影| 99亚洲视频| 亚洲精品一级二级| 日韩精品欧美激情一区二区| 欧美丰满日韩| 都市激情国产精品| 日韩欧美午夜| 久久九九国产| 日本精品影院| 亚洲婷婷在线| 国产综合欧美| 午夜精品影院| 丝袜美腿亚洲色图| 在线精品国产亚洲| 日本不卡视频在线观看| 国产精品成人**免费视频| 国产剧情在线观看一区| 日韩精品亚洲专区| 国产美女亚洲精品7777| 久久久国产精品入口麻豆| 日韩深夜视频| 欧美日韩一二三四| 亚洲综合日韩| 91成人在线| 激情综合五月| 91精品综合| 国产视频一区欧美| 日韩黄色av| 国产精品日本一区二区不卡视频 | 国产精品亚洲一区二区在线观看| 国产亚洲一区| 国产成人免费av一区二区午夜| 久久午夜影院| 91tv亚洲精品香蕉国产一区| 黄色成人在线网址| 爽爽淫人综合网网站| 日韩精品一区二区三区中文字幕| 日韩av一二三| 精品久久久久中文字幕小说| 99视频精品全部免费在线视频| 亚洲一区观看| 欧美日韩va| 国产精选一区| 午夜av成人| 亚洲免费专区| 欧美激情网址| 免费视频亚洲| 国产日产精品一区二区三区四区的观看方式 | 日产精品一区二区| 欧美+日本+国产+在线a∨观看| 91精品啪在线观看国产18| 日韩中文字幕av电影| 久久wwww| 不卡视频在线| 国产欧美日韩一区二区三区在线| 九九九精品视频| 精品一区毛片| 久久精品99国产精品日本| 在线天堂资源www在线污| 亚洲丝袜啪啪| 精品日韩一区| 美国三级日本三级久久99 | 亚洲天堂免费电影| 视频一区二区国产| 精品久久久网| 中文一区一区三区免费在线观 | 亚洲免费影视| 牛牛精品成人免费视频| 成人av二区| 国产精品videossex久久发布| 亚洲天堂日韩在线| 欧美韩日一区| 日韩精品免费视频一区二区三区| 91欧美国产| 日本不卡一区二区三区| 亚洲视频综合| 国产精品亚洲片在线播放| 五月天久久网站| 国产精品亚洲成在人线| 美女久久一区| 在线亚洲人成| 国产精品亲子伦av一区二区三区| 国产视频亚洲| 欧美精品高清| 免费在线日韩av| 视频一区在线视频| 黑人精品一区| 国产精品日本一区二区三区在线 | 免费黄色成人| 成人在线超碰| 欧美日韩一区自拍| 亚洲欧美久久| 国产91久久精品一区二区| 精品伊人久久| 日韩精品免费视频人成| 欧美女激情福利| 日韩一区二区在线免费| 老司机精品在线| 欧美日本精品| 日精品一区二区三区| 亚洲一区国产一区| 国产在线看片免费视频在线观看| 欧美一级网址| 中文精品电影| 久久xxxx| 9国产精品视频| 久久久久美女| av资源亚洲| 久久只有精品| 久久不见久久见免费视频7| 日本一区二区三区视频在线看 | 国产精品久久乐| 奇米狠狠一区二区三区| 亚洲欧美久久久| 黄色日韩在线| 美女网站久久| 伊人久久大香伊蕉在人线观看热v| 99在线精品免费视频九九视| 好吊视频一区二区三区四区| 狠狠干成人综合网| 午夜电影亚洲| 久久亚洲欧洲| 天堂俺去俺来也www久久婷婷| 亚洲深夜福利在线观看| 日韩欧美四区| 国产亚洲一卡2卡3卡4卡新区| 欧美日韩一区自拍| 日本精品久久| 国产精品毛片| 99综合视频| 亚洲一区有码| 日韩中文字幕| 日本一区免费网站| 亚洲aa在线| 综合干狼人综合首页| 久久www成人_看片免费不卡| 久久理论电影| 久久精品91| 国产精品毛片| 99riav国产精品| 亚洲精品1区| 免费视频久久| 日韩三级视频| 老牛国产精品一区的观看方式| 亚洲精品2区| 成人av二区| 黄色国产精品| 无码日韩精品一区二区免费| 亚洲一区二区三区四区电影| 久久99伊人| 天堂成人国产精品一区| 欧美专区18| 国产精品网在线观看| 国产精品大片| 麻豆免费精品视频| 老司机精品视频在线播放| 老牛国内精品亚洲成av人片| 日韩大片在线播放| 鲁鲁在线中文| 久久久一本精品| 欧美日韩中文一区二区| 欧美日韩高清| 91精品啪在线观看国产爱臀| 国产欧美日本| 久久亚洲黄色| 高清精品久久| 九九精品调教| 日韩欧美久久| 国产探花在线精品一区二区| 国产精品一区高清| 成人国产精品久久| 精品一二三区| 欧美三级精品| 午夜久久免费观看| 视频在线在亚洲| 国产欧美啪啪| 波多野结衣久久精品| 国产精品99免费看| 91欧美精品| 精品72久久久久中文字幕| 日韩激情一区| 久久99伊人| 欧美精品成人| 亚洲欧美日韩一区在线观看| 日韩专区视频网站| 久久精品日韩欧美| 欧美 日韩 国产精品免费观看| 日韩欧美在线精品| 欧美xxxx性| 亚洲www啪成人一区二区| 99pao成人国产永久免费视频 | 精品视频高潮| 99精品在线观看| 免费在线看一区| 国产精品99久久久久久董美香|