Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Обновление данных или команда UPDATE




Назначение команды UPDATE – обновление существующих записей в указанной таблице. Указываем, где и чего хотим изменить, а после ключевого слова WHERE устанавливаем критерии отбора обновляемых записей. В команде обновления данных, как и в других SQL запросах, можно использовать подзапросы: например, можно определить в качестве присваиваемого полю значения результат подзапроса, который возвращает только одну колонку и одну строчку. UPDATE <таблица> SET {<поле> = <выражение>} [WHERE <список условий>] или UPDATE <таблица> SET {<поле> = (SELECT <значение> FROM <откуда> WHERE <список условий>)} [WHERE <список условий>] Добавление данных или команда INSERT Добавление новых записей в указанную таблицу. Здесь тоже ничего сложного. Указываем таблицу, список полей и список добавляемых в эти поля значений. Что может дать использование SQL подзапроса тоже догадаться несложно - копирование выбранного с помощью SELECT массива данных в указанную таблицу (в перечисленные через запятую поля). Естественно, что количество и тип колонок в запросе SELECT должен соответствовать количеству и типу полей таблицы, куда производится вставка. INSERT INTO <таблица> [(<список полей>)] VALUES (<список значений>) или INSERT INTO <таблица> [(<список полей>)] (SELECT <список значений> FROM <откуда> WHERE <список условий>) Удаление данных или команда DELETE Удаление строк из одной таблицы или сразу из нескольких таблиц, строки которых объединены условиями. Здесь все также очевидно. Указываем, из какой таблицы удаляем данные, а в части WHERE отбираем удаляемые данные. Во втором варианте SQL запроса с использованием инструкции DELETE показан обобщенный синтаксис удаления записей сразу из нескольких таблиц. В условиях отбора (в части WHERE) также можно использовать подзапросы. DELETE FROM <таблица> [WHERE <список условий>] или DELETE <список таблиц> FROM <список источников> [WHERE <список условий>]

29. Обзор дополнительных операций объединения полей, таких как FULL JOIN и CROSS JOIN,
UNION.

FULL JOIN - возвращает строки, когда есть хоть одно совпадение в любой из таблиц.

Синтаксис SQL FULL JOIN

SELECT column_name(s)

FROM table_name1

FULL JOIN table_name2

ON table_name1.column_name=table_name2.column_name

 

Есть таблица "Persons":

Есть таблица "Orders":

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

Для этого используем такой запрос:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName FULL JOIN - возвращает строки, когда есть хоть одно совпадение в любой из таблиц.

Синтаксис SQL FULL JOIN

SELECT column_name(s)

FROM table_name1

FULL JOIN table_name2

ON table_name1.column_name=table_name2.column_name

Есть таблица "Persons":

Есть таблица "Orders":

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

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

FULL JOIN Orders

ON Persons.P_Id=Orders.P_Id

ORDER BY Persons.LastName

UNION - данный оператор используется для объединения запросов SELECT.

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

Синтаксис SQL UNION

SELECT column_name(s) FROM table_name1

UNION

SELECT column_name(s) FROM table_name2

Замечание: оператор UNION выбирает только разные значения. Чтобы разрешить выборку повторяющихся значений, используйте UNION ALL.

Синтаксис SQL UNION ALL

SELECT column_name(s) FROM table_name1

UNION ALL

SELECT column_name(s) FROM table_name2

Итак, мы хотим перечислить "всех" возможные сотрудников в Norway и USA.

Для этого используем такой запрос:

SELECT E_Name FROM Employees_Norway UNIONSELECT E_Name FROM Employees_USA

30.Работа с множествами. Операции IN и NOT IN Операторы IN и NOT IN – это два SQL оператора для работы с множествами. Это еще один способ организовать критерии отбора записей с использованием конструкции WHERE. Ниже два простейших примера их использования, взятых из шага 18.Этот с операцией IN:

SELECT S_POSITION, COUNT(S_POSITION) AS [КОЛИЧЕСТВО S_POSITION]

FROM D_STAFF

WHERE S_POSITION IN (22,24)

GROUP BY S_POSITION

HAVING COUNT(S_POSITION)>1

А этот с операцией NOT IN>:

SELECT S_POSITION, COUNT(S_POSITION) AS [КОЛИЧЕСТВО S_POSITION]

FROM D_STAFF

WHERE S_POSITION NOT IN (23)

GROUP BY S_POSITION

HAVING COUNT(S_POSITION)>1

Глядя на результат, представленный на шаге 18, можно догадаться, что оба запроса возвращают одни и те же данные. Но цель этого шага не просто представить вам эти операторы, поскольку в таком виде их место в самом начале этого курса, а продемонстрировать их использование вместе с суперпозицией операции SELECT, показанной ранее. Ну, вот как-то так:

SELECT PROFILE_ID, COUNT(PROFILE_ID) AS [КОЛИЧЕСТВО S_POSITION]

FROM D_STAFF_PROFILE

WHERE PROFILE_ID NOT IN (SELECT XD_IID FROM D_PROFILE WHERE P_NAME LIKE'Ф%')

GROUP BY PROFILE_ID Множество, с которым имеет дело оператор NOT IN, формируется из значений XD_IID, отобранных внутренним SELECT. Здесь мы получим список идентификаторов профилей с количеством их связей в таблице D_STAFF_PROFILE. Наименования профилей не должны начинаться на букву ‘Ф’. Таким образом, мы не увидим в списке значения 21, 22, 23, которые соответствуют профилям, связанным с Ф инансами.





Поделиться с друзьями:


Дата добавления: 2017-01-28; Мы поможем в написании ваших работ!; просмотров: 724 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2287 - | 2070 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.006 с.