Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

FROM Успеваемость




ON

Имя_индекса

INDEX

DROP

CREATE UNIQUE INDEX index_fio

ON

ADD КодСт COUNTER(1,1) PRIMARY KEY NOT

ALTER TABLE STUD

ALTER TABLE STUD

TABLE

ALTER

Команда

ON UPDATE CASCADE ON DELETE CASCADE)

REFERENCES SPEC(KODSPEC)

KODSPEC INTEGER NOT NULL,

KURS CHAR(2),

OT CHARACTER(20)NOT NULL,

IM CHARACTER(20) NOT NULL,

FAM CHARACTER(20) NOT NULL,

CREATE TABLE STUD(

Примеры

Описание команды

Внешние ключи используются для

установления логических связей между

таблицами и построения ссылочной

целостности. Связь устанавливается

путем присвоения значений внешнего

ключа одной таблицы значениям ключа

другой с помощью ключевого слова

FOREIGN KEY и REFERENCES, где также

должна быть указана таблица, с которой

организуется связь.

[CONSTRAINT имя_связи]

[FOREIGN KEY (поле1 [, поле2

[..., поле16]])]

REFERENCES таблица_связи [(поле_с

вязи1 [, поле_связи2 [...,

поле_связи16]])]

Дополнительно необходимо, чтобы

в родительской таблице обязательно

присутствовал первичный ключ по тем

же полям.


Создание таблицы STUD со связью с таблицей

SPEC по полю KODSPEC:

CONSTRAINT FIO PRIMARY KEY (FAM,IM,OT),

CONSTRAINT KODSP FOREIGN KEY

(KODSPEC)

Заданное ограничение имеет имя KODSP и в

случае возникновения нарушения ссылочной

целостности, если, например, при вводе

устанавливать ссылки на отсутствующие

строки в родительской таблице, то это имя

будет присутствовать в сообщении об ошибке.





– Удалить ограничение первичного ключа в


модификация таблицы:

ALTER TABLE имя_таблицы

{[ADD [COLUMN] имя_столбца

тип_данных [NULL | NOT NULL ]]

| [DROP [COLUMN] имя_столбца]}


таблице STUD:

DROP CONSTRAINT FIO;

 

Добавить ключевое поле (счетчик) в таблицу


Команда позволяет добавлять

удалять столбцы и ограничения.


или STUD:


NULL;

Команда DROP TABLE – удаление Удаление таблицы Группа:


таблицы:


DROP TABLE Группа;


DROP TABLE имя_таблицы [RESTRICT

| CASCADE]

Команды CREATE INDEX и DROP Создание уникального индекса по полю ФИО в


INDEX – создают и удаляют индексы:

CREATE [UNIQUE] INDEX имя_индекса

имя_таблицы (имя_столбца[ASC|DESC

][,...n])


таблице Студент:

ON Студент (ФИО);

 

Удаление индекса в таблице Студент:

DROP INDEX index_fio ON Студент;






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

Указанные в операторе Create Index

столбцы составляют ключ индекса.

Индексы - это наборы уникальных

значений для некоторой таблицы с

соответствующими ссылками на данные.

 

59

 


 

 

Практические задания

Разработать в базе данных Студенты запросы в режиме SQL.

Рекомендуется присваивать запросам имена, в которых присутствует номер

выполняемого задания. При проведении вычислений задавайте полям корректные алиасные

имена (псевдонимы).

Задание 7.1. Запрос на выборку указанных полей по одной таблице:

7.1.1. Выбрать аббревиатуры факультетов.

7.1.2. Выбрать фамилии студентов из таблицы Успеваемость, исключив повторяющиеся

записи.

Задание 7.2. Запрос по связанным таблицам:

7.2.1. Вывести название специальностей и соответствующие им номера групп,

исключив повторы.

7.2.2. Вывести аббревиатуры факультетов и названия специальностей для этих

факультетов.

Задание 7.3. Запросы с условиями отбора и параметрами:

7.3.1. Вывести информацию о студентах (фамилия, группа, факультет, предмет),

имеющих оценки 2 и 3.

7.3.2. Отобрать студентов, родившихся до 1988 года.

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

вводить как параметр.

7.3.4. Выбрать студентов, имеющих имя, запрашиваемое как параметр.

Задание 7.4. Запросы с фразой BETWEEN или IN:

7.4.1. Отобрать студентов-отличников с оценками от 9 до 10.

7.4.2. Выбрать студентов, имеющих положительные оценки (6, 7 или 8).

Задание 7.5. Запросы с фразой LIKE:

7.5.1. Отобрать студентов, которые родились в апреле.

7.5.2. Найти студентов, в чьих фамилиях имеется мягкий знак.

Задание 7.6. Запрос с сортировкой:

7.6.1. Создать список групп в порядке возрастания номеров.

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

студентами.

Задание 7.7. Запросы с вычислениями (без группировки):

7.7.1. Вычислить общую сумму по оплате за обучение.

7.7.2. Подсчитать средний балл и количество студентов сдававших экзамены.

Задание 7.8. Запросы с фразой GROUP BY:

7.8.1. Определить количество студентов по группам.

7.8.2. Определить количество студентов каждого курса, обучающихся платно.

7.8.3. Вычислить средний балл каждого бюджетного студента, вывести также

информацию об его группе и факультете.

7.8.4. Вычислить суммы по оплате вне бюджетников по каждому факультету.

Задание 7.9. Запросы с фразой HAVING:

7.9.1. Определить количество платных студентов младших курсов (I и II).

7.9.2. Выбрать бюджетных студентов, чей средний балл выше семи.

 

60


 

Задание 7.10. Запросы с подзапросами:

7.10.1. Найти самого взрослого студента.

7.10.2. Вывести информацию о студентах (фамилию, имя, группу), у которых есть тезки

(совпадают имена).

Задание 7.11. Провести модификацию базы данных – добавить поле Пол (текстовое, размер

3) в таблицу Студенты.

Задание 7.12. Обновить поле Пол соответствующими значениями (муж или жен в

зависимости от значений двух последних символов поля Отчество).

Задание 7.13. Проиндексировать таблицу Студенты по полю Пол.

Задание 7.14. Разработать перекрестный запрос, определяющий количество юношей и

девушек в каждой группе.

Задание 7.15. Разработать перекрестный запрос, определяющий количество оценок 2, 3, …

9, 10 по каждому предмету.

Задание 7.16. Разработать перекрестный запрос, определяющий количество оценок 2, 3, …

9, 10 в каждой группе факультета, аббревиатура которого вводится как параметр.

Задание 7.17. Провести модификацию базы данных – поле Кол_студ с типом

данных Byte в таблицу Специальности.

Задание 7.18. Разработать запрос-действие на создание таблицы, в которой подсчитывается

количество студентов на каждой специальности.

Задание 7.19. Разработать запрос на обновление поля Кол_студ данными таблицы,

созданной по запросу задания 7.18.

Задание 7.20. Разработать запрос на удаление таблицы, созданной в задании 7.18.

 

Контрольные вопросы

Каково назначение запроса-выборки?

Как задается и используется псевдоним для таблиц и полей?

Какими средствами языка SQL выполняются такие операции реляционной алгебры,

как проекция и селекция? Приведите примеры.

Можно ли вывести из таблицы первые пять записей? Ответ пояснить.

Опишите и зарисуйте, какой результат получим по представленному ниже запросу

SELECT DISTINCT UCase([Фамилия]) AS ФИО, "отличник" AS Результат

WHERE Оценка>8;

Изменится ли количество результирующего набора, если в запросе поле [Фамилия]

изменить на поле [Имя] и почему?

Как задается уникальность в описании столбцов при создании таблиц в базе данных?

Пояснить, будет ли корректно выполняться представленная команда вставки в

таблицу новой строки:

INSERT INTO STUDENT (Id, city, name) VALUES (101, NULL, "Туров", 200)

В разработанной базе данных имеются недостатки, которые не позволяют вводить в

нашу базу данных студентов с одинаковыми данными в фамилии, имени, отчестве. А

как можно исправить эту ситуацию? Напишите команды CREATE TABLE для

создания корректной структуры таблиц базы данных Студенты.

 

61

1.
2.
3.
4.
5.
6.
7.
8.


 

Самостоятельная работа

По предложенным схемам, без использования компьютера разработать запросы в

режиме SQL, представить SQL-запросы в режиме Конструктора и реализовать операции




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


Дата добавления: 2015-05-09; Просмотров: 1317; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.044 сек.