Rumah > Artikel > pangkalan data > Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION
Dalam proses pembangunan kami, kami sering menggunakan berbilang hasil pertanyaan untuk dipaparkan secara terus. Artikel ini adalah tentang mempelajari SQL Mari kita lihat kata kunci UNION dalam SQL dan cara menggunakannya saya harap ia akan membantu semua orang.
Kata kunci UNION dalam SQL akan memaparkan keputusan berbilang syarat pertanyaan.
Maksud Bahasa Cina bagi UNION ialah kesatuan, iaitu, menggabungkan hasil dua atau lebih pernyataan SELECT. Petua penggunaan adalah seperti berikut:
Seperti yang ditunjukkan di bawah, gunakan data yang diperkenalkan dalam bab sebelumnya sebagai data demonstrasi
Buat jadual masing-masing s_user
dan jadual s_user_1
CREATE TABLE `s_user` ( `userid` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `pass_word` varchar(255) DEFAULT NULL, `salt` varchar(255) DEFAULT NULL, `state` varchar(255) DEFAULT NULL, `create_time` datetime DEFAULT NULL, PRIMARY KEY (`userid`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Data ujian adalah seperti berikut:
INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小米', '小米', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小红', '小红', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小黄', '小黄', '123123', '123', '1', '2022-02-10 19:48:43');
Setiap pernyataan SELECT di dalam UNION mesti mempunyai bilangan lajur yang sama: pertama tanya yang mempunyai lajur yang sama SQL
SELECT * FROM `s_user` UNION SELECT * FROM `s_user_1`
menanyakan semua lajur Anda boleh melihat bahawa hasil pelaksanaan adalah seperti berikut.
Jika pertanyaan pertama adalah untuk semua lajur dan pertanyaan kedua adalah untuk tiga medan, apakah hasil pertanyaan Sekarang laksanakan SQL berikut:
Penggunaan salah
SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
Mesej ralat: Pernyataan SELECT digunakan untuk menanyakan lajur berbeza Nombor
Penggunaan yang betul
SELECT userid,name,pass_word FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
Berbilang pertanyaan dilihat di atas Bilangan lajur mesti adalah sama, jadi jika bilangan lajur yang ditanya adalah sama tetapi jenis data medan pertanyaan adalah berbeza, bolehkah ia diproses secara normal? Seterusnya, gantikan kata laluan dalam pertanyaan s_user dengan create_time untuk membuat pertanyaan. Anda boleh melihatnya selepas membuat pertanyaan. Dalam pertanyaan SQL, jenis data lajur adalah tidak relevan. Sudah tentu, dalam perniagaan sebenar, mereka tidak akan ditetapkan kepada jenis yang berbeza.
SELECT userid,name,create_time FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
Apabila menggunakan kata kunci UNION untuk membuat pertanyaan, adakah ia berkaitan dengan susunan lajur seperti yang dilihat di atas, ia mungkin berkaitan dengan susunan lajur. Tertib itu berkaitan, dan ia mungkin tidak berkaitan, jadi mari kita lakukan ujian. Anda dapat melihat bahawa hasil pelaksanaan tidak ada kaitan dengan susunan lajur. Dalam perniagaan sebenar, berbilang pertanyaan digabungkan, jadi susunan lajur yang kami tentukan dalam projek perlu konsisten.
SELECT create_time,userid,name FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
Untuk menguji perbezaan antara UNION dan UNION ALL, anda perlu menambah [Xiaobai] ke jadual data s_user_1, dan bandingkan dengan jadual [Xiaobai] dalam s_user kedua-duanya wujud dalam pangkalan data Apakah hasil yang berbeza antara kedua-duanya?
INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (3, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');
Laksanakan dahulu:
SELECT user_name,name,pass_word,salt FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`
Hasil pelaksanaan:
Laksanakan semula
SELECT user_name,name,pass_word,salt FROM `s_user` UNION ALL SELECT user_name,name,pass_word,salt FROM `s_user_1`
Hasil pelaksanaan:
Anda boleh melihat bahawa persatuan UNION mengalih keluar pendua, manakala UNION ALL menanyakan semua nilai tanpa mengalih keluar data.
Okay, di atas adalah penggunaan kata kunci UNION dalam SQL Terima kasih kerana membacanya. Jika ada kekurangan, sila komen dan betulkan. Jumpa lagi lain kali.
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!