Rumah pangkalan data tutorial mysql mysql的多表查询详细讲解

mysql的多表查询详细讲解

Aug 23, 2019 pm 03:48 PM
Pertanyaan berbilang jadual

首先,为了方便说明问题,创建两个表emp(雇员信息)和dept(雇员部门信息),其数据如下:

20180617221923394.png在之前的文章中,我们分享了单表查询的方法,但是在实际应用中,我们要查的数据很可能不在同一个表中,而是来自于不同的表。多表查询如果不加任何条件,得到的结果称为笛卡尔积。 例如,查找雇员名、雇员工资以及部门所在的名字。 

2018061722200051.png

可以发现,结果是这样的,从第一个表中选出第一条记录,和第二个表中的所有所有记录进行组合,然后再从第一个表中取出第二条记录,和第二张表的所有记录进行组合,这样的结果是没有实际意义的。我们需要的是emp.deptno = dept.deptno字段的记录。 

20180617222017362.png

自连接

自连接是指在同一张表连接查询

显示员工FORD的上级领导的名字 

20180617222734599.png

子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。

单行子查询:子查询的查询结果只有一行

显示和SMITH同一部门的员工 

20180617223344582.png

多行子查询(in ,all, any):返回多条记录的子查询

查询和10好部门的工作相同的官员的名字、工作、工资、部门号,但是不包括10号自己的信息 

20180617224416375.png

显示工资比部门编号为30的所有员工的工资高的员工的姓名、工资和部门号 

20180617224738762.png

显示工资比部门编号为30的任意员工的工资高的员工的姓名、工资和部门号 

201806172249224.png

多列子查询:查询返回多个列数据的子查询语句

查询和SMITH的部门和岗位完全相同的雇员,不含SMITH本人 

20180617230327343.png

from子句中使用子查询

显示高于自己部门的平均工资的员工信息 

20180617231541142.png查找每个部门工资最高的人的ename, job, sal 

20180617231535796.png显示每个部门的信息(部门名、编号、地址)和人员数量

20180617232454580.png

这里有两种方法可以使用,但是经验证,当数据非常多的时候from子查询的效率是高于多表查询的。

删除表中的重复记录

已知一个表tt中有重复的数据

创建一张空表tmp_tt,空表的结构与表tt的结构相同;create table tmp_tt like tt;

将tt表进行distinct,将数据导入空表中;insert into tmp_tt select distinct * from tt;

删除原表ttdrop table tt;

将tmp_tt改名为ttalter table tmp_tt rename tt;

合并查询

在实际应用中,为了合并多个select的执行结果,可以使用union,union all集合操作符

1、union操作符用于取得两个结果的并集,并再自动去掉重复行 ,查找工资大于2500和职位Manger的人 

20180617233556266.png

2. union all 与union类似,但是不会自动去重 
例如:与or类似

20180617234055522.png

外键

外键定义主表和从表的关系,外键约束主要是定义在从表上,主表必须是有主键或者唯一键。当定义外键后,要求外键列数据必须在主表列存在或者为NULL。 
例如:创建一个主表class,从表stu 

2018061723530193.png

20180617235528589.png

由上图,我们可以知道主键不能为null,但是外键可以为null,同时不能存在外键有的数据而主表中不存在。

更多相关问题请访问PHP中文网:mysql视频教程

Atas ialah kandungan terperinci mysql的多表查询详细讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kemahiran pertanyaan berkaitan pelbagai jadual dalam PHP Kemahiran pertanyaan berkaitan pelbagai jadual dalam PHP May 24, 2023 am 10:01 AM

Kemahiran pertanyaan berkaitan berbilang jadual dalam pertanyaan Berkaitan PHP adalah bahagian penting dalam pertanyaan pangkalan data, terutamanya apabila anda perlu memaparkan data dalam berbilang jadual pangkalan data berkaitan. Dalam aplikasi PHP, pertanyaan berkaitan pelbagai jadual sering digunakan apabila menggunakan pangkalan data seperti MySQL. Maksud perkaitan berbilang jadual ialah membandingkan data dalam satu jadual dengan data dalam jadual lain atau berbilang, dan menyambungkan baris tersebut yang memenuhi keperluan dalam hasilnya. Apabila melakukan pertanyaan korelasi berbilang jadual, anda perlu mempertimbangkan hubungan antara jadual dan menggunakan kaedah korelasi yang sesuai. Berikut memperkenalkan beberapa jenis

Kuasai pertanyaan berbilang jadual MyBatis: panduan praktikal untuk mengoptimumkan kecekapan pemprosesan data Kuasai pertanyaan berbilang jadual MyBatis: panduan praktikal untuk mengoptimumkan kecekapan pemprosesan data Feb 19, 2024 pm 06:36 PM

Kuasai pertanyaan berbilang jadual MyBatis secara menyeluruh: panduan praktikal untuk meningkatkan kecekapan pemprosesan data Pengenalan: Hari ini, dalam pembangunan perisian, kecekapan pemprosesan data merupakan pertimbangan penting. Untuk pemprosesan data yang melibatkan pertanyaan berbilang jadual, MyBatis ialah alat yang berkuasa. Artikel ini akan menyelidiki cara untuk menguasai sepenuhnya pertanyaan berbilang jadual MyBatis dan meningkatkan kecekapan pemprosesan data. Artikel akan menunjukkan melalui contoh kod khusus untuk membantu pembaca memahami dan menggunakan dengan lebih baik. 1. Konfigurasikan persekitaran MyBatis Pertama, kita perlu mengkonfigurasi My

Pengoptimuman pertanyaan berbilang jadual MyBatis: kaedah dan strategi untuk meningkatkan prestasi SQL Pengoptimuman pertanyaan berbilang jadual MyBatis: kaedah dan strategi untuk meningkatkan prestasi SQL Feb 18, 2024 pm 10:24 PM

Analisis mendalam pertanyaan berbilang jadual MyBatis: petua dan strategi untuk mengoptimumkan prestasi SQL Ringkasan: MyBatis ialah rangka kerja lapisan kegigihan yang biasa digunakan yang boleh membantu kami mengendalikan pangkalan data dengan lebih mudah. Dalam pembangunan sebenar, pertanyaan berbilang jadual adalah keperluan yang sangat biasa, tetapi melakukan pertanyaan berbilang jadual dengan cara yang tidak sesuai boleh menyebabkan kemerosotan prestasi. Artikel ini akan memberi tumpuan kepada cara menggunakan MyBatis untuk pertanyaan berbilang jadual, dan memberikan beberapa petua dan strategi untuk mengoptimumkan prestasi SQL. Pengenalan MyBatis ialah rangka kerja lapisan kegigihan Java yang popular,

Menganalisis masalah biasa dalam pertanyaan persatuan berbilang jadual MyBatis: Selesaikan keraguan dalam pertanyaan sambungan data Menganalisis masalah biasa dalam pertanyaan persatuan berbilang jadual MyBatis: Selesaikan keraguan dalam pertanyaan sambungan data Feb 18, 2024 am 10:41 AM

Analisis masalah biasa dalam pertanyaan berbilang jadual MyBatis: Untuk menyelesaikan kekeliruan dalam pertanyaan korelasi data, contoh kod khusus diperlukan Pengenalan: Dalam pembangunan aplikasi pangkalan data, pertanyaan korelasi antara jadual data adalah keperluan yang sangat biasa. Untuk rangka kerja MyBatis, pertanyaan berbilang jadual adalah fungsi yang sangat penting. Walau bagaimanapun, disebabkan oleh fleksibiliti dan keupayaan SQL dinamik MyBatis yang berkuasa, kadangkala pembangun mungkin menghadapi kekeliruan semasa melakukan pertanyaan berbilang jadual. Artikel ini akan menerangkan beberapa masalah biasa dan menyediakan contoh kod khusus untuk menyelesaikannya.

Bagaimana untuk mengoptimumkan pertanyaan berbilang jadual dalam PHP dan MySQL melalui indeks? Bagaimana untuk mengoptimumkan pertanyaan berbilang jadual dalam PHP dan MySQL melalui indeks? Oct 15, 2023 pm 05:40 PM

Bagaimana untuk mengoptimumkan pertanyaan berbilang jadual dalam PHP dan MySQL melalui indeks? Apabila membangunkan aplikasi web, interaksi dengan pangkalan data sering terlibat Terutamanya untuk pangkalan data hubungan, pertanyaan berbilang jadual adalah operasi yang sangat biasa. Walau bagaimanapun, apabila jumlah data terlalu besar dan kerumitan pertanyaan meningkat, prestasi pertanyaan berbilang jadual mungkin terjejas pada tahap tertentu. Untuk meningkatkan kecekapan pertanyaan, kami boleh membuat pelarasan dengan mengoptimumkan indeks. Indeks ialah struktur data yang digunakan dalam pangkalan data untuk meningkatkan prestasi pertanyaan Ia boleh mempercepatkan carian data. dalam P

Pertanyaan berbilang jadual MySql: Cara melaksanakan pertanyaan data berbilang jadual yang cekap Pertanyaan berbilang jadual MySql: Cara melaksanakan pertanyaan data berbilang jadual yang cekap Jun 15, 2023 pm 02:37 PM

Dengan pembangunan Internet dan pengembangan berterusan bidang aplikasi, peningkatan jumlah data telah menjadi kebiasaan, dan pertanyaan data yang cekap adalah amat penting. Apabila menggunakan pangkalan data MySQL, pertanyaan berbilang jadual ialah kaedah pertanyaan data yang sangat biasa. Oleh itu, cara melaksanakan pertanyaan data berbilang jadual yang cekap telah menjadi kemahiran yang mesti dikuasai oleh pengguna pangkalan data MySQL. Artikel ini akan memperkenalkan cara melaksanakan pertanyaan data berbilang jadual yang cekap dari aspek berikut: 1. Konsep asas dan sintaks pertanyaan berbilang jadual 2. Kemahiran pengoptimuman pertanyaan berbilang jadual;

Paparan MySql: Bagaimana untuk menanyakan data dengan cekap daripada berbilang jadual Paparan MySql: Bagaimana untuk menanyakan data dengan cekap daripada berbilang jadual Jun 15, 2023 pm 10:06 PM

MySql ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas yang digunakan dalam pelbagai aplikasi dengan saiz dan jenis yang berbeza, terutamanya dalam aplikasi web, penyelesaian perusahaan dan alat analisis data. Dalam aplikasi ini, selalunya perlu untuk menanyakan data daripada berbilang jadual Oleh itu, untuk meningkatkan kecekapan pertanyaan dan mengurangkan kerumitan menulis sejumlah besar pernyataan SQL, MySql memperkenalkan konsep pandangan. Paparan ialah jadual maya yang tidak benar-benar wujud dalam pangkalan data Sebaliknya, ia terdiri daripada satu atau lebih pernyataan SELECT.

Amalan pengoptimuman pertanyaan berbilang pangkalan data dan berbilang jadual dalam pengaturcaraan PHP Amalan pengoptimuman pertanyaan berbilang pangkalan data dan berbilang jadual dalam pengaturcaraan PHP Jun 22, 2023 pm 02:48 PM

PHP ialah bahasa pengaturcaraan Web yang biasa digunakan Aplikasinya yang luas bermakna kita sering perlu mengendalikan berbilang pangkalan data dan jadual dalam kod PHP. Operasi pertanyaan berbilang pangkalan data dan berbilang jadual adalah kerap dan memakan masa, jadi mengoptimumkan kecekapan pertanyaan telah menjadi satu cabaran yang mesti dihadapi dalam pengaturcaraan PHP. Dalam artikel ini, kami akan berkongsi beberapa kaedah praktikal untuk mengoptimumkan pertanyaan berbilang pangkalan data dan berbilang jadual. 1. Gunakan kaedah pertanyaan yang betul Pemilihan kaedah pertanyaan mempunyai kesan penting ke atas prestasi pertanyaan berbilang pangkalan data dan berbilang jadual. Apabila melakukan pertanyaan berbilang pangkalan data dan berbilang jadual, terdapat tiga kaedah pertanyaan yang biasa digunakan: JOIN queryJ

See all articles