Cet article vous apporte des connaissances pertinentes sur SQL server. En utilisant SQL, vous pouvez spécifier des alias pour les noms de tables ou de colonnes. Ce qui suit présente les points clés de l'alias de tables avec des requêtes SQL (impliquant des requêtes imbriquées). Informations connexes, j'espère. cela sera utile à tout le monde.
Étude recommandée : "Tutoriel SQL"
Mais notez que si la base de données que vous utilisez est Oracle, vous ne pouvez utiliser que des espaces car ce n'est pas conforme. avec la syntaxe d'Oracle.
Donnez-moi un exemple
select * from student s where s.id = '10';
Utilisation d'alias dans des requêtes simples ne nécessite généralement pas d'attention particulière et nécessite moins d'opérations
Résumé de la question : Il existe trois tables, étudiant (sno, sname, ssex, anniversaire, classe)
score (sno, cno, diplôme)
cours (cno, cname, tno)
Interroger le score du cours au choix "3-105" qui est supérieur à " 109 « Dossiers de toutes les notes des élèves pour les élèves portant le numéro ».
Réponse :
select * from (select s.sno,s.sname,s.ssex,s.sbirthday,s.class, sc.degree,c.cno,c.cname,c.tno from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss where ss.cno = '3-105' and ss.degree >( select degree from score where sno = '109' and cno = '3-105');
Comme vous pouvez le constater, afin de faciliter le fonctionnement, nous avons redéfini une table ss. Cette table est une grande table qui contient également le contenu des trois tables ci-dessus. Mais faites attention aux points suivants, sinon il est facile de faire des erreurs
Lorsque vous souhaitez afficher toutes les valeurs du tableau nouvellement défini, vous ne pouvez pas utiliser *
Par exemple, si vous modifiez le réponse à
select * from (select * from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss where ss.cno = '3-105' and ss.degree >( select degree from score where sno = '109' and cno = '3-105');
La ligne de commande montrera que les colonnes ne sont pas clairement définies, car nous devons maintenant spécifier les colonnes comme une nouvelle table, mais les noms de colonnes de certaines colonnes sont répétés, nous devons en spécifier une.
La table nouvellement créée ne peut pas être utilisée dans l'instruction de requête imbriquée, car le code dans la requête imbriquée est une section d'exécution complète et sera exécuté depuis le début ? Quoi qu'il en soit, une erreur sera signalée lors de son appel
select * from (select * from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss where ss.cno = '3-105' and ss.degree >( select degree from ss where sno = '109' and cno = '3-105');
La sous-requête dans où dans ce SQL utilise la nouvelle table ss, et la compilation montrera qu'il n'y a aucune erreur dans la table ou la vue.
Apprentissage recommandé : "Tutoriel SQL"
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!