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)

WBOY
WBOYavant
2022-03-02 18:05:282844parcourir

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

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

           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)

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

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;

et
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

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!

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