Приветствую всех, сегодня рассмотрим примеры работы с переменными, а в конце я покажу как создать базу данных и таблицу.
Работа с целыми типами данных в T-SQL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
--*************************************************************************** -- Целые типы данных в T-SQL --*************************************************************************** -------------------------------------- Bit ---------------------------------- -- Целое без знака - Bit. Диапазон значений (0 или 1). -- При попытке присвоения значения отличного от 0 и 1, -- это значение будет неявно преобразовано в 1. PRINT 'Bit'; DECLARE @bit Bit = 0; PRINT @bit; SET @bit = 1; PRINT @bit; SET @bit = -4; -- (-4) будет неявно преобразовано в 1. PRINT @bit; -- bit = 1 ------------------------------------- TinyInt ------------------------------- -- Целое без знака TinyInt. Диапазон значений от 0 до 255. PRINT 'TinyInt'; DECLARE @tinyint TinyInt = 0; PRINT @tinyint; SET @tinyint = 25; PRINT @tinyint; SET @tinyint = 256; -- Ошибка присвоения: Арифметическое переполнение. PRINT @tinyint; -- Значение переменной @tinyint останется прежним. ----------------------------------- SmallInt -------------------------------- -- Целое со знаком SmallInt. Диапазон значений от -32 768 до 32 767. PRINT 'SmallInt'; DECLARE @smallint SmallInt = 32767; PRINT @smallint; SET @smallint = -32768; PRINT @smallint; -------------------------------------- Int ---------------------------------- -- Целое со знаком Int. Диапазон значений от -2 147 483 648 до 2 147 483 647. PRINT 'Int' DECLARE @int Int = 2147483647; PRINT @int; SET @int = -2147483648; PRINT @int; ------------------------------------ BigInt ---------------------------------- -- Целое со знаком BigInt. Диапазон значений от -(2^63) до 2^63-1. PRINT 'Bigint'; DECLARE @bigint Bigint = 9223372036854775807; PRINT @bigint; SET @bigint = -9223372036854775808; PRINT @bigint; ------------------------------------------------------------------------------ |
Работа с вещественными типами данных в T-SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
--*************************************************************************** -- Вещественные типы данных в T-SQL --*************************************************************************** ------------------------------------- Float --------------------------------- -- Вещественное со знаком, с плавающей точкой Float. -- Диапазон значений от -1.79Е+308 до 1.79Е+308. -- Числовой тип данных с плавающей запятой записывается как Float(n), -- где n - определяет точность(по умолчанию n = 53) -- Для типа Float имеется только два вида точности: 7 и 15 знаков после запятой. -- 7 знаков - при n, в диапазоне от 1 до 24; (выделение 4 байт) -- 15 знаков - при n, в диапазоне от 25 до 53; (выделение 8 байт) PRINT 'Float' DECLARE @float float(24) = 1214782.123; PRINT @float; SET @float = 2147482435234412412.4321523598746737654; PRINT @float; ------------------------------------ Decimal -------------------------------- -- Вещественное со знаком, с фиксированной точкой Decimal (Numeric). -- Диапазон значений от -10^38+1 до 10^38-1. -- Числовой тип данных с фиксированной точкой Decimal записывается как Decimal(p, s), -- где p - определяет точность - максимальное количество знаков из которых состоит полное число -- (по умолчанию p = 18, максимальное значение p = 38, минимальное значение p = 1), -- a s - определяет масштаб - максимальное количество знаков после запятой. PRINT 'Decimal / Numeric' DECLARE @decimal Decimal(5, 3); -- p = 5, s = 3( не больше p-1) SET @decimal = 1.42; PRINT @decimal; SET @decimal = 2.234654; -- Произойдет округление дробной части. PRINT @decimal; SET @decimal = 41.12345; -- Значение округлится, т.к после запятой больше 3-х знаков. PRINT @decimal; ---------------------------------- SmallMoney ------------------------------- -- Вещественное со знаком, с фиксированной точкой SmallMoney. -- Диапазон значений от -214 748.3648 до 214 748.3647 PRINT 'SmallMoney'; DECLARE @smoney SmallMoney = 214748.3647; PRINT @smoney; SET @smoney = -214748.3648; PRINT @smoney; ------------------------------------- Money --------------------------------- -- Вещественное со знаком, с фиксированной точкой Money. -- Диапазон значений от -2^63 до 2^63-1 PRINT 'Money'; DECLARE @money Money = 1.4234; PRINT @money; SET @money = 2.234954; PRINT @money; ----------------------------------------------------------------------------- |
Работа с текстовыми типами данных в T-SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
--*************************************************************************** -- Текстовые типы данных в T-SQL --*************************************************************************** -------------------------------------- Char --------------------------------- -- Текстовый тип данных записывается как Char, -- допустимое количество символов от 1 до 8000 символов. -- Текстовые типы данных записывается как Char(n), -- где n - определяет максимальное количество символов(максимально n = 8000). PRINT 'Char' DECLARE @char char(5)= 'Hello'; PRINT @char; SET @char = '1234dfghdf'; -- Часть строки "fghdf" не запишется, т.к. допустимое количество символов (5) PRINT @char; -------------------------------------- VarChar ------------------------------ -- Текстовый тип данных записывается как VarChar, -- диапазон значений от 1 до 2^31 символов. -- Текстовые типы данных записывается как VarChar(n/max), -- где n - определяет максимальное количество символов(максимально n = 8000), -- или же вместо n записывается max то максимальное количество символов становится 2^31. PRINT 'VarChar' DECLARE @vchar varchar(max)='Hello'; -- разрешено записывать 2^31 символов. PRINT @vchar; SET @vchar = '1234dfghdf'; PRINT @vchar; -------------------------------------- NChar -------------------------------- -- Текстовый тип данных в Unicode кодировке записывается как NChar, -- диапазон значений от 1 до 4000 символов. -- Текстовые типы данных записывается как NChar(n), -- где n - определяет максимальное количество символов(максимально n = 4000). -- Если количество вводимых символов меньше n то разница заполниться пробелами PRINT 'NChar' DECLARE @Nchar Nchar(7) = 'Привет!'; PRINT @Nchar; SET @Nchar = '1234 приехали'; -- Часть строки "иехали" не запишется, т.к. допустимое количество символов (7) PRINT @Nchar; ------------------------------------- NvarChar ------------------------------ -- Текстовый тип данных в Unicode кодировке записывается как NvarChar, -- диапазон значений от 1 до 2^31 символов. -- Текстовые типы данных записывается как NvarChar(n/max), -- где n - определяет максимальное количество символов(максимально n = 4000), -- или же вместо n записывается max то максимальное количество символов становится 2^31. PRINT 'NvarChar' DECLARE @NvarChar NvarChar(max) = 'Привет Мир!'; PRINT @NvarChar; SET @NvarChar = 'Много много много много много много много много много много много слов'; PRINT @NvarChar; ----------------------------------------------------------------------------- |
Работа с типами данных даты и времени в T-SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
--*************************************************************************** -- Типы данных даты и времени в T-SQL --*************************************************************************** ------------------------------------ DateTime ------------------------------- -- Типы данных даты и времени DateTime. -- Диапазон значений от 1 января 1753 года до 31 декабря 9999 года. PRINT 'DateTime' -- CAST (expression AS data_type) - это функция преобразования типов, -- преобразует значение expression к типу data_type. DECLARE @datetime DateTime = CAST('2007-05-08 12:35:29.123' AS DateTime); PRINT @datetime; SET @datetime = CURRENT_TIMESTAMP; -- Текущая дата и время PRINT @datetime; ------------------------------------ DateTime2 ------------------------------ -- Типы данных даты и времени DateTime2. -- Диапазон значений от 1 января 1 года до 31 декабря 9999 года. -- Типы данных даты и времени записывается как DateTime2(n), -- где n - определяет точность до 100нс ( 0<n<7 ) PRINT 'DateTime2'; DECLARE @datetime2 DateTime2(5) = CAST('2007-05-08 12:35:29.1234567' AS DateTime2) PRINT @datetime2; SET @datetime2 = CURRENT_TIMESTAMP; -- Текущая дата и время PRINT @datetime2; -------------------------------- SmallDateTime ------------------------------ -- Типы данных даты и времени SmallDateTime. -- Диапазон значений от 1 января 1900 года до 6 июня 2079 года. PRINT 'SmallDateTime'; DECLARE @smalldatetime SmallDateTime = CAST('2007-05-08 12:35:29' AS SmallDateTime) PRINT @smalldatetime; SET @smalldatetime = CURRENT_TIMESTAMP; -- Текущая дата и время PRINT @smalldatetime; -------------------------------- DateTimeOffSet ------------------------------ -- Типы данных даты и времени DateTimeOffSet. -- Определяет дату, объединенную со временем дня, с учетом часового пояса в 24-часовом формате. -- Диапазон значений от 1 января 1 года до 31 декабря 9999 года. -- Типы данных даты и времени записывается как DateTimeOffSet(n), -- где n - определяет точность до 100нс ( 0<n<7 ) PRINT 'DateTimeOffSet'; DECLARE @dateTimeOffSet DateTimeOffSet(5) = CAST('2007-05-08 12:35:29.1234567 +12:15' AS DateTimeOffSet) PRINT @dateTimeOffSet; SET @dateTimeOffSet = CURRENT_TIMESTAMP; -- Текущая дата и время PRINT @dateTimeOffSet; ------------------------------------ Date ----------------------------------- -- Типы данных даты Date. -- Диапазон значений от 1 января 1 года до 31 декабря 9999 года. PRINT 'Date'; DECLARE @date Date = CAST('2007-05-08 12:35:29.1234567' AS Date) PRINT @date; SET @date = CURRENT_TIMESTAMP; -- Текущая дата и время PRINT @date; ------------------------------------ Time ----------------------------------- -- Типы данных времени Time. -- Типы данных времени записывается как Time(n), -- где n - определяет точность до 100нс ( 0<n<7 ) PRINT 'Time'; DECLARE @time Time(5) = CAST('2007-05-08 12:35:29.1234567' AS Time); PRINT @time; SET @time = CURRENT_TIMESTAMP; PRINT @time; ----------------------------------------------------------------------------- |
Работа с типами двоичных данных в T-SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
--*************************************************************************** -- Типы двоичных данных в T-SQL --*************************************************************************** ------------------------------------ Binary --------------------------------- -- Типы двоичных данных Binary. -- Диапазон значений от 1 до 8000 байт. -- Типы двоичных данных записывается как Binary(n), -- где n - определяет максимальное количество байт(максимально n = 8000). PRINT 'Binary' DECLARE @binary Binary(1) = 16; PRINT @binary; ----------------------------------- VarBinary ------------------------------- -- Типы двоичных данных VarBinary. -- Диапазон значений от 1 до 2^31 байт. -- Типы двоичных данных записывается как VarBinary(n/max), -- где n - определяет максимальное количество байт(максимально n = 8000), -- или же вместо n записывается max то максимальное количество байт становится 2^31. PRINT 'VarBinary' DECLARE @varBinary VarBinary(max) = 2147483647; PRINT @varBinary; ----------------------------------------------------------------------------- |
Создание программно базу данных в SQL Server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
--******************************************************************************** -- Создание Базы Данных. --******************************************************************************** -- Создаём базу данных с именем ShopDB. CREATE DATABASE ShopDB ON -- Задаем параметры Базы Данных. ( NAME = 'ShopDB', -- Указываем логическое имя БД (используется при обращении к БД). FILENAME = 'D:\ShopDB.mdf', -- Указываем Физическое полное имя файла БД. SIZE = 10MB, -- Задаем начальный размер файла БД. MAXSIZE = 100MB, -- Задаем максимальный размер файла БД. FILEGROWTH = 10MB -- Задаем значение, на которое будет увеличиваться размер файла БД. ) LOG ON -- Задаем параметры журнала Базы Данных. ( NAME = 'LogShopDB', -- Указываем логическое имя журнала БД (используется при обращении к журналу БД). FILENAME = 'D:\ShopDB.ldf', -- Указываем Физическое полное имя файла журнала БД. SIZE = 5MB, -- Задаем начальный размер файла журнала БД. MAXSIZE = 50MB, -- Задаем максимальный размер файла журнала БД. FILEGROWTH = 5MB -- Задаем значение, на которое будет увеличиваться размер файла журнала БД. ) COLLATE Cyrillic_General_CI_AS -- Задаем кодировку для базы данных по умолчанию -- Выделить с 6 по 22 строку и нажать F5. ---------------------------------------------------------------------------------- -- Выводим информацию о Базе Данных - ShopDB. EXECUTE sp_helpdb ShopDB; ---------------------------------------------------------------------------------- --******************************************************************************** -- Создание Таблицы в Базе Данных ShopDB. --******************************************************************************** -- ВНИМАНИЕ! -- Указываем явно имя Базы Данных, которую следует использовать, так как, существует вероятность -- создания таблицы в Базе Данных, указанной в выпадающем списке на панели инструментов. -- Например: Часто, ошибочно создают таблицы в БД master и кажется что таблица не создалась. USE ShopDB GO ---------------------------------------------------------------------------------- -- Создаем таблицу с именем MyFriends, которая будет содержать пять столбцов. -- Первый столбец с именем FriendId, типа SmallInt с заданным автоинкрементом. -- Второй столбец с именем FirstName, типа Varchar, размерностью в 20 символов. -- Третий столбец с именем LastName, типа Varchar, размерностью в 20 символов. -- Четвертый столбец с именем BirthDate, типа Date. -- Пятый столбец с именем PhoneNumber, типа Char, размерностью в 10 символов. CREATE TABLE MyFriends ( -- Ключевое слово IDENTITY задает начальное значение и устанавливает авто инкремент. -- По умолчанию значение первой ячейки равно 1 и с каждой новой записью увеличивается на 1. -- NOT NULL не допускает пустые значения -- NULL допускает пустые значения FriendId smallint IDENTITY NOT NULL, FirstName Varchar(20) NOT NULL, LastName Varchar(20) NULL, BirthDate date NULL, PhoneNumber char(10) NOT NULL ) GO -- Конец пакета инструкций. ---------------------------------------------------------------------------------- |
После того как мы созадли базу данных и помести в нее таблицу, мы можем ее редактировать, для этого в обозревателе объектов выбрать нашу таблицу и нажав правую кнопку мыши в открывшимся диалоговом окне выбрать изменить первые 200 строк как показано ниже.
После редактирования таблицы вот что у меня получилось: