МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра Автоматики
Лабораторная работа №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-запросы к базе данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.