Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 241

.pdf
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
675.96 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Воронежский государственный технический университет»

Кафедра информационных технологий и автоматизированного проектирования в строительстве

146-2017

Основы языка Transact-SQL

Методические указания

к выполнению лабораторных работ для студентов бакалавриата направлений

09.03.02«Информационные системы и технологии»,

09.03.03«Прикладная информатика»

Воронеж 2017

УДК 004.6 ББК 32.973.26

Составители: Ошивалов А.В., Курипта О.В.

Основы языка Transact-SQL: методические указания к выполнению лабораторных работ для студентов бакалавриата направлений 09.03.02 «Информационные системы и технологии», 09.03.03 «Прикладная информатика» / ВГТУ; сост.: А.В. Ошивалов, О.В. Курипта. – Воронеж,

2017. – 49 с.

Даны рекомендации и последовательность выполнения лабораторных работ студентами по всем разделам курса «Базы данных»: теоретические положения, порядок проведения.

Предназначены для студентов бакалавриата направления 09.03.03 «Прикладная информатика» и направления 09.03.02 «Информационные системы и технологии» всех форм обучения.

Ил.3. Библиогр. 9 назв.

УДК 004.6 ББК 32.973.26

Печатается по решению учебно-методического совета ВГТУ

Рецензент – Т.В. Волобуева, к. ф-м. н., доцент кафедры информатики и графики ВГТУ

© ФГБОУ ВО «Воронежский государственный технический университет», 2017

ВВЕДЕНИЕ

В методических указаниях изложены рекомендации по выполнению лабораторных работ для бакалавров 2-го курса по дисциплине «Базы данных», входящей в вариативную часть цикла обязательных дисциплин направления 09.03.02 «Информационные системы и технологии», бакалавров второго и третьего курса по дисциплине «Базы данных», входящей в базовую часть цикла дисциплин направления 09.03.03 «Прикладная информатика».

Методические указания состоят из теоретических сведений и практических работ, в каждой из которых описана последовательность действий для выполнения соответствующей темы.

Согласно Дейту реляционная модель состоит из трех частей:

Структурной части. Целостной части.

Манипуляционной части, которая рассматривается в данных методических указаниях.

Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными – реляционную алгебру и реляционное исчисление.

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

Манипуляционная часть модели данных содержит спецификацию одного или нескольких языков, предназначенных для написания запросов к БД. В данных методических рекомендациях рассматривается один из диалектов такого языка – Transact SQL.

1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.1. Этапы разработки базы данных

Целью разработки любой базы данных является хранение и использование информации о какой-либо предметной области. Для реализации этой цели имеются следующие инструменты:

Реляционная модель данных - удобный способ представления данных предметной области.

Язык SQL - универсальный способ манипулирования такими данными.

1.2.Язык SQL

SQL (Structured Query Language – язык структуриро-

ванных запросов) – реляционно полный язык, являющийся фактическим стандартом для многих других языков баз данных.

Язык SQL предназначен для манипулирования данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде.

В язык SQL в качестве составных частей входят:

язык манипулирования данными (Data Manipulation Language, DML)

язык определения данных (Data Definition Language, DDL)

язык управления данными (Data Control

Language, DCL).

Это не отдельные языки, а различные команды одного языка. Такое деление проведено только лишь с точки зрения различного функционального назначения этих команд.

Язык SQL является основным средством для работы с данными в СУБД.

Одной из распространенных на рынке СУБД явля- 2

ется Microsoft SQL Server. Microsoft SQL Server — система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия.

1.3. Типы данных Transact-SQL decimal и numeric

Типы числовых данных с фиксированными точностью и масштабом.

decimal [ (p[ ,s] )] и numeric[ (p[ ,s] )]

Числа с фиксированной точностью и масштабом. При использовании максимальной точности числа могут принимать значения в диапазоне от -10^38+1 до 10^38-1. Numeric функционально эквивалентно decimal.

p (точность)

Максимальное количество десятичных разрядов числа (как слева, так и справа от десятичной запятой), которые будут храниться. Точность должна быть значением в диапазоне от 1 до 38. Точность по умолчанию составляет 18.

s (масштаб)

Максимальное количество хранимых десятичных разрядов числа справа от десятичной запятой. Это число отнимается от p для определения максимального количества цифр слева от десятичной запятой. Масштаб может принимать значение от 0 до p. Масштаб может быть указан только совместно с точностью. По умолчанию масштаб принимает значение 0; поэтому 0 <= s <= p. Максимальный размер хранилища зависит от точности.

3

bit

Целочисленный тип данных, который может принимать значения 1, 0 или NULL.

money и smallmoney

Типы данных, представляющие денежные (валютные) значения.

Типы данных money и smallmoney имеют точность до одной десятитысячной денежной единицы, которую они представляют.

float и real

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

float [ (n) ]

n — это количество битов, используемых для хранения мантиссы числа в формате float при экспоненциальном представлении. Определяет точность данных и размер для хранения. Значение параметра n должно лежать в пределах от 1 до 53.Значением по умолчанию для параметра n является 53.

Дата-время

Тип данных

Формат строкового литерала

 

 

time

чч:мм:сс[. ннннннн]

 

 

date

ГГГГ-ММ-ДД

 

 

datetime2

ГГГГ-ММ-ДД

чч:мм:сс[. ннннннн]

 

 

 

datetimeoffset

ГГГГ-ММ-ДД

чч:мм:сс[. ннннннн] [+|-]чч:мм

 

 

 

 

4

char и varchar

Являются символьными типами данных фиксированной или переменной длины.

char [ ( n ) ]

Строковые данные фиксированной длины не в Юникоде. Аргумент n определяет длину строки и должен иметь значение от 1 до 8000. Размер при хранении составляет n байт.

varchar [ ( n | max ) ]

Строковые данные переменной длины не в Юникоде. Аргумент n определяет длину строки и должен иметь значение от 1 до 8000. Значение max указывает, что максимальный размер при хранении составляет 2^31-1 байт.

nchar и nvarchar

Символьные типы данных, имеющие постоянную длину, nchar, или переменную длину, nvarchar, содержащие данные в Юникоде.

nchar [ ( n ) ]

Строковые данные постоянной длины в Юникоде. Параметр n определяет длину строки и должен иметь значение от 1 до 4000. Размер при хранении составляет удвоенное значение n в байтах.

nvarchar [ ( n | max ) ]

Строковые данные переменной длины в Юникоде. Параметр n определяет длину строки и должен иметь значение от 1 до 4000. Значение max указывает, что максимальный размер при хранении составляет 2^31-1 байт (2 ГБ).

1.4.Язык манипулирования данными

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

5

Выборка данных (операция SELECT)

SELECT [ALL | DISTINCT] [TOP n] select_list [FROM {table_name | view_name}]

[[, {table_name2 | view_name2} [..., {table_name16 | view_name16}]]

[WHERE clause] [GROUP BY clause] [HAVING clause] [ORDER BY clause]

Производит выборку данных из БД.

ALL – в выборку попадают все записи из указанных таблиц.

DISTINCT – в выборку попадают только уникальные записи из указанных таблиц.

TOP n – в выборку попадают n первых записей. select_list – перечень полей, значений или знак «*»,

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

WHERE – задает условие отбора записей.

GROUP BY – перечень полей для группировки значений.

HAVING – задает условие отбора записей после группировки.

ORDER BY – перечень полей, по которым будет осуществляться сортировка записей.

Групповые операции

AVG(поле)

– вычисляет среднее значение в ука-

занном поле в группе

 

COUNT(*)

вычисляет общее количество запи-

сей в группе

 

 

COUNT(поле)

– вычисляет количество записей

в группе без учета записей, в который в указанном поле

6

имеется значение NULL

MIN(поле) – вычисляет минимальное значение поля в группе

MAX(поле) – вычисляет максимальное значение поля в группе

SUM(поле) – вычисляет сумму значений поля в

группе

Условия отбора

{WHERE | HAVING} [NOT] логическое_выражение {AND | OR} логическое_выражение – в выборку попадают только записи, удовлетворяющие логическому выражению. Логическое_выражение – выражение, состоящее из поля, оператора сравнения (<,>,<=,>=,<>) и значения либо из нижеприведенных выражений.

{WHERE | HAVING} [NOT] поле IS [NOT] NULL –

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

{WHERE | HAVING} [NOT] EXISTS (подзапрос) – в

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

{WHERE | HAVING} [NOT] поле [NOT] BETWEEN

значение1 AND значение2 – в выборку попадают только записи, значение указанного поля в которых находится в диапазоне от значение 1 до значение2.

{WHERE | HAVING} [NOT] поле [NOT] IN

(список_значений | подзапрос) – в выборку попадают только записи, значение указанного поля в которых находится в указанном списке либо в списке, возвращаемом подзапросом.

{WHERE | HAVING} [NOT] поле [NOT] LIKE

'паттерн' – в выборку попадают только записи, значение указанного поля в которых соответствуют указанному паттерну. Паттерн – строковое выражение, содержащее часть искомой строки и/или символы ? (задает один любой

7

символ) и % (задает любое количество любых символов).

{WHERE | HAVING} [NOT] поле оператор_сравнения {ANY | ALL} (подзапрос) – в выборку попадают только записи, значение указанного поля в которых возвращают истину при использовании указанного оператора сравнения хотя бы с одним (ANY) или с каждым (ALL) значением, возвращаемым подзапросом.

Выборка данных из нескольких таблиц

SELECT select_list

[FROM {table_name | view_name}]

[[, {table_name2 | view_name2} [..., {table_name16 | view_name16}]]

[INNER|RIGHT|LEFT JOIN table_name | view_name ON (условие_объединения)]

INNER JOIN – в выборку попадают только те записи из двух таблиц, которые удовлетворяют условию объединения.

RIGHT JOIN – в выборку попадают все записи из правой таблицы и только те записи из левой, которые удовлетворяют условию объединения.

LEFT JOIN – в выборку попадают все записи из левой таблицы и только те записи из правой, которые удовлетворяют условию объединения.

Объединение нескольких запросов

SELECT select_list

[FROM {table_name | view_name}] [[, {table_name2 | view_name2}

[..., {table_name16 | view_name16}]] UNION [ALL]

SELECT select_list

[FROM {table_name | view_name}] [[, {table_name2 | view_name2}

[..., {table_name16 | view_name16}]]

8