Maison > base de données > Oracle > Apprentissage Oracle à l'aide d'un mot-clé (exemples détaillés)

Apprentissage Oracle à l'aide d'un mot-clé (exemples détaillés)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2022-03-02 18:05:28
avant
2936 Les gens l'ont consulté

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.

Apprentissage Oracle à l'aide d'un mot-clé (exemples détaillés)

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
Copier après la connexion

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.

  • 1. La requête doit être une équijointure.
  • 2. Les colonnes de l'équijointure doivent avoir le même nom et le même type de données.

                                                                  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);
Copier après la connexion

           dehors – .
Lorsque vous utilisez le mot-clé using pour simplifier la connexion, vous devez faire attention aux points suivants :

  • 1. Lorsque vous utilisez la colonne deptno dans la table emp et la table dept pour vous connecter, ni la clause using ni la clause select peut spécifier la colonne deptno Nom de la table ou alias de la table.
  • 2. Si les mêmes colonnes dans les deux tables sont utilisées dans la requête de connexion, vous pouvez alors spécifier plusieurs noms de colonnes dans la clause using

                                                                                                          L'instruction ci-dessus est équivalente à l'instruction suivante :

select... from table1 inner join table2 using(column1,column2)
Copier après la connexion

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;
Copier après la connexion

L'instruction ci-dessus est équivalente à l'instruction suivante :

select... from table1
inner join table2 using(column1)
inner join table3 using(column2);
Copier après la connexion

Rethink using

Dans Oracle Le mot-clé using est utilisé dans la connexion join , qui est relatif à la jointure naturelle.

Nous avons mentionné plus tôt que si natraul join est utilisé et s'il y a plusieurs champs avec le même nom et le même type de données dans les deux tables, alors ces champs seront connectés par Oracle de sa propre initiative.

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;
Copier après la connexion

et
Select * from Sales natural join costs;
Copier après la connexion

et

Select * from Sales join costs on Sales.prod_id = costs.prod_id and sales.time_id = costs.time_id
Copier après la connexion

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
Copier après la connexion

Cela oblige Oracle à utiliser les champs indiqués en utilisant pour se connecter, au lieu des deux par défaut dans la connexion de jointure naturelle. Veuillez noter que l'instruction SQL ici n'a aucune signification. Il s'agit simplement d'un exemple tiré par les cheveux pour illustrer l'utilisation de using.

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".

Un seul nom de colonne peut être utilisé lors de l'utilisation.
  • Le mot-clé natural join et le mot-clé using s'excluent mutuellement, ce qui signifie qu'ils ne peuvent pas apparaître en même temps.
  • Tutoriel recommandé : "
Tutoriel vidéo Oracle

"

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!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal