SQL | Подзапрос
В SQL подзапрос можно просто определить как запрос внутри другого запроса. Другими словами, мы можем сказать, что подзапрос - это запрос, который встроен в предложение WHERE другого SQL-запроса.
Важные правила для подзапросов:
- Подзапрос можно поместить в несколько предложений SQL: предложение WHERE, предложение HAVING, предложение FROM.
Подзапросы могут использоваться с операторами SELECT, UPDATE, INSERT, DELETE вместе с оператором выражения. Это может быть оператор равенства или оператор сравнения, например =,>, =, <= и оператор Like. - Подзапрос - это запрос внутри другого запроса. Внешний запрос называется основным запросом, а внутренний запрос - подзапросом .
- Подзапрос обычно выполняется первым, а его выходные данные используются для выполнения условия запроса для основного или внешнего запроса.
- Подзапрос должен быть заключен в круглые скобки.
- Подзапросы находятся справа от оператора сравнения.
- Команда ORDER BY не может использоваться в подзапросе. Команда GROUPBY может использоваться для выполнения той же функции, что и команда ORDER BY.
- Используйте однострочные операторы с однострочными подзапросами. Используйте многострочные операторы с многострочными подзапросами.
Синтаксис:
Для подзапросов нет общего синтаксиса. Тем не менее, подзапросы чаще всего используются с оператором SELECT, как показано ниже:
ВЫБЕРИТЕ имя_столбца FROM table_name Оператор выражения WHERE column_name (ВЫБЕРИТЕ COLUMN_NAME из TABLE_NAME WHERE ...);
Образец таблицы :
БАЗА ДАННЫХ
НАЗВАНИЕ | ROLL_NO | МЕСТО РАСПОЛОЖЕНИЯ | ТЕЛЕФОННЫЙ НОМЕР |
---|---|---|---|
Баран | 101 | Ченнаи | 9988775566 |
Радж | 102 | Коимбатур | 8877665544 |
Саси | 103 | Мадурай | 7766553344 |
Рави | 104 | Салем | 8989898989 |
Сумати | 105 | Канчипурам | 8989856868 |
УЧЕНИК
НАЗВАНИЕ | ROLL_NO | РАЗДЕЛ |
---|---|---|
Рави | 104 | А |
Сумати | 105 | B |
Радж | 102 | А |
Примеры запросов
:
- Чтобы отобразить NAME, LOCATION, PHONE_NUMBER студентов из таблицы DATABASE, раздел A
Выберите NAME, LOCATION, PHONE_NUMBER из DATABASE ГДЕ ROLL_NO IN (ВЫБЕРИТЕ ROLL_NO из СТУДЕНТА, где РАЗДЕЛ = 'A');
Объяснение: Первый подзапрос выполняет «SELECT ROLL_NO from STUDENT, где SECTION = 'A'» возвращает ROLL_NO из таблицы STUDENT, чей SECTION равен «A». Затем внешний запрос выполняет его и возвращает NAME, LOCATION, PHONE_NUMBER из таблицы DATABASE студента. ROLL_NO которого возвращается из внутреннего подзапроса.
Выход:НАЗВАНИЕ ROLL_NO МЕСТО РАСПОЛОЖЕНИЯ ТЕЛЕФОННЫЙ НОМЕР Рави 104 Салем 8989898989 Радж 102 Коимбатур 8877665544 - Вставить пример запроса:
Таблица1: Студент1
НАЗВАНИЕ ROLL_NO МЕСТО РАСПОЛОЖЕНИЯ ТЕЛЕФОННЫЙ НОМЕР Баран 101 ченнаи 9988773344 Раджу 102 Коимбатур 9090909090 Рави 103 Салем 8989898989 Таблица2: Студент2
НАЗВАНИЕ ROLL_NO МЕСТО РАСПОЛОЖЕНИЯ ТЕЛЕФОННЫЙ НОМЕР Радж 111 ченнаи 8787878787 Сай 112 мумбаи 6565656565 Шри 113 Коимбатур 7878787878 Чтобы вставить Student2 в таблицу Student1:
ВСТАВИТЬ В Студент1 ВЫБРАТЬ * ОТ Студента2;
Выход:
НАЗВАНИЕ ROLL_NO МЕСТО РАСПОЛОЖЕНИЯ ТЕЛЕФОННЫЙ НОМЕР Баран 101 ченнаи 9988773344 Раджу 102 Коимбатур 9090909090 Рави 103 Салем 8989898989 Радж 111 ченнаи 8787878787 Сай 112 мумбаи 6565656565 Шри 113 Коимбатур 7878787878 - Чтобы удалить студентов из таблицы Student2, чье rollno такое же, как и в таблице Student1, и расположение как ченнаи
УДАЛИТЬ ИЗ Student2 ГДЕ ROLL_NO IN (ВЫБРАТЬ ROLL_NO ОТ Student1 ГДЕ РАСПОЛОЖЕНИЕ = 'chennai');
Выход:
1 строка удалена успешно.
Отобразить таблицу Student2:
НАЗВАНИЕ ROLL_NO МЕСТО РАСПОЛОЖЕНИЯ ТЕЛЕФОННЫЙ НОМЕР Сай 112 мумбаи 6565656565 Шри 113 Коимбатур 7878787878 - Чтобы обновить имена студентов до компьютерных фанатов в таблице Student2, расположение которой такое же, как Raju, Ravi в таблице Student1
ОБНОВЛЕНИЕ Student2 НАБОР НАЗВАНИЯ = "гики" ГДЕ РАСПОЛОЖЕНИЕ (ВЫБЕРИТЕ РАСПОЛОЖЕНИЕ ОТ Student1 ГДЕ ИМЯ В ('Раджу', 'Рави'));
Выход:
1 строка успешно обновлена.
Отобразить таблицу Student2:
НАЗВАНИЕ ROLL_NO МЕСТО РАСПОЛОЖЕНИЯ ТЕЛЕФОННЫЙ НОМЕР Сай 112 мумбаи 6565656565 выродки 113 Коимбатур 7878787878
Эта статья предоставлена Ранджани Рави . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.