Latest web development tutorials

SQLite подзапрос

Подзапросов или вложенных запросов или внутренний запрос встраивается в запросе ИНЕКЕ внутри другого SQLite запроса.

Использование подзапроса возвращает данные будут использоваться в основном запросе в качестве условия для дальнейшего ограничения данных, которые будут загружены.

Подзапросы можно использовать с SELECT, INSERT, UPDATE и DELETE заявления могут сопровождаться операторы используют такие как =, <,>,> =, <=, IN, BETWEEN нравится.

Ниже приведен подзапрос несколько правил, которые необходимо соблюдать:

  • Подзапросы должен быть заключен в скобки.

  • Суб-запрос SELECT, раздел может иметь только один столбец, если несколько столбцов в основном запросе, выбранного сравнения столбца подзапроса.

  • ORDER BY не может быть использован в подзапросе, хотя основной запрос может использовать ORDER BY. Вы можете использовать GROUP BY в подзапросах, действует так же, как ORDER BY.

  • Подзапрос возвращает более одной строки, может использоваться только с оператором многозначного, таких как оператор IN.

  • Между оператором, не может быть использован с подзапросов, Однако, между могут быть использованы в пределах подзапросов.

ЗЕЬЕСТ подзапроса

Подзапрос обычно используется с ЗЕЬЕСТ. Базовый синтаксис выглядит следующим образом:

ВЫБОР column_name [, имя_столбца]
FROM table1 [, table2]
ГДЕ column_name ОПЕРАТОР
      (SELECT имя_столбца [, имя_столбца]
      FROM table1 [, table2]
      [WHERE])

примеров

Предположим, что таблица Компания имеет следующие записи:

ID ИМЯ ВОЗРАСТ АДРЕС ЗАРПЛАТА
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000,0
3 Teddy 23 Норвегия 20000,0
4 Mark 25 Рич-Mond 65000,0
5 David 27 Texas 85000,0
6 Ким 22 Юго-зал 45000,0
7 Джеймс 24 Хьюстон 10000,0

Теперь давайте рассмотрим ЗЕЬЕСТ подзапроса:

SQLite> SELECT * 
     ОТ КОМПАНИИ 
     WHERE ID IN (SELECT ID 
                  ОТ КОМПАНИИ 
                  ГДЕ ЗАРПЛАТА> 45000);

Это дает следующие результаты:

ID ИМЯ ВОЗРАСТ АДРЕС ЗАРПЛАТА
---------- ---------- ---------- ---------- ----------
4 Mark 25 Рич-Mond 65000,0
5 David 27 Texas 85000,0

INSERT заявление подзапрос

Подзапросов также может быть использован с INSERT заявления. ВСТАВИТЬ оператор использует вложенный запрос для возврата данных в другую таблицу. В подзапроса выбранные данные могут быть любой символ, дата, или цифровая функция модификации.

Базовый синтаксис выглядит следующим образом:

INSERT INTO table_name [(column1 [, column2])]
           SELECT [* | column1 [, column2]
           FROM table1 [, table2]
           [WHERE VALUE ОПЕРАТОР]

примеров

Пусть COMPANY_BKP О компании Структура таблицы и подобное, и могут использовать один и тот же CREATE TABLE для создания, просто изменили название таблицы COMPANY_BKP. Теперь скопируйте всю таблицу компании, чтобы COMPANY_BKP, синтаксис выглядит следующим образом:

SQLite> INSERT INTO COMPANY_BKP
     SELECT * FROM КОМПАНИИ 
     WHERE ID IN (SELECT ID 
                  От компании);

UPDATE заявление подзапрос

Подзапросы могут использоваться с утверждением UPDATE. При использовании оператор UPDATE подзапроса, один или несколько столбцов обновляются в таблице.

Базовый синтаксис выглядит следующим образом:

UPDATE таблица
SET имя_столбца = новое_значение
[WHERE ОПЕРАТОР [VALUE]
   (SELECT COLUMN_NAME
   FROM table_name)
   [ГДЕ)]

примеров

Предположим, что мы имеем COMPANY_BKP таблицу, резервное копирование таблицы компании.

Следующие примеры таблицы КОМПАНИ всех возрастов, чем или равно 27 клиентов ЗАРПЛАТЫ обновленный оригинальный 0.50 раз:

SQLite> UPDATE КОМПАНИЯ
     SET ЗАРПЛАТА = ЗАРПЛАТА * 0,50
     ГДЕ AGE IN (SELECT Возраст от COMPANY_BKP
                   ГДЕ AGE> = 27);

Это будет влиять на две строки последней компании записей в таблице следующим образом:

ID ИМЯ ВОЗРАСТ АДРЕС ЗАРПЛАТА
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 10000.0
2 Allen 25 Texas 15000,0
3 Teddy 23 Норвегия 20000,0
4 Mark 25 Рич-Mond 65000,0
5 David 27 Texas 42500,0
6 Ким 22 Юго-зал 45000,0
7 Джеймс 24 Хьюстон 10000,0

ВЕЬЕТЕ подзапрос

Подзапросы могут использоваться с ВЕЬЕТЕ, так же как и другие операторы, как уже упоминалось выше.

Базовый синтаксис выглядит следующим образом:

DELETE FROM table_name
[WHERE ОПЕРАТОР [VALUE]
   (SELECT COLUMN_NAME
   FROM table_name)
   [ГДЕ)]

примеров

Предположим, что мы имеем COMPANY_BKP таблицу, резервное копирование таблицы компании.

Следующие примеры удалить все записи о клиентах больше или равно 27 лет Таблица КОМПАНИ:

SQLite> DELETE FROM КОМПАНИИ
     ГДЕ AGE IN (SELECT Возраст от COMPANY_BKP
                   ГДЕ ВОЗРАСТ> 27);

Это будет влиять на две строки последней компании записей в таблице следующим образом:

ID ИМЯ ВОЗРАСТ АДРЕС ЗАРПЛАТА
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000,0
3 Teddy 23 Норвегия 20000,0
4 Mark 25 Рич-Mond 65000,0
5 David 27 Texas 42500,0
6 Ким 22 Юго-зал 45000,0
7 Джеймс 24 Хьюстон 10000,0