Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
! БД ответы.docx
Скачиваний:
27
Добавлен:
15.09.2019
Размер:
313.11 Кб
Скачать
  1. Создание запросов на выборку на sql языке. (select)

SELECT – выборка – особая команда структурированного языка запросов (SQL).

Формальное описание команды SELECT:

SELECT [ПРЕДИКАТЫ] список полей

FROM таблица1 [, еще таблицы через запятую ]

[IN внешняя БД]

[WHERE условие отбора]

[GROUP BY … группировка]

[HAVING условие отбора для группировки]

[ORDER BY сортировка по какому-то полю]

Список полей:

*[таблица.*|[таблица.]поле_1[AS псевдоним_1]]

Где * - выбираются все поля; поле_1 – имя поля (атрибут), псевдоним_1 – имя, которое станет заголовком столбца

Минимальный синтаксис команды SELECT:

SELECT * FROM таблица – выборка всех полей указанной таблиц.

SELECT поле (список полей) FROM таблица

Использование псевдонимов:

SELECT fam as [фамилия], name as[имя], dr as [дата_рождения] FROM Sotr

В команде SELECT в списке полей могут быть выражения, представляющие новые вычисляемые поля: Select фамилия, имя, Year(now()) – Yaer([дата_рождения]) From Таблица

В команде SELECT в списке полей могут быть выражение: комбинации имен полей, констант, встроенных функций и операторов.

Виды операторов:

Арифметические: + - * /

Сравнительные = >= <= <>

Логические OR AND NOT

Строковые + & конкатенация

Вспомогательные IN Between Like

SELECT gr as [группа], COUNT(number) as [количество] FROM Students group by gr – в результате получим список групп и количество студентов в каждой группе.

Так же при создании запросов на выборку можно использовать предикаты такие как TOP и DISTINCT.

Select DISTINCT right(left(группа,3),1) as [курс] from студенты – выбираем группы избегая повторений.

SELECT TOP 1 * FROM Students where пол=”м” ORDER BY номер DESC – выбираем последнего студента (м) из таблицу студенты, отсортированной по номеру.

С помощью команды SELECT можно соединить пару таблиц.

SELECT список полей FROM таблица 1 {INNER (классическое симметричное соединение)\LEFT \ RIGHT} JOIN таблица 2 ON таблица1.поле1=таблица2.поле2

Вывести фамилии и названия специальности.

Студенты (номер, фамилия, группа, код-спец)

Специальности (код-спец, название)

SELECT студенты INNER JOIN специальности ON студенты.код-спец=специальности.код-спец

  1. Назначение предикатов distinct и top в операторе select.

SELECT DISTINCT список полу FROM таблица

Предикат DISTINCT используется для устранения строк-дубликатов в операторе select.

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

Если не использовать предикат DISTINCT мы получим 33 группы И-404, вместо одной группы И-404.

Select DISTINCT №группы from студенты

SELECT TOP n список полей FROM таблица

Предикат TOP позволяет выбрать первые n отсортированных записей.

SELECT TOP 5 fam FROM Students – выбирает первые 5 фамилий, отсортированных в алфавитном порядке.

  1. Сортировка записей в операторе select.

В формальном описании команды Select в самом конце указывается ORDER BY

Select fam from students ORDER BY fam DESC

Будет выведен список фамилий в обратном алфавитному порядке.

Вариант сортировки задается с помощью выражений:

DESC – по убыванию/ в обратном алфавитному порядке

ASC – по возрастанию/в алфавитном порядке. Используется по умолчанию, специально указывать не нужно!