SQLite sous_requĂȘte

Subquery ou requĂȘtes imbriquĂ©es ou une requĂȘte interne est intĂ©grĂ© dans la requĂȘte clause WHERE dans une autre requĂȘte SQLite.

L'utilisation de sous-requĂȘte renvoie les donnĂ©es seront utilisĂ©es dans la requĂȘte principale comme condition de limiter davantage les donnĂ©es Ă  rĂ©cupĂ©rer.

Subqueries peuvent ĂȘtre utilisĂ©s avec SELECT, INSERT, UPDATE et DELETE peuvent ĂȘtre accompagnĂ©s par les opĂ©rateurs d'utilisation tels que =, <,>,> =, <=, IN, aiment ENTRE.

Ce qui suit est une sous-requĂȘte plusieurs rĂšgles qui doivent ĂȘtre suivies:

  • Subqueries doivent ĂȘtre placĂ©s entre parenthĂšses.

  • Sous-requĂȘte clause SELECT ne peut avoir une colonne, Ă  moins que plusieurs colonnes dans la requĂȘte principale, la comparaison colonne de sous-requĂȘte sĂ©lectionnĂ©e.

  • ORDER BY ne peut pas ĂȘtre utilisĂ© dans une sous-requĂȘte, bien que la requĂȘte principale peut utiliser ORDER BY. Vous pouvez utiliser le GROUP BY dans les sous-requĂȘtes, fonctions le mĂȘme que ORDER BY.

  • rendements des sous-requĂȘtes plus d'une ligne, ne peuvent ĂȘtre utilisĂ©s avec l'opĂ©rateur multi-valeur, comme l'opĂ©rateur IN.

  • ENTRE l'opĂ©rateur ne peut pas ĂȘtre utilisĂ© avec des sous-requĂȘtes, cependant, ENTRE peut ĂȘtre utilisĂ© dans les sous-requĂȘtes.

Instruction SELECT sous_requĂȘte

Subquery est habituellement utilisé avec une instruction SELECT. La syntaxe de base est la suivante:

column_name SELECT [, nom_colonne]
FROM table1 [, table2]
WHERE column_name OPÉRATEUR
      (Nom_colonne SELECT [, nom_colonne]
      FROM table1 [, table2]
      [WHERE])

Exemples

Supposons que la table de l'entreprise a les documents suivants:

ID NOM ADRESSE AGE SALAIRE
---------- ---------- ---------- ---------- ----------
1 Paul 32 Californie 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 NorvĂšge 20000.0
4 Mark 25 Rich-Mond 65000,0
5 David 27 Texas 85000,0
6 Kim 22 Sud-Hall 45000,0
7 James 24 Houston 10000.0

Maintenant, nous allons examiner la dĂ©claration sous-requĂȘte SELECT:

sqlite> SELECT * 
     DE L'ENTREPRISE 
     WHERE ID IN (SELECT ID 
                  DE L'ENTREPRISE 
                  WHERE SALAIRE> 45000);

On obtient les résultats suivants:

ID NOM ADRESSE AGE SALAIRE
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000,0
5 David 27 Texas 85000,0

INSERT dĂ©claration sous_requĂȘte

Subqueries peuvent Ă©galement ĂȘtre utilisĂ©s avec l'instruction INSERT. instruction INSERT utilise une sous-requĂȘte pour renvoyer des donnĂ©es dans une autre table. Dans la sous-requĂȘte les donnĂ©es sĂ©lectionnĂ©es peuvent ĂȘtre tout caractĂšre, la date ou la modification de la fonction numĂ©rique.

La syntaxe de base est la suivante:

INSERT INTO nom_table [(column1 [, column2])]
           SELECT [* | column1 [, column2]
           FROM table1 [, table2]
           [WHERE VALEUR OPÉRATEUR]

Exemples

Supposons COMPANY_BKP COMPANY structure de table et similaires, et peut utiliser le mĂȘme CREATE TABLE pour crĂ©er, tout simplement changĂ© le nom de la table COMPANY_BKP. Maintenant copier la table entiĂšre de l'entreprise pour COMPANY_BKP, la syntaxe est la suivante:

sqlite> INSERT INTO COMPANY_BKP
     * SELECT FROM COMPANY 
     WHERE ID IN (SELECT ID 
                  DE LA SOCIÉTÉ);

UPDATE sous_requĂȘte

Subqueries peuvent ĂȘtre utilisĂ©s avec l'instruction UPDATE. Lorsque vous utilisez une instruction UPDATE sous-requĂȘte, une ou plusieurs colonnes sont mises Ă  jour dans le tableau.

La syntaxe de base est la suivante:

UPDATE table
SET nom_colonne = new_value
[WHERE OPÉRATEUR [VALUE]
   (SELECT COLUMN_NAME
   DE TABLE_NAME)
   [WHERE)]

Exemples

Supposons que nous ayons la table COMPANY_BKP, sauvegarde table COMPANY.

Les exemples suivants de la table de la Compagnie Tous les AGE ou Ă©gale Ă  27 clients SALAIRE mis Ă  jour le 0.50 fois d'origine:

sqlite> UPDATE COMPANY
     SET SALAIRE = SALAIRE * 0,50
     OÙ EN AGE (SELECT AGE DE COMPANY_BKP
                   WHERE AGE> = 27);

Cela aura une incidence sur les deux lignes des derniers dossiers de l'entreprise dans le tableau comme suit:

ID NOM ADRESSE AGE SALAIRE
---------- ---------- ---------- ---------- ----------
1 Paul 32 Californie 10000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 NorvĂšge 20000.0
4 Mark 25 Rich-Mond 65000,0
5 David 27 Texas 42500,0
6 Kim 22 Sud-Hall 45000,0
7 James 24 Houston 10000.0

DELETE sous_requĂȘte

Subqueries peuvent ĂȘtre utilisĂ©s avec l'instruction DELETE, tout comme les autres dĂ©clarations mentionnĂ©es ci-dessus.

La syntaxe de base est la suivante:

DELETE FROM TABLE_NAME
[WHERE OPÉRATEUR [VALUE]
   (SELECT COLUMN_NAME
   DE TABLE_NAME)
   [WHERE)]

Exemples

Supposons que nous ayons la table COMPANY_BKP, sauvegarde table COMPANY.

Les exemples suivants supprimer tous les enregistrements de clients supérieur ou égal AGE 27 table COMPANY:

sqlite> DELETE FROM COMPANY
     OÙ EN AGE (SELECT AGE DE COMPANY_BKP
                   OÙ AGE> 27);

Cela aura une incidence sur les deux lignes des derniers dossiers de l'entreprise dans le tableau comme suit:

ID NOM ADRESSE AGE SALAIRE
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
3 Teddy 23 NorvĂšge 20000.0
4 Mark 25 Rich-Mond 65000,0
5 David 27 Texas 42500,0
6 Kim 22 Sud-Hall 45000,0
7 James 24 Houston 10000.0