Установка значений по умолчанию
Пример. Создать таблицу STUDENT. Для столбца CITY установить значениие по умолчанию ’Воронеж’:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME VARCHAR(60) NOT NULL,
NAME VARCHAR(60) NOT NULL,
STIPEND INTEGER CHECK (STIPEND<200),
KURS INTEGER,
CITY VARCHAR(60) DEFAULT ’Воронеж’,
BIRTHDAY DATE,
UNIV_ID INTEGER);
Задание 2.
- Создайте таблицу EXAM_MARKS так, чтобы не допускался ввод в таблицу двух записей об оценках одного студента по конкретным экзамену и предмету обучения, и чтобы не допускалось проведение двух экзаменов по любым предметам в один день.
- Создайте таблицу предметов обучения SUBJECT так, чтобы количество отводимых на предмет часов по умолчанию было равно 36, не допускались записи в отсутствующим количеством часов, поле SUBJ_ID являлось первичным ключом таблицы и значение семестров (поле SEMESTR) лежали в диапазоне от 1 до 12.
- Создайте таблицу EXAM_MARKS таким образом, чтобы значения поля EXAM_ID было больше значений поля SUBJ_ID, а значения поля SUBJ_ID было больше значений поля STUDENT _ID; пусть также будут запрещены значения NULL в любом из этих трех полей.
Выборка данных. Оператор SELECT
Синтаксис:
SELECT [DISTINCT] < список атрибутов>
FROM < список таблиц >
[WHERE <условие выборки>]
[ORDER BY <список атрибутов>]
[GROUP BY < список атрибутов >]
[HAVING < условие >]
[UNION < выражение с оператором SELECT>];
ü В квадратных скобках указаны элементы, которые могут отсутствовать в запросе.
ü Если необходимо вывести значения всех столбцов таблицы, то можно вместо перечисления их имен использовать символ «*»
ü Слово DISTINCT используется для исключения повторяющихся запросов.
ü Ключевое слово ALL, в отличии от DISTINCT, оказывает противоположное действие.
ü Предложение WHERE определяет, какие строки указанных таблиц должны быть выбраны.
ü В задаваемых в предложении WHERE условиях могут использоваться операции сравнения, а также логические операторы AND, OR и NOT.
Запросы
- Вывести все имена и фамилии из таблицы STUDENT:
SELECT NAME, SURNAME
FROM STUDENT;
- Вывести всю таблицу STUDENT:
SELECT *
FROM STUDENT;
- Получить список названий городов, где проживают студенты, сведения о которых находятся в таблице STUDENT:
SELECT CITY
FROM STUDENT;
- Исключить из результата предыдущего запроса повторяющиеся записи:
SELECT DISTINCT CITY
FROM STUDENT;
- Выбрать всех студентов с фамилией Петров:
SELECT NAME, SURNAME
FROM STUDENT
WHERE SURNAME= «Петров»;
- Вывести все имена и фамилии из таблицы STUDENT, обучающихся на третьем курсе и получающих стипендию:
SELECT NAME, SURNAME
FROM STUDENT
WHERE KURS=3 AND STIPEND>0;
Задание 3.
- Напишите запрос для вывода идентификатора (номера) предмета обучения, его наименования, семестра, в котором он читается, и количества отводимых на него часов для всех строк таблицы SUBJECT.
- Напишите запрос, позволяющий вывести все строки таблицы EXAM_MARKS, в которых предмет обучения имеет номер (SUBJ_ID), равный 12.
- Напишите запрос, выбирающий в се данные из таблицы STUDENT, расположив столбцы таблицы в следующем порядке: KURS, SURNAME, NAME, STIPEND.
- Напишите запрос SELECT, который выполняет вывод наименований предметов обучения (SUBJ_NAME) и следом за ним количества часов (HOUR) для каждого предмета обучения (SUBJECT) в 4-м семестре (SEMESTR).
- Напишите запрос, позволяющий получить из таблицы EXAM_MARKS значения столбца MARK (экзаменационная оценка) для всех студентов, исключив из списка повторение одинаковых строк.
- Напишите запрос, который выполняет вывод списка фамилий студентов, обучающихся на третьем и более старших курсах.
- Напишите запрос, выбирающий данные о фамилии, имени и номере курса для студентов, получающих стипендию больше 140.
- Напишите запрос, выполняющий выборку из таблицы SUBJECT названий всех предметов обучения, на которые отводится более 30 часов.
- Напишите запрос, который выполняет вывод списка университетов, рейтинг которых превышает 300 баллов.
- Напишите запрос к таблице STUDENT для вывода списка фамилий (SURNAME), имен (NAME) и номера курса (KURS) всех студентов со стипендией большей или равной 100, и живущих в Москве.
- Какие данные будут получены в результате выполнения запроса?
SELECT * FROM STUDENT
WHERE (STIPEND < 100 OR NOT (BIRTHDAY >= ‘10/03/1980’ AND STUDENT_ID > 1003));
- Какие данные будут получены в результате выполнения запроса?
SELECT * FROM STUDENT
WHERE NOT ((BIRTHDAY = ‘10/03/1980’ OR STIPEND > 100) AND STUDENT_ID > = 1003);
Читайте также:
Воспользуйтесь поиском по сайту: