Maison >base de données >SQL >Apprentissage d'introduction à SQL : une brève analyse de l'utilisation du mot-clé UNION

Apprentissage d'introduction à SQL : une brève analyse de l'utilisation du mot-clé UNION

青灯夜游
青灯夜游avant
2022-02-21 10:55:225700parcourir

Dans notre processus de développement, nous utilisons souvent plusieurs résultats de requête pour les afficher directement. Alors, comment devrions-nous interroger ? Cet article concerne l'apprentissage de SQL. Jetons un coup d'œil au mot-clé UNION dans SQL et comment l'utiliser. J'espère qu'il sera utile à tout le monde !

Apprentissage d'introduction à SQL : une brève analyse de l'utilisation du mot-clé UNION

Le mot-clé UNION dans SQL affichera les résultats de plusieurs conditions de requête.

UNION

  UNION signifie union en chinois, c'est-à-dire fusionner les résultats de deux ou plusieurs instructions SELECT. Les conseils d'utilisation sont les suivants :

  • Chaque instruction SELECT à l'intérieur de UNION doit avoir le même nombre de colonnes.
  • Les colonnes doivent avoir des types de données similaires.
  • L'ordre des colonnes dans chaque instruction SELECT doit être le même.

Le même nombre de colonnes

Comme indiqué ci-dessous, utilisez les données introduites dans le chapitre précédent comme données de démonstration

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

Créez des tableaux séparéments_user 和表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;

Les données de test sont les suivantes :

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

Chaque instruction SELECT à l'intérieur de UNION doit avoir le même nombre de colonnes : commencez par interroger SQL

SELECT * FROM `s_user` UNION SELECT * FROM `s_user_1`

avec les mêmes colonnes pour interroger toutes les colonnes. Vous pouvez voir que les résultats de l'exécution sont les suivants.

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

Si la première requête concerne toutes les colonnes et la deuxième requête concerne trois champs, quel est le résultat de la requête ? Exécutez maintenant le SQL suivant :

Utilisation incorrecte

SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

Erreur message : L'instruction SELECT utilisée pour interroger différents nombres de colonnes

Utilisation correcte

SELECT userid,name,pass_word  FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

type de données

Nous avons vu plus haut que le nombre de colonnes dans plusieurs requêtes doit être le même, alors le nombre de colonnes interrogé S'ils sont identiques mais que les types de données des champs de requête sont différents, peuvent-ils être traités normalement ? Ensuite, remplacez pass_word dans la requête s_user par create_time pour interroger. Vous pouvez le voir après avoir interrogé. Dans les requêtes SQL, le type de données de la colonne n'a pas d'importance. Bien entendu, dans la pratique, ils ne seront pas définis selon des types différents.

SELECT userid,name,create_time  FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

Ordre des colonnes

 Lorsque vous utilisez le mot-clé UNION pour interroger, est-ce lié à l'ordre des colonnes, comme vu ci-dessus, cela peut être lié à l'ordre des colonnes, ou cela peut ne pas être lié, alors testons-le. Vous pouvez voir que les résultats de l'exécution n'ont rien à voir avec l'ordre des colonnes. Dans la réalité, plusieurs requêtes sont fusionnées, l'ordre des colonnes que nous définissons dans le projet doit donc être cohérent.

SELECT create_time,userid,name  FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

La différence entre UNION et UNION ALL

  Afin de tester la différence entre UNION et UNION ALL, vous devez ajouter [Xiaobai] dans la table de données s_user_1 et [Xiaobai] dans la table s_user existent tous les deux dans la base de données, et les deux auront quel résultat différent.

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

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

Première exécution :

SELECT user_name,name,pass_word,salt
FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`

Résultat de l'exécution :

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

Exécuter à nouveau

SELECT user_name,name,pass_word,salt
FROM `s_user` UNION ALL SELECT user_name,name,pass_word,salt FROM `s_user_1`

Résultat de l'exécution :

Apprentissage dintroduction à SQL : une brève analyse de lutilisation du mot-clé UNION

Vous pouvez voir que les éléments en double sont supprimés pour l'association UNION et La requête UNION ALL affiche Toutes les valeurs, aucun doublon supprimé.

Conclusion

  D'accord, ce qui précède concerne l'utilisation du mot-clé UNION dans SQL. Merci d'avoir lu. J'espère que vous l'aimez. Si cela vous est utile, veuillez l'aimer et l'enregistrer. S'il y a des lacunes, veuillez les commenter et les corriger. A la prochaine fois.

Apprentissage recommandé : Tutoriel vidéo mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer