Лабораторная работа: Знакомства с MS SQL Server

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

В предложении SELECT указывается список столбцов, которые должны быть возвра- щены запросом. Можно указать исходные элементы или вычисляемые поля во время выпол- нения запроса.

Конструкция DISTINCT | ALL исключает / разрешает вывод повторяющихся строк.

Конструкция ALL используется по умолчанию.

* означает вывод всех столбцов указанной таблицы. В случае, если выборка произво- дится из нескольких таблиц, перед символом звездочки может указываться имя таблицы.

SQL-запрос может содержать вычисляемые столбцы, значения которых могут опреде- лятся на основе значений данных, хранящихся в БД конструкции. Вычисляемым столбцам следует давать название с помощью ключевого слова AS.

Вычисляемый столбец можно создать как: <Новое поле> = <выражение>

Если название столбца состоит из нескольких слов, разделенных пробелами, следует их записать в квадратных скобках: [].

Сортировка данных выполняется с помощью команды ORDER BY, которая добавля- ется в конец запроса, после чего перечисляется список столбцов. Для каждого столбца указы- вается тип сортировки ASC | DESC (ascending - по возрастанию | descending - по убыванию). ASC - по умолчанию, можно не указывать.

Конструкция TOP <N> позволяет выбрать определенное количество строк из таблицы. Дополнительный оператор PERCENT позволяет выбрать процентное количество строк из таб- лицы. Дополнительный оператор WITH TIES позволяет выбрать все строки с такими же свой- ствами.

Конструкция OFFSET <N> ROWS указывает число строк, которые необходимо пропу- стить, прежде чем будет начат возврат строк из выражения запроса.

Конструкция FETCH NEXT <N> ROWS ONLY указывает число строк, возвращаемых после обработки предложения OFFSET.

На языке T-SQL регистр не имеет значение (case insensitive).

Практическая часть

Дана таблица Академики:

ФИО

Дата_рождения

Специализация

Год_присвоения_

звания

Аничков Николай Николаевич

1885-11-03

медицина

1939

Бартольд Василий Владимирович

1869-11-15

историк

1913

Белопольский Аристарх Аполлонович

1854-07-13

астрофизик

1903

Бородин Иван Парфеньевич

1847-01-30

ботаник

1902

Вальден Павел Иванович

1863-07-26

химик-технолог

1910

Вернадский Владимир Иванович

1863-03-12

геохимик

1908

Виноградов Павел Гаврилович

1854-11-30

историк

1914

Ипатьев Владимир Николаевич

1867-11-21

химик

1916

ФИО

Дата_рождения

Специализация

Год_присвоения_

звания

Истрин Василий Михайлович

1865-02-22

филолог

1907

Карпинский Александр Петрович

1847-01-07

геолог

1889

Коковцов Павел Константинович

1861-07-01

историк

1906

Курнаков Николай Семёнович

1860-12-06

химик

1913

Марр Николай Яковлевич

1865-01-06

лингвист

1912

Насонов Николай Викторович

1855-02-26

зоолог

1906

Ольденбург Сергей Фёдорович

1863-09-26

историк

1903

Павлов Иван Петрович

1849-09-26

физиолог

1907

Перетц Владимир Николаевич

1870-01-31

филолог

1914

Соболевский Алексей Иванович

1857-01-07

лингвист

1900

Стеклов Владимир Андреевич

1864-01-09

математик

1912

Пример 1: Вывести список академиков: SELECT

FROM

Академики

Пример 2: Вывести ФИО и дату рождения всех академиков: SELECT

ФИО, Дата_рождения

FROM

Академики

Пример 3: Создайте вычисляемое поле «Информация», содержащее информацию об академиках в таком виде: «Академик Петров Петр Петрович, специализация: математика»:

SELECT

'Академик ' + ФИО + ', специализация: ' + Специализация AS Информация

FROM

Академики

Пример 4: Вывести ФИО академиков и номер следующего года после присвоения звания: SELECT

ФИО

,[Через год] = Год_присвоения_звания + 1

FROM

Академики

Пример 5: Выведите список специализаций, убрав дубликаты: SELECT DISTINCT

Специализация

FROM

Академики

Пример 6: Вывести список академиков, отсортированный по возрастанию года присво- ения звания:

SELECT

FROM

Академики

ORDER BY

Год_присвоения_звания

Пример 7: Вывести список академиков, отсортированный в обратном алфавитном по- рядке по полю «Специализация» и в алфавитном порядке по полю «ФИО»:

SELECT

FROM

Академики

ORDER BY

Специализация DESC

,ФИО ASC

Пример 8: Вывести первые две строки из списка академиков, отсортированного в ал- фавитном порядке по полю «ФИО»:

SELECT TOP 2

FROM

Академики

ORDER BY

ФИО ASC

Пример 9: Вывести первые 30% строк из списка академиков, отсортированного по воз- растанию года присвоения звания:

SELECT TOP 30 PERCENT

FROM

Академики

ORDER BY

Год_присвоения_звания

Пример 10: Вывести из таблицы «Академики», отсортированной по возрастанию года присвоения звания, список академиков, у которых год присвоения звания - один из первых четырех в отсортированной таблице:

SELECT TOP 4 WITH TIES

FROM

Академики

ORDER BY

Год_присвоения_звания

Пример 11: Вывести, начиная с третьего, список академиков, отсортированный в алфа- витном порядке ФИО:

SELECT

FROM

Академики

ORDER BY

ФИО

OFFSET 2 ROWS

Пример 12: Вывести, начиная с третьего и до десятого, список академиков, отсортиро- ванный в алфавитном порядке ФИО:

SELECT

FROM

Академики

ORDER BY

ФИО

OFFSET 2 ROWS

FETCH NEXT 8 ROWS ONLY

Задание

Вывести ФИО, специализацию и дату рождения всех академиков.

Создать вычисляемое поле «О присвоении звания», которое содержит информацию об академиках в виде: «Петров Петр Петрович получил звание в 1974».

Вывести ФИО академиков и вычисляемое поле «Через 5 лет после присвоения звания».

Вывести список годов присвоения званий, убрав дубликаты.

Вывести список академиков, отсортированный по убыванию даты рождения.

Вывести список академиков, отсортированный в обратном алфавитном порядке специализаций, по убыванию года присвоения звания, и в алфавитном порядке ФИО.

Вывести первую строку из списка академиков, отсортированного в обратном ал- фавитном порядке ФИО.

Вывести фамилию академика, который раньше всех получил звание.

Вывести первые 10% строк из списка академиков, отсортированного в алфавитном порядке ФИО.

Вывести из таблицы «Академики», отсортированной по возрастанию года присво- ения звания, список академиков, у которых год присвоения звания - один из первых пяти в отсортированной таблице.

Вывести, начиная с десятого, список академиков, отсортированный по возраста- нию даты рождения.

Вывести девятую и десятую строку из списка академиков, отсортированного в ал- фавитном порядке ФИО.

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

Фильтрация данных

Цель работы

Изучение основ фильтрации данных.

Изучение операций сравнения.

Изучение логических операторов.

Изучение BETWEEN.

Изучение LIKE.

Изучение NULL.

Изучение IN.

Теоретическая часть

Для фильтрации данных применяется оператор WHERE. Синтаксис: WHERE <усло- вие>. В условиях поле таблицы сравнивается с константой или с выражением. Символьные константы пишутся в одинарных кавычках. Числовые константы и названия столбцов пишутся без кавычек.

Чтобы строка попала в результат, условие должно быть истинно. В условиях использу- ются операции сравнения. В Transact-SQL применяются следующие операции сравнения:

= - равенство; <> или != - неравенство;

< - меньше; > - больше;

!< - не меньше; !> - не больше;

<= - меньше или равно;

>= - больше или равно.

Можно использовать несколько условий для фильтрации данных. Для объединения их в одно выражение используются логические операторы. В Transact-SQL применяются следу- ющие логические операторы:

AND - логическое умножение или конъюнкция (И). Бинарный оператор, объединяет два условия; если оба условия истинны, результат - истина, иначе - ложь.

OR - логическое сложение или дизъюнкция (ИЛИ). Бинарный оператор, объединяет два условия; если хотя бы одно из этих условий истинно, то общее условие оператора OR также будет истинно.

NOT - логическое отрицание или инверсия (НЕ). Унарный оператор, применяется к одному условию. Если выражение в этой операции ложно, то общее условие истинно.

Самый высокий приоритет у оператора NOT. Самый низкий - у OR. Если эти опера- торы встречаются в одном выражении, то сначала выполняется NOT, потом AND, а затем OR. При записи условий использование скобок - хороший тон программирования.

Оператор BETWEEN используется для сравнения с диапазоном от начального и до ко- нечного значения. Начальное и конечное значения включены в промежуток.

Оператор LIKE используется для сравнения с шаблоном строки. Для определения шаб- лона применяются специальные символы:

% - любая последовательность символов, в том числе пустая;

_ - любой символ;

[ ] - символ, который указан в квадратных скобках; [ - ] - символ из определенного диапазона;

[ ^ ] - символ, который не указан после символа ^.

В базах данных, для обозначения неизвестного значения, используется понятие NULL. Для проверки неизвестного значения нельзя использовать операторы сравнения. Допускается только IS NULL или IS NOT NULL.

Оператор IN используется для сравнения с набором значений. Список значений указы- вается в скобках.

Практическая часть

Дана таблица Страны:

Таблица

Название

Столица

Площадь

Население

Континент

Австрия

Вена

83858

8741753

Европа

Азербайджан

Баку

86600

9705600

Азия

Албания

Тирана

28748

2866026

Европа

Алжир

Алжир

2381740

39813722

Африка

Ангола

Луанда

1246700

25831000

Африка

Аргентина

Буэнос-Айрес

2766890

43847000

Южная Америка

Афганистан

Кабул

647500

29822848

Азия

Бангладеш

Дакка

144000

160221000

Азия

Бахрейн

Манама

701

1397000

Азия

Белиз

Бельмопан

22966

377968

Северная Америка

Белоруссия

Минск

207595

9498400

Европа

Бельгия

Брюссель

30528

11250585

Европа

Бенин

Порто-Ново

112620

11167000

Африка

Болгария

София

110910

7153784

Европа

Боливия

Сукре

1098580

10985059

Южная Америка

Ботсвана

Габороне

600370

2209208

Африка

Название

Столица

Площадь

Население

Континент

Бразилия

Бразилиа

8511965

206081432

Южная Америка

Буркина-Фасо

Уагадугу

274200

19034397

Африка

Бутан

Тхимпху

47000

784000

Азия

Великобритания

Лондон

244820

65341183

Европа

Венгрия

Будапешт

93030

9830485

Европа

Венесуэла

Каракас

912050

31028637

Южная Америка

Восточный Тимор

Дили

14874

1167242

Азия

Вьетнам

Ханой

329560

91713300

Азия

Источник: https://otherreferats.allbest.ru/download/1383510/