电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

MySQL不就是多表查詢嗎

瀏覽:74日期: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í)要對多張表進(jìn)行相關(guān)操作,相比較于單一的表來說,多張表操作相對復(fù)雜一些,我相信只要認(rèn)真學(xué)習(xí)多表查詢也不再話下!

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

項目開發(fā)中,在進(jìn)行數(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 '手機(jī)號') 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)文章:
主站蜘蛛池模板: 微型气象仪_气象传感器_防爆气象传感器-天合传感器大全 | 筛分机|振动筛分机|气流筛分机|筛分机厂家-新乡市大汉振动机械有限公司 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 礼堂椅厂家|佛山市艺典家具有限公司 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 户外健身路径_小区健身器材_室外健身器材厂家_价格-浩然体育 | 球磨机 选矿球磨机 棒磨机 浮选机 分级机 选矿设备厂家 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | 泵阀展|阀门展|水泵展|流体机械展 -2025上海国际泵管阀展览会flowtech china | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 | 氮化镓芯片-碳化硅二极管 - 华燊泰半导体| 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 万师讲师网-优质讲师培训师供应商,讲师认证,找讲师来万师 | 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | RFID电子标签厂家-上海尼太普电子有限公司 | 暴风影音| 氢氧化钙设备_厂家-淄博工贸有限公司 | 涡轮流量计_LWGY智能气体液体电池供电计量表-金湖凯铭仪表有限公司 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 博莱特空压机|博莱特-阿特拉斯独资空压机品牌核心代理商 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | IP检测-检测您的IP质量 | 圣才学习网-考研考证学习平台,提供万种考研考证电子书、题库、视频课程等考试资料 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 上海阳光泵业制造有限公司 -【官方网站】 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 升降炉_真空气氛炉_管式电阻炉厂家-山东中辰电炉有限公司 |