SQL-инструкции для определения данных DDL и манипулирования данными DML. Обеспечение целостности данных

Страницы работы

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра Автоматики

Лабораторная работа №3

SQL-ИНСТРУКЦИИ ДЛЯ ОПРЕДЕЛЕНИЯ ДАННЫХ DDL

И МАНИПУЛИРОВАНИЯ ДАННЫМИ DML.

ОБЕСПЕЧЕНИЕ ЦЕЛОСТНОСТИ ДАННЫХ


Факультет:         АВТ

Группа:               АА-86

Студент:             Сапрыкин О.Н.

Вариант:             14

Преподаватель:

Тюнина Л.В.


Дата выполнения:

Отметка о защите:


Новосибирск

2012


1.  Цель задачи: Научиться создавать  инструкции, позволяющие строить и модифицировать таблицы БД и выбирать из них данные.

2.  Ход работы:

Создание таблицы

CREATE TABLE testsql ([Код] integer, [ФИО] text, [Паспорт] text, [Телефон] text, CONSTRAINT [Индекс1] PRIMARY KEY ([Код]));

Рис. 1 Создание новой таблицы

Добавление столбца

ALTER TABLE testsql

ADD Адрес STRING;

Рис. 2 Добавление столбца Адрес

Внесение данных в таблицу

INSERT INTO testsql

VALUES ('1', 'Иванов Андрей Евгеньевич', '0101 086165', '+7-913-942-67-48', 'Новосибирск г., Ленина ул., 15-87');

Рис. 3 Внесение данных по одному покупателю


Добавление данных из столбца другой таблицы

INSERT INTO testsql

SELECT TOP 10 Покупатель.[Код] AS Код, Покупатель.[ФИО] AS ФИО

FROM Покупатель;

Рис. 4 ФИО из столбца другой таблицы

Обновление данных по условию

UPDATE testsql SET Паспорт = '9090 102345', Адрес = 'Новосибирск г., ул.Блюхера, 43'

WHERE [Код]=1;

Рис. 5 Обновление паспортных данных

Удаление данных по условию

DELETE *

FROM testsql

WHERE [Код]=2;

Рис. 6 Удаление поля с кодом 2

Запрос SELECT LIKE

SELECT testsql.[ФИО], testsql.Адрес

FROM testsql

WHERE (((testsql.[ФИО]) Like 'Иванов*'));

Рис. 7 Like ‘Иванов*’

Запрос SELECT DISTINCT

SELECT DISTINCT Адрес FROM testsql;

Рис. 8 Distinct Адрес

Запрос SELECTCOUNT

SELECT Автомобиль.ТехСостояние AS ТехСостояние, Count(*) AS Число FROM Автомобиль GROUP BY Автомобиль.ТехСостояние;

Рис. 9 Count по техническому состоянию

Запрос SELECTAND

SELECT Автомобиль.[Цена], Автомобиль.Марка, Автомобиль.ГодВыпуска FROM Автомобиль

WHERE (((Автомобиль.ГодВыпуска)>=1999)) and (((Автомобиль.ГодВыпуска)<=2010));

Рис. 10 Авто между 1999 и 2010 годами


Запрос SELECTGROUP

SELECT Автомобиль.Цена, Автомобиль.Марка

FROM Автомобиль GROUP BY Автомобиль.Цена, Автомобиль.Марка;

Рис. 11 Сортировка по цене

Запрос SELECTHAVING

SELECT Автомобиль.Цена, Автомобиль.Марка

FROM Автомобиль

GROUP BY Автомобиль.Цена, Автомобиль.Марка

HAVING ((Автомобиль.Цена)>=100000);

Рис. 12 Авто дороже 100т.р.


Запрос SELECT <,>,=

SELECT Автомобиль.Марка, Автомобиль.ГодВыпуска

FROM Автомобиль WHERE (((Автомобиль.ГодВыпуска)<2009));

Рис. 13 Год выпуска раньше 2009

Запрос SELECTАгрегатная функция

SELECT Автомобиль.[Марка], Max(Цена) AS МаксЦена

FROM Автомобиль

GROUP BY Автомобиль.[Цена], Автомобиль.[Марка];

Рис. 14 Агрегатная функция по цене

Запрос SELECTВычисление в запросе

SELECT Продажа.Автомобиль, Продажа.Покупатель, Продажа.ДатаПродажи, Продажа.Цена, [Цена]/38.484 AS ЦенаЕВРО

FROM Продажа;

Рис. 15 Вычисление цены в евро

Запрос SELECTUNIONJOIN

SELECT Автомобиль.Цена, Автомобиль.Марка, Автомобиль.ГодВыпуска

FROM Автомобиль

WHERE ((Автомобиль.ГодВыпуска)<=1999);

UNION SELECT Автомобиль.Цена, Автомобиль.Марка, Автомобиль.ГодВыпуска

FROM Автомобиль

WHERE ((Автомобиль.Марка) = 'Mazda 3');

Рис. 16 Год выпуска меньше 1999 или марка Mazda 3

Запрос SELECTLEFTJOIN

SELECT Автомобиль.[Марка], Продажа.Цена

FROM Автомобиль LEFT JOIN Продажа ON Автомобиль.[Цена]=Продажа.[Цена];

Рис. 17 Объединение цен из таблиц автомобиль и продажа слева

Запрос SELECTINNERJOIN

SELECT Автомобиль.[Марка], Продажа.Цена

FROM Автомобиль INNER JOIN Продажа ON Автомобиль.[Цена]=Продажа.[Цена];

Рис. 18 Объединение имеющихся цен из таблиц автомобиль и продажа

Запрос SELECTRIGHTJOIN

SELECT Автомобиль.[Марка], Продажа.Цена

FROM Автомобиль RIGHT JOIN Продажа ON Автомобиль.[Цена]=Продажа.[Цена];

Рис. 19 Объединение имеющихся цен из таблиц автомобиль и продажа справа

Запрос в запросе

Выбор покупателя из таблицы продажа, если в таблице Покупатель данному ФИО сопоставлен Паспорт 5005 559438:

SELECT * FROM Продажа

WHERE (((Продажа.[Покупатель]) In (SELECT ФИО

From Покупатель

Where Паспорт='5005 559438')));

Рис. 20 Результат запроса

Запрос реляционный

SELECT Автомобиль.[Цена], Автомобиль.Марка, Автомобиль.ГодВыпуска FROM Автомобиль

WHERE (((Автомобиль.ГодВыпуска)>=1999)) and (((Автомобиль.ГодВыпуска)<=2010));

Рис. 21 Реляционный запрос по году выпуска


3.  Вывод

В ходе данной лабораторной работы мы научились писать Sql-запросы к базе данных.

Похожие материалы

Информация о работе

Предмет:
Базы данных
Тип:
Отчеты по лабораторным работам
Размер файла:
303 Kb
Скачали:
0