Лекция 3. Общие сведения о Transact-SQL.ppt
- Количество слайдов: 66
Общие сведения о Transact-SQL Лекция 3
План лекции Типы данных n Переменные в Transact-SQL n Управляющие конструкции Transact-SQL n Функции Transact-SQL n Базы данных на основе Microsoft SQL Server 2008. Лекция 3 2
Типы данных Базы данных на основе Microsoft SQL Server 2008. Лекция 3 3
Типы данных MS SQL Server поддерживает все основные простые типы данных, используемые в современных языках программирования n В версии MS SQL Server 2008 были добавлены несколько новых типов, а некоторые перестали рекомендоваться к использованию n Базы данных на основе Microsoft SQL Server 2008. Лекция 3 4
Типы данных 1. Целые числа: n Bit (1 байт) ¨ один бит (SQL Server Database Engine оптимизирует хранение столбцов типа bit. Если в таблице имеется 8 или меньше столбцов типа bit, они хранятся как 1 байт. Если имеется от 9 до 16 столбцов типа bit, они хранятся как 2 байта и т. д. ) n Bigint (8 байт) ¨ диапазон [– 263. . 263– 1] n Int (4 байта) ¨ диапазон [– 2 147 483 648. . 2 147 483 647] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 5
Типы данных 1. Целые числа: n Small. Int (2 байта) ¨ диапазон [– 32768. . 32767] n Tiny. Int (1 байт) ¨ диапазон [0. . 255] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 6
Типы данных 2. Числа с фиксированной запятой: n Decimal или Numeric ¨ диапазон [– 1038– 1. . 1038– 1] n Money (8 байт) – денежный формат ¨ диапазон [– 263. . 263] n Small. Money (4 байта) – денежный формат ¨ диапазон [– 214748, 3648. . +214748, 3647] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 7
Типы данных 3. Числа с плавающей запятой: n Float ¨ диапазон [– 1, 79 E + 308. . 1, 79 E + 308] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 8
Типы данных 4. Дата и время: n Date. Time (8 байт) ¨ диапазон [01. 1753 г. . . 31. 12. 9999 г. ] ¨ точность до трех сотых секунды n Date. Time 2 (6 -8 байт) ¨ новый тип данных ¨ точность до 0, 1 миллисекунды Базы данных на основе Microsoft SQL Server 2008. Лекция 3 9
Типы данных 4. Дата и время: n Small. Date. Time (4 байта) ¨ диапазон [01. 1900 г. . . 6. 06. 2079] ¨ точность одна минута n Date. Time. Offset (8 -10 байт) ¨ Аналогичен типу Date. Time, но хранит ещё сдвиг относительно времени UTC Базы данных на основе Microsoft SQL Server 2008. Лекция 3 10
Типы данных 4. Дата и время: n Date (3 байта) ¨ хранит только дату ¨ диапазон [01. 0001 г. . . 31. 12. 9999 г. ] n Time (3 -5 байт) ¨ хранит только время ¨ точность до 0, 1 миллисекунды Базы данных на основе Microsoft SQL Server 2008. Лекция 3 11
Типы данных 5. Символьные строки: n Char – строка фиксированной длины ¨ Максимальная длина строки 8000 символов n Var. Char – строка переменной длины ¨ Максимальная длина строки 8000, но при использовании ключевого слова ‘‘max’’ может хранить до 231 байт Базы данных на основе Microsoft SQL Server 2008. Лекция 3 12
Типы данных 5. Символьные строки: n Text – применялся для хранения больших строк, сейчас рекомендуется использование varchar(max) ¨ Оставлен для обратной совместимости. n Nchar – строка фиксированной длины в Юникоде ¨ максимальная длина строки 4000 символов Базы данных на основе Microsoft SQL Server 2008. Лекция 3 13
Типы данных 5. Символьные строки: n Nvar. Char – строка переменной длины в Юникоде ¨ Максимальная длина строки 4000 символов, но при использовании ключевого слова ‘‘max’’ может хранить до 231 байт. n Ntext – аналогичен типу text, но предназначен для работы с Юникод Базы данных на основе Microsoft SQL Server 2008. Лекция 3 14
Типы данных 6. Двоичные данные: n Binary – позволяет хранить двоичные данные размером до 8000 байт n Var. Binary – тип данных переменной длины, позволяет хранить до 8000 байт, но при использовании ключевого слова ‘‘max’’ до 231 байт Базы данных на основе Microsoft SQL Server 2008. Лекция 3 15
Типы данных 6. Двоичные данные: n Image – использовался для хранения больших объемов данных, сейчас рекомендуется использовать varbinary(max) ¨ Оставлен для обратной совместимости Базы данных на основе Microsoft SQL Server 2008. Лекция 3 16
Типы данных 7. Прочие типы данных: n Table – особый тип данных, используемый в основном для временного хранения таблиц и для передачи в качестве параметра в функции n Hierarchy. ID – используется для представления положения в иерархической структуре Базы данных на основе Microsoft SQL Server 2008. Лекция 3 17
Типы данных 7. Прочие типы данных: n Sql_variant – тип данных, хранящий значения различных типов данных, поддерживаемых MS SQL Server. n XML – позволяет хранить XML-данные Базы данных на основе Microsoft SQL Server 2008. Лекция 3 18
Типы данных 7. Прочие типы данных: n Cursor (1 байт) – тип данных для переменных или выходных параметров хранимых процедур, которые содержат ссылку на курсор Базы данных на основе Microsoft SQL Server 2008. Лекция 3 19
Типы данных 7. Прочие типы данных: n Timestamp/ rowversion (8 байт) – это тип данных, который представляет собой автоматически сформированные уникальные двоичные числа в БД ¨ Значение данного типа генерируется БД автоматически при вставке или изменении записи Базы данных на основе Microsoft SQL Server 2008. Лекция 3 20
Типы данных 7. Прочие типы данных: n Unique. Identifier (16 байт) – представляет собой GUID (Special Globally Unique Identifier) ¨ Гарантируется уникальность данного значения Базы данных на основе Microsoft SQL Server 2008. Лекция 3 21
Переменные в Transact-SQL Базы данных на основе Microsoft SQL Server 2008. Лекция 3 22
Переменные в Transact-SQL Любой объект базы данных должен обладать уникальным именем внутри этой базы n Имена объектов называются идентификаторами n Базы данных на основе Microsoft SQL Server 2008. Лекция 3 23
Переменные в Transact-SQL Правила именования объектов: n первый символ: A-Z, a-z, @, #, _ n длина имени не более 128 символов, (для временных объектов – 116) n внутри имени запрещаются пробелы, скобок и символы: ~, !, %, ^, & Базы данных на основе Microsoft SQL Server 2008. Лекция 3 24
Переменные в Transact-SQL Правила именования объектов: n имя объекта не должно совпадать с зарезервированным словом и с именем уже существующего объекта n если имя объекта содержит пробелы или совпадает с зарезервированным словом, то его необходимо поместить внутрь квадратных скобок [ ] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 25
Переменные в Transact-SQL Имена локальных переменных должны удовлетворять правилам именования объектов и всегда должны начинаться с символа @ n Область действия переменной ограничена пакетом операторов или процедурой, в которой она была объявлена n Базы данных на основе Microsoft SQL Server 2008. Лекция 3 26
Переменные в Transact-SQL n Объявление переменной DECLARE @Имя. Переменной Тип. Данных[ , …n] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 27
Переменные в Transact-SQL n Пример объявления одной переменной: DECLARE @sum int n Пример объявления нескольких переменных: DECLARE @temp int, @count float Базы данных на основе Microsoft SQL Server 2008. Лекция 3 28
Переменные в Transact-SQL n Присвоение значения SET @Имя. Переменной = Выражение n Пример: SET @sum = 0 Базы данных на основе Microsoft SQL Server 2008. Лекция 3 29
Переменные в Transact-SQL В версии MS SQL Server 2008 появились следующие нововведения: n Инициализировать переменную стало можно сразу при объявлении: DECLARE @i. Counter int = 0 n Появились операторы +=, –=, *=, /= для краткой формы записи арифметических конструкций Базы данных на основе Microsoft SQL Server 2008. Лекция 3 30
Управляющие конструкции Transact-SQL Базы данных на основе Microsoft SQL Server 2008. Лекция 3 31
Управляющие конструкции Transact-SQL n Группировка двух и более команд в единый блок осуществляется с помощью конструкции: BEGIN … END Базы данных на основе Microsoft SQL Server 2008. Лекция 3 32
Управляющие конструкции Transact-SQL n Конструкция ветвления IF условие Оператор [ELSE Оператор ] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 33
Управляющие конструкции Transact-SQL Конструкция выбора CASE 1. CASE <input expression> WHEN <when expression> THEN <result expression> [. . . n] [ELSE <result expression>] END n Базы данных на основе Microsoft SQL Server 2008. Лекция 3 34
Управляющие конструкции Transact-SQL Конструкция выбора CASE 2. CASE WHEN <Boolean expression> THEN <result expression> [. . . n] [ELSE <result expression>] END n Базы данных на основе Microsoft SQL Server 2008. Лекция 3 35
Управляющие конструкции Transact-SQL n Циклическая конструкция WHILE условие Оператор [BREAK | CONTINUE] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 36
Управляющие конструкции Transact-SQL n Конструкция WAITFOR ¨ откладывает выполнение команды WAITFOR DELAY <’time’> | TIME <’time’> Базы данных на основе Microsoft SQL Server 2008. Лекция 3 37
Управляющие конструкции Transact-SQL n Обработка исключительных ситуаций BEGIN TRY { <sql statement(s)> } END TRY BEGIN CATCH { <sql statement(s)> } END CATCH [ ; ] Базы данных на основе Microsoft SQL Server 2008. Лекция 3 38
Управляющие конструкции Transact-SQL Уровни ошибок: n 1– 10: информационные сообщения ¨ функция @@ERROR 11– 19: относительно серьезные ошибки n 20– 25: очень серьезные ошибки n ¨ ошибки на уровне системы ¨ разрывают текущее соединение Базы данных на основе Microsoft SQL Server 2008. Лекция 3 39
Управляющие конструкции Transact-SQL Комментарии: n однострочные – в этом случае игнорируется текст справа от символов комментария: -- (двойной дефис) n многострочные – игнорируется текст, записанный между двумя парами символов: /* … */ Базы данных на основе Microsoft SQL Server 2008. Лекция 3 40
Функции Transact-SQL Базы данных на основе Microsoft SQL Server 2008. Лекция 3 41
Функции Transact-SQL Встроенные функции MS SQL Server: n функции наборов записей n агрегатные функции n скалярные функции Базы данных на основе Microsoft SQL Server 2008. Лекция 3 42
Функции Transact-SQL Типы скалярных функций: n математические функции n строковые функции n функции для работы с датами n конфигурационные функции n системные функции Базы данных на основе Microsoft SQL Server 2008. Лекция 3 43
Функции Transact-SQL Математические функции: n Abs (выражение) – модуль выражения n Is. Numeric (выражение) – проверка, имеет ли указанное выражение числовой тип данных n Rand () – возвращает случайное значение на основе системного времени в диапазоне от 0 до 1 Базы данных на основе Microsoft SQL Server 2008. Лекция 3 44
Функции Transact-SQL Математические функции: n Floor (выражение) – округление указанного значения до ближайшего минимального целого числа n Ceiling (выражение) – возвращает ближайшее целое число, большее или равное данному Базы данных на основе Microsoft SQL Server 2008. Лекция 3 45
Функции Transact-SQL Математические функции: n Power (выражение, степень) – возведение в степень выражения n Sqrt (выражение) – вычисляет квадратный корень Базы данных на основе Microsoft SQL Server 2008. Лекция 3 46
Функции Transact-SQL Строковые функции: n Ascii (строка) – возвращает ASCII-код самого левого символа строки n Char (выражение) – возвращает символ, ASCII-код которого соответствует указанному числовому выражению Базы данных на основе Microsoft SQL Server 2008. Лекция 3 47
Функции Transact-SQL Строковые функции: n Len (строка) – вычисляет длину строки в символах n LTrim (строка), RTrim (строка) – удаляет начальные и концевые пробелы соответственно Базы данных на основе Microsoft SQL Server 2008. Лекция 3 48
Функции Transact-SQL Строковые функции: n Left (строка, число), Right (строка, число) – возвращает указанное количество символов строки, начиная с левого и правого края строки соответственно Базы данных на основе Microsoft SQL Server 2008. Лекция 3 49
Функции Transact-SQL Строковые функции: n Sub. String (строка, начало, длина) – возвращает для строки подстроку указанной длины, начиная с указанного символа Базы данных на основе Microsoft SQL Server 2008. Лекция 3 50
Функции Transact-SQL Строковые функции: n Char. Index (строка 1, строка 2 [, старт]) – поиск подстроки строка 1 в строке строка 2 Возвращает порядковый номер первого символа, с которого начинается первое вхождение подстроки в строку Базы данных на основе Microsoft SQL Server 2008. Лекция 3 51
Функции Transact-SQL Строковые функции: n Stuff (строка 1, начало, длина, строка 2) – удаляет определенное количество символов строки, начиная с указанного, и заменяет их новой подстрокой Базы данных на основе Microsoft SQL Server 2008. Лекция 3 52
Функции Transact-SQL Строковые функции: n Replace (строка 1, строка 2, строка 3) – заменяет все вхождения строки строка 2 в исходной строке строка 1 на строка 3 Базы данных на основе Microsoft SQL Server 2008. Лекция 3 53
Функции Transact-SQL Строковые функции: n Reverse (строка) – возвращает строку, символы которой записаны в обратном порядке по отношению к исходной строке Базы данных на основе Microsoft SQL Server 2008. Лекция 3 54
Функции Transact-SQL Функции для работы с датами: n Get. Date () – возвращает текущее системное время n Is. Date (выражение) – проверяет правильность выражения на соответствие одному из возможных форматов ввода даты Базы данных на основе Microsoft SQL Server 2008. Лекция 3 55
Функции Transact-SQL Функции для работы с датами: n Day (дата), Month(дата), Year(дата) – возвращают день, месяц и год из указанной даты Базы данных на основе Microsoft SQL Server 2008. Лекция 3 56
Функции Transact-SQL Функции для работы с датами: n Date. Name (тип, дата) – выделяет из даты указанную в типе часть и возвращает ее в символьном формате: ¨ yy или yyyy – год, qq или q – квартал, mm или m – месяц, dd или d – день, wk или ww – неделя, hh – час, mi или m – минута, ss или s – секунда, ms – миллисекунда Базы данных на основе Microsoft SQL Server 2008. Лекция 3 57
Функции Transact-SQL Функции для работы с датами: n Date. Part (тип, дата) – выделяет из даты указанную часть и возвращает ее в числовом формате. n Date. Add (тип, число, дата) – добавляет к указанной дате число, тип которого указан в первом параметре Базы данных на основе Microsoft SQL Server 2008. Лекция 3 58
Функции Transact-SQL Функции для работы с датами: n Date. Diff (тип, начало, окончание) – возвращает разницу между указанными частями дат в указанном типе Базы данных на основе Microsoft SQL Server 2008. Лекция 3 59
Функции Transact-SQL Конфигурационные функции: n @@Version – возвращает информацию о дате, версии и типе процессора сервера n @@Server. Name – символьное имя локального SQL-Server Базы данных на основе Microsoft SQL Server 2008. Лекция 3 60
Функции Transact-SQL Конфигурационные функции: n @@Max_Connections – максимально разрешенное количество одновременных подключений к серверу Базы данных на основе Microsoft SQL Server 2008. Лекция 3 61
Функции Transact-SQL Системные функции: n Data. Length(выражение) – возвращает число, соответствующее количеству байт, необходимых для хранения результата выражения n @@Error – код последней ошибки, произошедшей в текущем соединении. Если ошибок нет, результат 0 Базы данных на основе Microsoft SQL Server 2008. Лекция 3 62
Функции Transact-SQL Системные функции: n Host_Name() – символьное имя компьютера в сети, на котором выполняется команда Базы данных на основе Microsoft SQL Server 2008. Лекция 3 63
Функции Transact-SQL Системные функции: n System_User и Session_User – возвращают соответственно имя учетной записи пользователя для входа и имя пользователя текущей базы данных Базы данных на основе Microsoft SQL Server 2008. Лекция 3 64
Функции Transact-SQL Системные функции: n @@IDLE – определяет количество миллисекунд, прошедшее со времени последнего запуска SQL-Server n New. ID() – генерирует новое значение типа Unique. Identifier Базы данных на основе Microsoft SQL Server 2008. Лекция 3 65
Функции Transact-SQL Системные функции: n Permission ([Object. ID[, ‘column’]]) – возвращает информацию о правах доступа для текущего пользователя ¨ Аргумент Object. ID указывает идентификационный номер объекта базы данных ¨ Для получения идентификационного номера объекта по его имени используется функция Object_ID(‘имя’) Базы данных на основе Microsoft SQL Server 2008. Лекция 3 66
Лекция 3. Общие сведения о Transact-SQL.ppt