Проектирование таблиц

Содержание

Слайд 2

Введение DDL – язык определения данных: создания, изменения и удаления ОБЪЕКТОВ

Введение

DDL – язык определения данных: создания, изменения и удаления ОБЪЕКТОВ БД
CREATE
ALTER
DROP
DENY
REVOKE
GRANT
DML

– язык манипуляции с данными: работа с данными в таблицах
SELECT
INSERT
UPDATE
DELETE
Слайд 3

Таблицы Таблица – это двумерный массив, каждая строка которого является экземпляром

Таблицы

Таблица – это двумерный массив, каждая строка которого является экземпляром описываемого

в таблице типа объекта. Столбцы массива представляют собой атрибуты описываемого объекта. На пересечении конкретной строки и конкретного столбца находится атрибут конкретного объекта.
Таблица – специальный тип данных, который может использоваться для сохранения данных для дальнейшей обработки.
SQL Server 2008 поддерживает до двух миллиардов таблиц в базе данных и 1024 столбца в таблице. Число строк и общий размер таблицы ограничиваются только доступным пространством для хранения.
Максимальное число байтов для строки равно 8060.
Слайд 4

Создание таблиц Создать таблицы в SQL Server 2014 можно с помощью

Создание таблиц

Создать таблицы в SQL Server 2014 можно с помощью
графического

интерфейса SQL Server Management Studio
команд T-SQL.
Слайд 5

Пример CREATE TABLE students ( name varchar(30), lastname varchar(30), birthday datetime

Пример

CREATE TABLE students
(
name varchar(30),
lastname varchar(30),
birthday datetime
)
CREATE TABLE subjects
(
name varchar(30),
hours smallint
)

Слайд 6

Типы данных Bigint: -2^63 до 2^63-1 Int (integer): –2^31 до 2^31-1

Типы данных

Bigint: -2^63 до 2^63-1
Int (integer): –2^31 до 2^31-1
Smallint:

–32768 до 32767
tinyint: 0 до 255
Bit: 0|1
Слайд 7

Типы данных Real: 3.4Е-38 до 3.4Е+38 (4 байта, точность до 7

Типы данных

Real: 3.4Е-38 до 3.4Е+38 (4 байта, точность до 7 цифр)
float:

1.79Е-308 до 1.79Е+308 (8 байт, точность до 15 цифр)
decimal[(p[,s])]: – 10^38-1 до 10^38 (занимает от 2 до 17 байт)
Money: -922337203685477,5808 до 922337203685477,5807
Слайд 8

Типы данных char(n): n - количество байт. Max 8000. varchar(n|max): размер

Типы данных

char(n): n - количество байт. Max 8000.
varchar(n|max): размер хранения –

фактический размер плюс 2 байта. max - 2^31-1 байт (аналог типа text).
nchar(n): кодировка Юникод. Max 4000.
nvarchar(n|max)
Слайд 9

Типы данных Datetime: 1 января 1753 года — 31 декабря 9999

Типы данных

Datetime: 1 января 1753 года — 31 декабря 9999 года.

Точность 3.33 мс.
Smalldatetime: 1 января 1900 года — 6 июня 2079 года. Точность 1 мин.
Binary(n): двоичные данные. До 8000 байт.
Varbinary(n|max)
Слайд 10

Типы данных Timestamp: автоматически сформированные уникальные двоичные числа в базе данных

Типы данных

Timestamp: автоматически сформированные уникальные двоичные числа в базе данных (8

байт).
sql_variant: хранит значения различных типов данных. Max 8016 байт.
Uniqueidentifier: 16-байтовый идентификатор GUID.
Table
cursor
Xml: до 2 ГБ
Слайд 11

Создание таблиц CREATE TABLE [ database_name .[ schema_name ].| schema_name .]

Создание таблиц

CREATE TABLE [ database_name .[ schema_name ].| schema_name .] table_name


( { | }
[ ] [ ,...n ] )
[ON{ partition_scheme_name ( partition_column_name )| filegroup
| "default" } ]
[ { TEXTIMAGE_ON { filegroup | "default" } ]
[;]
Слайд 12

Параметры database_name, schema_name, table_name, column_name, computed_column_expression PERSISTED ON {filegroup | DEFAULT},

Параметры

database_name,
schema_name,
table_name,
column_name,
computed_column_expression
PERSISTED
ON {filegroup | DEFAULT}, TEXTIMAGE_ON,
[ type_schema_name.

] type_name,
DEFAULT, constant_expression,
IDENTITY, seed, increment,
NOT FOR REPLICATION, ROWGUIDCOL,
COLLATE collation_name
Слайд 13

Схема БД Схема — это коллекция сущностей базы данных, формирующая единое

Схема БД

Схема — это коллекция сущностей базы данных, формирующая единое пространство

имен.
Схему по умолчанию можно задавать с помощью параметра DEFAULT_SCHEMA инструкций CREATE USER и ALTER USER. Если значение параметра DEFAULT_SCHEMA оставлено неопределенным, у этого пользователя базы данных схемой по умолчанию будет DBO.
Слайд 14

Схема типа данных Если аргумент type_schema_name не указан, компонент Компонент SQL

Схема типа данных

Если аргумент type_schema_name не указан, компонент Компонент SQL Server

Database Engine ссылается на аргумент type_name в следующем порядке:
Системный тип данных SQL Server.
Установленная по умолчанию для текущего пользователя схема в текущей базе данных.
Схема dbo в текущей базе данных.
Слайд 15

Вычисляемые столбцы Столбцы содержат вычисления, использующие один или несколько других столбцов

Вычисляемые столбцы

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

По умолчанию хранится определение вычислений, а не физические данные.
Параметр PERSISTED указывает, что Компонент SQL Server Database Engine будет физически хранить вычисляемые значения в таблице и обновлять их при изменении любого столбца, от которого зависит вычисляемый столбец.
Слайд 16

Ограничения Ограничения запрещают вносить в таблицу недопустимые данные. Типы ограничений: на

Ограничения

Ограничения запрещают вносить в таблицу недопустимые данные.
Типы ограничений:
на колонки
на таблицу в

целом
ALTER TABLE marks ADD CONSTRAINT mark_con CHECK (mark > 1 and mark <= 5)
Слайд 17

Ограничения constraint_name NULL | NOT NULL UNIQUE PRIMARY KEY CLUSTERED |

Ограничения

constraint_name
NULL | NOT NULL
UNIQUE
PRIMARY KEY
CLUSTERED | NONCLUSTERED
FOREIGN KEY...REFERENCES ref_table (ref_column[,...n])
ON DELETE

{ CASCADE | NO ACTION | SET NULL | SET DEFAULT }
ON UPDATE { CASCADE | NO ACTION | SET NULL | SET DEFAULT }
CHECK (logical_expression)
Слайд 18

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

Первичный ключ

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

значения остальных атрибутов.
Первичный ключ всегда UNIQUE
Запрещено хранение NULL
В таблице может быть только один первичный ключ.
Слайд 19

Вторичный ключ При вставке нового или изменения существующего значения система будет

Вторичный ключ

При вставке нового или изменения существующего значения система будет проверять

имеется ли новое значение в столбце первичного ключа.
Разрешены NULL
Может быть несколько вторичных ключей в одной таблице.
Слайд 20

Примеры ALTER TABLE students ADD id int identity(1,1) ALTER TABLE students

Примеры

ALTER TABLE students ADD id int identity(1,1)
ALTER TABLE students ADD CONSTRAINT

stud_pk PRIMARY KEY (id)
CREATE TABLE marks (
stud_id int FOREIGN KEY REFERENCES students (id),
subj_id int,
ddate datetime,
mark tinyint)
Слайд 21

Работа с таблицей Изменение: ALTER TABLE имя_таблицы Удаление: DROP TABLE имя_таблицы

Работа с таблицей

Изменение: ALTER TABLE имя_таблицы
Удаление: DROP TABLE имя_таблицы
Нельзя удалить таблицу,

если на нее с помощью ограничения целостности FOREIGN KEY ссылается одна или более таблиц.
Для удаления данных без удаления самой таблицы можно использовать команду:
TRUNCATE TABLE имя_таблицы
Создание таблицы определенной структуры:
SELECT * INTO имя_таблицы_1 FROM имя_таблицы_2
Слайд 22

Временные таблицы Типы временных таблиц: локальные (#table_name) глобальные (##table_name) Хранятся в БД tempdb

Временные таблицы

Типы временных таблиц:
локальные (#table_name)
глобальные (##table_name)
Хранятся в БД tempdb

Слайд 23

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

Табличная переменная

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

с целью последующей его обработки.
Declare @имя_переменной TABLE
( описание_полей )