Jadual Kandungan
Adakah terdapat pernyataan pertanyaan bersarang dalam mysql?
Rumah pangkalan data tutorial mysql Adakah terdapat pernyataan pertanyaan bersarang dalam mysql?

Adakah terdapat pernyataan pertanyaan bersarang dalam mysql?

May 27, 2022 pm 03:12 PM
mysql

Terdapat penyataan pertanyaan bersarang dalam mysql Sintaksnya ialah "PILIH pernyataan WHERE keadaan (PILIH pernyataan)"; lapisan pernyataan pertanyaan, iaitu, gunakan hasil pertanyaan dalam sebagai data yang dirujuk oleh pertanyaan luar.

Adakah terdapat pernyataan pertanyaan bersarang dalam mysql?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.

Adakah terdapat pernyataan pertanyaan bersarang dalam mysql?

Pertanyaan bersarang, juga dipanggil subkueri, ialah kaedah pertanyaan yang sering digunakan dalam kerja sebenar. Subquery sebenarnya ialah lapisan pernyataan pertanyaan yang bersarang selepas di mana dalam pernyataan pertanyaan sedia ada, iaitu, hasil pertanyaan dalam digunakan sebagai jadual data yang dirujuk oleh pertanyaan luar.

Dalam kerja, kita sering menghadapi 4 subkueri, yang mengandungi pengendali perbandingan (>, >=,

# 创建学员信息表 
CREATE TABLE stu_info
(
id INT AUTO_INCREMENT PRIMARY KEY, 
iname VARCHAR(20), 
gender CHAR(1), 
department VARCHAR(10), 
age TINYINT, 
province VARCHAR(10), 
email VARCHAR(50), 
mobilephone CHAR(11)
);
# 向学员表中插入数据 
INSERT INTO stu_info(iname,gender,department,age,province,email,mobilephone) VALUES 
('张勇','男','数学系',23,'河南','sfddf123dd@163.com','13323564321'), 
('王兵','男','数学系',25,'江苏','lss1993@163.com','17823774329'), 
('刘伟','男','计算机系',21,'江苏','qawsed112@126.com','13834892240'), 
('张峰','男','管理系',22,'上海','102945328@qq.com','13923654481'), 
('董敏','女','生物系',22,'浙江','82378339@qq.com','13428439022'), 
('徐晓红','女','计算机系',24,'浙江','xixiaohong@gmail.com','13720097528'), 
('赵伊美','女','数学系',21,'江苏','zhaomeimei@163.com','13417723980'), 
('王建国','男','管理系',24,'浙江','9213228402@qq.com','13768329901'), 
('刘清','女','统计系',23,'安徽','lq1128@gmail.com','17823651180'), 
('赵家和','男','计算机系',28,'山东','dcrzdbjh@163.com','13827811311');

# 创建学员成绩表 
CREATE TABLE stu_score( id INT , Excel TINYINT, Tableau TINYINT, MySQL TINYINT ); 
# 向成绩表中插入数据 
INSERT INTO stu_score VALUES 
(1,87,72,88), 
(3,90,66,72), 
(2,90,70,86), 
(4,88,82,76), 
(8,92,67,80), 
(10,88,82,89), 
(5,79,66,60), 
(7,91,78,90), 
(6,82,79,88), 
(9,85,70,85); 

# 1.查询年龄超过所有学员平均年龄的学员信息 
SELECT * FROM stu_info 
WHERE age >= avg(age); 
#需要注意的是Where后面不能使用聚合函数
#应该修改成
SELECT AVG(age) FROM stu_info;
SELECT * FROM stu_info
WHERE age>=23.3
#二合一 
# 1.查询年龄超过所有学员平均年龄的学员信息 
SELECT * FROM stu_info 
WHERE age >= (SELECT AVG(age) FROM stu_info);

# 2.查询年龄不低于所属系平均年龄的学员信息 
SELECT * FROM stu_info AS s1 
WHERE age>= ( SELECT avg(age) FROM stu_info AS s2 
			  WHERE s1.department = s2.department);
Salin selepas log masuk

Apabila menggunakan pertanyaan bersarang dengan pengendali perbandingan, anda perlu ambil perhatian bahawa subkueri selepas pengendali perbandingan hanya boleh mengembalikan satu hasil.

(2) Pertanyaan bersarang yang mengandungi SEBARANG atau SEMUA kata kunci
Untuk pertanyaan bersarang yang mengandungi operator perbandingan, bahagian bersarang pernyataan pertanyaan hanya boleh mengembalikan satu nilai. Jika subquery mengembalikan berbilang nilai, anda perlu menggunakan SEBARANG atau SEMUA kata kunci. Biasanya, kata kunci ANY / ALL sering digunakan dengan operator perbandingan Berikut adalah hasil gabungan 6 operator perbandingan dan kata kunci ANY / ALL: Adakah terdapat pernyataan pertanyaan bersarang dalam mysql?

# 1.查询非管理系中比管理系任意一个学员年龄小的学员信息 SELECT * FROM stu_info 
WHERE age <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/4324f62c03299e4da154e72d7d28ebb8-1.png" class="lazy" alt="Adakah terdapat pernyataan pertanyaan bersarang dalam mysql?"> Di sini Logik pertanyaan maklumat untuk pelajar bukan pengurusan). <br></p><pre class="brush:php;toolbar:false"># 2.查询非管理系中比管理系所有学员年龄大的学员信息 SELECT * FROM stu_info 
WHERE age > ALL (SELECT DISTINCT age FROM stu_info WHERE department = '管理系') 
      AND department != '管理系';
Salin selepas log masuk

Adakah terdapat pernyataan pertanyaan bersarang dalam mysql? Logik pertanyaan di sini adalah seperti berikut: tanya dahulu umur pelajar di jabatan pengurusan (buang pendua), dan keputusan yang diperolehi ialah 22 dan 24; umur pelajar di jabatan bukan pengurusan Maklumat tentang pelajar yang berumur lebih daripada 22 dan 24 (iaitu, maklumat tentang pelajar bukan pengurusan yang berumur lebih daripada 24 tahun).

(3) Pertanyaan bersarang yang mengandungi kata kunci IN

Apabila syarat pertanyaan melibatkan nilai diskret terhitung tertentu yang diketahui, kami boleh memilih kata kunci IN untuk melengkapkan pengekstrakan data. Kata kunci IN mempunyai dua kegunaan:

    Tulis nilai diskret yang boleh dikira terus dalam senarai nilai
  1. Apabila nilai diskret berdasarkan hasil penapisan jadual lain, anda boleh Gunakan pertanyaan bersarang, iaitu, tulis blok pernyataan pertanyaan jadual lain dalam kurungan selepas kata kunci IN.
# 1.查询数学系和计算机系的学员信息 
SELECT * FROM stu_info WHERE department IN('数学系','计算机系'); 
# 2.查询与张勇、刘伟同一个系的学员信息 
SELECT * FROM stu_info 
WHERE department IN (SELECT department FROM stu_info WHERE iname IN('张勇','刘伟')); 
# 3.查询MySQL成绩大于85分的学员信息 
SELECT * FROM stu_info 
WHERE id IN (SELECT id FROM stu_score WHERE MySQL > 85);
Salin selepas log masuk
Perlu diambil perhatian bahawa apabila menggunakan pertanyaan bersarang kata kunci IN, bahagian bersarang hanya boleh mengembalikan maklumat satu medan (seperti medan jabatan atau medan id di atas). dua atau lebih maklumat medan dikembalikan, ralat sintaks akan berlaku.

(4) Pertanyaan bersarang yang mengandungi kata kunci EXISTS

Peranan kata kunci EXISTS sangat serupa dengan kata kunci IN Perbezaannya ialah pertanyaan bersarang menggunakan kata kunci EXISTS tidak mengembalikan nilai tertentu. Tetapkan, tetapi nilai logik yang memenuhi syarat (iaitu, Betul/Salah). Dengan kata lain, fungsi EXISTS adalah untuk "menentukan sama ada terdapat rekod yang memenuhi syarat-syarat tertentu Jika rekod sedemikian wujud, ia akan mengembalikan Benar (Benar), jika tiada rekod sedemikian, ia akan mengembalikan Salah (Salah." ).

# 查询MySQL成绩大于85分的学员信息 SELECT * FROM stu_info 
WHERE EXISTS(SELECT * FROM stu_score WHERE stu_score.id = stu_info.id AND MySQL > 85);
Salin selepas log masuk
Perlu diambil perhatian bahawa tiada parameter antara pernyataan bersarang WHERE menggunakan kata kunci EXISTS dan kata kunci EXISTS Ini kerana EXISTS hanya memerlukan satu parameter, biasanya satu ditambahkan di sebelah kanan subkueri EXISTS kenyataan. Selain itu, dalam subkueri selepas EXISTS, anda boleh menulis sebarang medan dalam jadual atau asterisk atau pemalar selepas SELECT, kerana subkueri selepas EXISTS hanya mengambil berat sama ada terdapat rekod yang memenuhi syarat. Keputusan yang dikembalikan di bawah adalah sama:

[Tambahan] Mengenai dua kata kunci IN dan EXIST, terdapat juga dua kata kunci lanjutan NOT IN dan NOT EXISTS

# 查询数学系和计算机系之外的学员信息 
# 方法一 
SELECT * FROM stu_info 
WHERE department NOT IN('数学系','计算机系'); 
#方法二 
SELECT * FROM stu_info 
WHERE NOT EXISTS(SELECT * FROM stu_score WHERE department IN('数学系','计算机系') and stu_score.id = stu_info.id); 
# not exists的逻辑比较复杂,需要大家慢慢领会 
# 主要看not exists括号中的sql语句是否有结果,无结果:才会继续执行where条件;有结果:视为 where条件不成立。 
# 当子查询和主查询有关联条件时,相当于从主查询中去掉子查询的数据。
Salin selepas log masuk
Untuk IN dan EXISTS The dua kata kunci boleh digantikan antara satu sama lain dalam kebanyakan kes Perbezaan utama ialah kecekapan penggunaan Dalam keadaan biasa, menggunakan EXISTS adalah lebih cekap daripada IN, tetapi penggunaan khusus bergantung pada keadaan sebenar: IN sesuai untuk jadual luaran yang besar. tetapi jadual dalaman.

Di atas kita hanya mengetahui tentang subquery selepas pernyataan where Selain itu, subquery juga boleh diletakkan selepas pernyataan pilih, dari pernyataan, dan mempunyai pernyataan.

Pembelajaran yang disyorkan:

tutorial video mysql

Atas ialah kandungan terperinci Adakah terdapat pernyataan pertanyaan bersarang dalam 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)

Cara membuka phpmyadmin Cara membuka phpmyadmin Apr 10, 2025 pm 10:51 PM

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

MySQL: Pengenalan kepada pangkalan data paling popular di dunia MySQL: Pengenalan kepada pangkalan data paling popular di dunia Apr 12, 2025 am 12:18 AM

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

Tempat Mysql: Pangkalan Data dan Pengaturcaraan Tempat Mysql: Pangkalan Data dan Pengaturcaraan Apr 13, 2025 am 12:18 AM

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

Mengapa menggunakan mysql? Faedah dan kelebihan Mengapa menggunakan mysql? Faedah dan kelebihan Apr 12, 2025 am 12:17 AM

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Cara menyambung ke pangkalan data Apache Cara menyambung ke pangkalan data Apache Apr 13, 2025 pm 01:03 PM

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Peranan MySQL: Pangkalan Data dalam Aplikasi Web Peranan MySQL: Pangkalan Data dalam Aplikasi Web Apr 17, 2025 am 12:23 AM

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

CentOS memasang MySQL CentOS memasang MySQL Apr 14, 2025 pm 08:09 PM

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.

See all articles