mysql的多表查询详细讲解
首先,为了方便说明问题,创建两个表emp(雇员信息)和dept(雇员部门信息),其数据如下:
在之前的文章中,我们分享了单表查询的方法,但是在实际应用中,我们要查的数据很可能不在同一个表中,而是来自于不同的表。多表查询如果不加任何条件,得到的结果称为笛卡尔积。 例如,查找雇员名、雇员工资以及部门所在的名字。
可以发现,结果是这样的,从第一个表中选出第一条记录,和第二个表中的所有所有记录进行组合,然后再从第一个表中取出第二条记录,和第二张表的所有记录进行组合,这样的结果是没有实际意义的。我们需要的是emp.deptno = dept.deptno字段的记录。
自连接
自连接是指在同一张表连接查询
显示员工FORD的上级领导的名字
子查询
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。
单行子查询:子查询的查询结果只有一行
显示和SMITH同一部门的员工
多行子查询(in ,all, any):返回多条记录的子查询
查询和10好部门的工作相同的官员的名字、工作、工资、部门号,但是不包括10号自己的信息
显示工资比部门编号为30的所有员工的工资高的员工的姓名、工资和部门号
显示工资比部门编号为30的任意员工的工资高的员工的姓名、工资和部门号
多列子查询:查询返回多个列数据的子查询语句
查询和SMITH的部门和岗位完全相同的雇员,不含SMITH本人
from子句中使用子查询
显示高于自己部门的平均工资的员工信息
查找每个部门工资最高的人的ename, job, sal
显示每个部门的信息(部门名、编号、地址)和人员数量
这里有两种方法可以使用,但是经验证,当数据非常多的时候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的人
2. union all 与union类似,但是不会自动去重
例如:与or类似
外键
外键定义主表和从表的关系,外键约束主要是定义在从表上,主表必须是有主键或者唯一键。当定义外键后,要求外键列数据必须在主表列存在或者为NULL。
例如:创建一个主表class,从表stu
由上图,我们可以知道主键不能为null,但是外键可以为null,同时不能存在外键有的数据而主表中不存在。
更多相关问题请访问PHP中文网:mysql视频教程
Atas ialah kandungan terperinci mysql的多表查询详细讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





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 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

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,

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? 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

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;

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.

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
