Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sql.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
962 Кб
Скачать
☆

Условное соединение (join …on)

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

  1. Вывести информацию о студентах и их оценках по дисциплине с кодом 2.

SELECT * FROM DANNIE JOIN USPEV ON (DANNIE.KOD_STUDENT = USPEV.KOD_STUDENT) AND (USPEV.KOD_DISCHIPLINA=2)

Соединение по именам столбцов (join …using)

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

  1. Вывести в каком городе какие улицы.

SELECT * FROM GOROD JOIN ULICA USING (KOD_GOROD)

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

  1. Запрос можно сформулировать иначе:

SELECT * FROM GOROD INNER JOIN ULICA ON (GOROD.KOD_GOROD= ULICA. KOD_GOROD)

Внешние соединения таблиц

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

Левое соединение (LEFT OUTER JOIN)

При левом внешнем соединении несоответствующие записи, имеющиеся в левой таблице, сохраняются в результативной, а имеющиеся в правой – удаляются.

Рассмотренный в Примере 1 запрос выводит не все записи, тот же самый запрос при внешнем левом объединении выглядит так:

SELECT T1.*, T2.OCENKA FROM DANNIE T1 LEFT OUTER JOIN USPEV T2 ON T1.KOD_STUDENT=T2.KOD_STUDENT

Правое соединение (RIGHT OUTER JOIN)

При правом внешнем соединении несоответствующие записи, имеющиеся в правой таблице, сохраняются в результативной, а имеющиеся в левой – удаляются.

Рассмотренный в Примере 1 запрос выводит не все записи, тот же самый запрос при внешнем правом объединении выглядит так:

SELECT T1.*, T2.OCENKA FROM DANNIE T1 RIGHT OUTER JOIN USPEV T2 ON T1.KOD_STUDENT=T2.KOD_STUDENT

Полное соединение (FULL JOIN)

Полное соединение выполняет и левое, и правое внешние соединения.

SELECT * FROM DANNIE FULL JOIN USPEV

Задания:

  1. Вывести названия регионов и соответствующие названия городов.

  2. Вывести перечень специальностей и название групп.

  3. Вывести названия дисциплин, по которым студенты получили 5.

  4. Вывести фамилии преподавателей, поставивших 3.

  5. Вывести фамилии студентов и названия соответствующих улиц.

  6. Вывести фамилии студентов и названия соответствующих городов.

  7. Вывести фамилии студентов и названия соответствующих регионов.

  8. Вывести информацию о студентах и их родителях.

Лабораторная работа №10 Добавление, удаление и изменение данных

Цель работы: Научиться создавать запросы на добавление, удаление и изменение данных в таблицах.

Ключевые слова: INSERT, DELETE, UPDATE.

Теоретический материал:

Добавление новых записей

Для добавления записи в таблицу служит оператор INSERT, который имеет несколько форм:

INSERT INTO <таблица> VALUES (<список значений>)

– вставляет пустую запись в указанную таблицу и заполняет эту запись значениями из списка, указанного за ключевым словом VALUES. При этом первое в списке значение вводится в первый столбец, второе – во второй и т.д. Порядок столбцов задается при создании таблицы. Данная форма не очень надежна, поскольку нетрудно ошибиться в порядке вводимых значений.

INSERT INTO <таблица> (<список столбцов>) VALUES (<список значений>)

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

  1. Добавить в DANNIE Иванова Ивана Ивановича.

INSERT INTO DANNIE (FAM, IMA, OTCH) VALUES ('ИВАНОВ', 'ИВАН', 'ИВАНОВИЧ')

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

  1. Добавить в таблицу Города записи НОВОКУБАНСК, КУРГАНИНСК, КРОПОТКИН.

INSERT INTO GOROD (NAZVANIE) VALUES ('НОВОКУБАНСК'), ('КУРГАНИНСК'), ('КРОПОТКИН')

INSERT INTO <таблица> (<список столбцов>) <запрос на выборку>

– вставляет в указанную таблицу записи, возвращаемые запросом на выборку.

  1. Названия городов добавить в названия регионов.

INSERT INTO REGION(NAZVANIE) SELECT NAZVANIE FROM GOROD

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]