W Cat - SQL за 24 часа

Тут можно читать онлайн W Cat - SQL за 24 часа - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-db. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    SQL за 24 часа
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.5/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

W Cat - SQL за 24 часа краткое содержание

SQL за 24 часа - описание и краткое содержание, автор W Cat, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

SQL за 24 часа - читать онлайн бесплатно полную версию (весь текст целиком)

SQL за 24 часа - читать книгу онлайн бесплатно, автор W Cat
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Вот пример правильного использования BETWEEN:

SELECT имя_столбца

FROM таблица

WHERE имя_столбца ОПЕРАЦИЯ (SELECT имя_столбца

FROM таблица

WHERE значение BETWEEN значение);

Вот пример неправильного использования BETWEEN:

SELECT имя_столбца FROM таблица

WHERE имя_столбца BETWEEN значение AND (SELECT имя_столбца

FROM таблица);

Подзапросы в операторе SELECT

Чаще всего используются подзапросы с оператором SELECT, хотя, конечно, используются и подзапросы с операторами манипуляций данными. Подзапросы в операторе SELECT извлекают данные для главного запроса.

Базовый синтаксис соответствующего оператора должен быть следующим.

SELECT имя_столбца [, имя_столбца ]

FROM таблица1 [, таблица2 ]

WHERE имя_столбца ОПЕРАЦИЯ

(SELECT имя_столбца [, имя_столбца ]

FROM таблица1 [, таблица2 ]

[ WHERE ]);

Например,

SELECT E.EMP_ID, E.LAST_NAME, E.FIRST_NAME EP.PAY__RATE

FROM EMPLOYEEJTBL E, EMPLOYEE_PAY_TBL EP

WHERE E.EMP_ID = EP.EMP_ID

AND E?.PAY_RATE > (SELECT PAY_RATE

FROM EMPLOYEE_PAY_TBL

WHERE E.EMP_ID = '313782439');

Этот оператор SQL возвращает табельный номер служащего, фамилию, имя и норму оплаты труда для всех служащих, у которых эта норма оплаты превышает норму оплаты труда служащего с табельным номером 313782439. В данном случае нет необходимости знать (выяснять), какова норма оплаты того конкретного служащего - норма оплаты его труда нужна только для получения списка тех служащих, которые зарабатывают больше, чем он.

В следующем примере извлекается норма оплаты труда конкретного служащего Этот запрос будет использован в качестве подзапроса в примере, следующем за этим

SELECT PAY_RATE

FROM EMPLOYEE_PAY_TBL

WHERE E.EXP_IC - ' 220S84332');

PAY_RATE 11

1 строка выбрана.

Теперь используем этот запрос в качестве подзапроса в следующемзапросе.

SELECT E.EMP_ID, E.LAST_NAME, E.FIRST_NAME EP.PAY_RATE

FROM EMPLOYEEJTBL E, EMPLOYEE_PAY_TBL EP

WHERE E.EMP_ID = EP.EMP_ID

AND EP.PAY_RATE > (SELECT PAY_RATE

FROM EMPLOYEE_PAY_TBL

WHERE E.EMP_ID = '220984332');

EMP_ID LAST_NAM FIRST_NAM PAY_RATE

442346889 PLEW LINDA 14.75

443679012 SPURGEON TIFFANY 15

2 строки выбраны.

Результатом подзапроса будет 11 (это видно из предыдущего примера), поэтому второе из условий в выражении ключевого слова WHERE главного запроса преобразуется в условие

AND EP.PAY_RATE > 11

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

ЕМР ID

LAST NAM

FIRST NAM

PAY_RATE

442346889 443679012

PLEW SPURGEON

LINDA TIFFANY

14.75 15

Подзапросы часто используются тогда, когда в запросе требуется указать условия, точных данных для которых нет. Знамения уровня оплаты труда для служащего 220Э84332 у вас нет, но подзапрос и создается для того, чтобы выяснить это значение

Подзапросы в операторе INSERT

Подзапросы могут использоваться и с операторами языка манипуляций данными (DML). Первым из таких операторов мы рассмотрим оператор INSERT. Оператор INSERT использует данные, возвращаемые подзапросом, для помещения их в другую таблицу. Выбранные в подзапросе данные можно модифицировать с помощью символьных или числовых функций, а также функций дат и времени.

Базовый синтаксис соответствующего оператора должен быть следующим.

INSERT INTO имя_таблицы [ (столбец! [, столбец2 ]) ]

SELECT [ *| столбец1 [, столбец2 ]]

FROM таблица1 [, таблица2 ]

[ WHERE значение ОПЕРАЦИЯ значение ]

Вот пример использования оператора INSERT с подзапросом.

INSERT INTO RICH_EMPLOYEES

SELECT E.EMP_ID, E.LAST_NAME, E.FIRST_NAME EP.PAY_RATE

FROM EMPLOYEE_TBL E, EMPLOYEE_PAY_TBL EP

WHERE E.EMP_ID = EP.EMP_ID

AND EP.PAY_RATE > (SELECT PAY_RATE

FROM EMPLOYEE_PAY_TBL

WHERE E.EMP_ID = '220984332');

2 строки созданы.

Этот оператор INSERT вставляет значения EMP_ID, LAST_NAME, FIRST_NAME и PAY_RATE в таблицу RICH_EMPLOYEES для всех служащих, норма оплаты труда которых превышает норму оплаты труда служащего с табельным номером 220984332.

При использовании команд DML типа INSERT не забывайте об использовании команд COMMIT и ROLLBACK

Подзапросы в операторе UPDATE

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

Базовый синтаксис оператора следующий.

UPDATE таблица

SET имя_столбца [, имя_столбца ] =

(SELECT имя_столбца [,имя_столбца ] FROM таблица

[ WHERE ])

Рассмотрим примеры, разъясняющие использование оператора UPDATE с подзапросом. Сначала рассмотрим запрос, возвращающий табельные номера служащих из Индианаполиса. Как видите, таких служащих четыре.

SELECT EMP_ID

FROM EMPLOYEE_TBL

WHERE CITY = 'INDIANAPOLIS';

EMP_ID

442346889

313782439

220984332

443679012

4 строки выбраны.

Этот запрос будет использован в качестве подзапроса в следующем операторе UPDATE. Вот этот оператор UPDATE с подзапросом.

UPDATE EMPLOYEE_PAY_TBL

SET PAY_RATE = PAY_RATE * 1.1

WHERE EMP_ID IN (SELECT EMP_ID

FROM EMPLOYEE_TBL

WHERE CITY = 'INDIANAPOLIS');

4 строки обновлены.

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

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

Подзапросы в операторе DELETE

Подзапросы можно использовать в операторе DELETE. Базовый синтаксис оператора следующий.

DELETE FROM имя_таблицы

[ WHERE ОПЕРАЦИЯ [ значение ]

(SELECT имя_столбца

FROM имя_таблицы

[ WHERE ])

В следующем примере из таблицы EMPLOYEE_PAY_TBL удаляется запись с информацией о служащем по имени BRANDON GLASS. Табельный номер этого служащего не известен, но можно создать подзапрос, который найдет этот номер в таблице EMPLOYEEJTBL по значениям столбцов с именами (FIRST_NAME) и фамилиями (LAST_NAME) служащих.

DELETE FROM EMPLOYEE_PAY_TBL WHERE EMP_ID = (SELECT EMP_ID

FROM EMPLOYEE_PAY_TBL

WHERE LAST_NAME a 'GLASS '

AND FIRST_NAME = 'BRAHDON');

1 строка обновлена.

He забывайте использовать в операторах UPDATE и DELETE ключевое слово WHERE. Если последнее не использовать, будут обновлены или удалены данные всех столбцов 1За подробностями обратитесь к уроку 5, "Манипуляция данными"

Подзапросы внутри подзапросов

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

По поводу имеющихся ограничений (если они есть вообще) на число вложений одних запросов в другие в рамках одного оператора обратитесь к документации по используемой вами реализации языка, поскольку такие ограничения для разных реализаций могут не совпадать

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




SQL за 24 часа отзывы


Отзывы читателей о книге SQL за 24 часа, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x