Maison >base de données >Oracle >Apprentissage Oracle à l'aide d'un mot-clé (exemples détaillés)
Cet article vous apporte des connaissances pertinentes sur Oracle, qui présente principalement les connaissances pertinentes sur le mot-clé using. Vous pouvez utiliser le mot-clé using pour simplifier les requêtes de connexion. J'espère qu'il sera utile à tout le monde.
Tutoriel recommandé : "Tutoriel Oracle"
Au travail, j'ai vu une instruction SQL similaire à la suivante :
select tb.usrnm, tb.typ, tb.oprorder from tb inner join rb1 using (stfaprid) where tb1.jugsumid = #jugsumid# and tb1.blnorg = #blnorg# and isvld = '1' order by tb.typ asc, tb.oprorder asc
La norme sql/92 peut utiliser le mot-clé using pour simplifier la requête de connexion, mais elle est uniquement dans la requête. Le mot-clé using peut être utilisé à des fins de simplification lorsque les deux conditions suivantes sont remplies.
out out out out out out through en utilisant le mot-clé suivant :
select emptno,ename,sal,deptno,dname from emp e inner join dept d using(deptno);
dehors – .
Lorsque vous utilisez le mot-clé using pour simplifier la connexion, vous devez faire attention aux points suivants :
L'instruction ci-dessus est équivalente à l'instruction suivante :
select... from table1 inner join table2 using(column1,column2)
Si plusieurs tables sont récupérés, vous devez utiliser le mot-clé using plusieurs fois pour le préciser, sous la forme suivante :
select... from table1 inner join table2 on table1.column1=table2.column2 and table1.column2=table2.column2;
L'instruction ci-dessus est équivalente à l'instruction suivante :
select... from table1 inner join table2 using(column1) inner join table3 using(column2);
Rethink using
Mais en fait, parfois nous n’avons pas besoin de nous connecter comme ça. Il nous suffit de sélectionner un ou deux de leurs multiples champs avec le même nom et le même type de données. À ce stade, nous devons utiliser le mot-clé using. Ci-dessous un exemple.
Il existe une table appelée ventes et une autre table appelée coûts. Les deux tables ont deux champs, à savoir pro_id et time_id. Nous ne considérerons pas pour le moment la signification réelle des connexions suivantes et ferons uniquement des recherches grammaticales.
Si vous utilisez la connexion naturelle, par défaut, les deux champs seront naturellement connectés entre eux. Les résultats obtenus par
select... from table1,table2,table3 where table1.column1=table2.column1 and table2.column2=table3.column2;
Select * from Sales natural join costs;
et
Select * from Sales join costs on Sales.prod_id = costs.prod_id and sales.time_id = costs.time_id
devraient être les mêmes.
Si nous utilisons des jointures naturelles, il n'y a aucune possibilité de contrôler les conditions de jointure. Oracle joint naturellement deux champs avec le même type de données et le même nom de sa propre initiative. Ensuite, nous utilisons le mot-clé using.
Select * from Sales ,costs Where Sales.pro_id = cost.prod_id and sales.time_id = costs.time_id
Ce qui doit être expliqué ici est :
Si vous utilisez le mot-clé using et que l'élément de liste de résultats de sélection contient le mot-clé spécifié par le mot-clé using, veuillez ne pas utiliser le mot-clé dans l'élément de liste de résultats de sélection. Indiquez dans quel tableau il s'agit. appartient à. Par exemple, si vous utilisez using(prod_id) et que vous souhaitez inclure le champ prod_id dans la liste de résultats, veuillez ne pas l'écrire sous la forme sales.prod_id ou Costs.prod_id mais écrivez-le sous la forme prod_id et n'utilisez pas de champ. alias, utilisez simplement par exemple prod_id comme "numéro de produit".
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!