Rumah  >  Artikel  >  pangkalan data  >  Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

青灯夜游
青灯夜游ke hadapan
2022-02-21 10:55:225644semak imbas

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.

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

Kata kunci UNION dalam SQL akan memaparkan keputusan berbilang syarat pertanyaan.

UNION

Maksud Bahasa Cina bagi UNION ialah kesatuan, iaitu, menggabungkan hasil dua atau lebih pernyataan SELECT. Petua penggunaan adalah seperti berikut:

  • Setiap pernyataan SELECT di dalam UNION mesti mempunyai bilangan lajur yang sama.
  • Lajur mesti mempunyai jenis data yang serupa.
  • Susunan lajur dalam setiap pernyataan SELECT mestilah sama.

Bilangan lajur yang sama

Seperti yang ditunjukkan di bawah, gunakan data yang diperkenalkan dalam bab sebelumnya sebagai data demonstrasi

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

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.

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

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`

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

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`

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

Jenis data

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`

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

Tertib lajur

  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`

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

Perbezaan antara UNION dan UNION ALL

  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');

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

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:

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

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:

Pembelajaran pengenalan SQL: Analisis ringkas tentang penggunaan kata kunci UNION

Anda boleh melihat bahawa persatuan UNION mengalih keluar pendua, manakala UNION ALL menanyakan semua nilai tanpa mengalih keluar data.

Kesimpulan

  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!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam