SlideShare a Scribd company logo
1 of 63
01 TIKTOKCOACH.RU
Введение в MS SQL
ОмГУ
02 TIKTOKCOACH.RU
Преподаватель
Тюменцев Евгений
[Александрович]
02 TIKTOKCOACH.RU
Длительность занятия
8:00 – 12:00
Перерывы
8:40 – 8:45
9:25 – 9:35
10:15-10:20
11:00 – 11:10
02 TIKTOKCOACH.RU
Содержание курса
02 TIKTOKCOACH.RU
Лекции
02 TIKTOKCOACH.RU
Лабораторные
02 TIKTOKCOACH.RU
Самостоятельная работа
02 TIKTOKCOACH.RU
Материалы курса
www.slideshare.net/etyumentcev/presentations
02 TIKTOKCOACH.RU
3 тормоза, которые мешают
08 TIKTOKCOACH.COM
Обвинение
Не виноватая я –
он сам пришел
09 TIKTOKCOACH.COM
Оправдание
Не мы - такие!
Жизнь у нас -
такая
10 TIKTOKCOACH.COM
Отрицание
02 TIKTOKCOACH.RU
Пирамида автоматизации
02 TIKTOKCOACH.RU
SQL Management Studio
02 TIKTOKCOACH.RU
02 TIKTOKCOACH.RU
02 TIKTOKCOACH.RU
02 TIKTOKCOACH.RU
Запросы в SQL MS
02 TIKTOKCOACH.RU
02 TIKTOKCOACH.RU
02 TIKTOKCOACH.RU
Create database
CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
[ PRIMARY ] <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
[ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]
02 TIKTOKCOACH.RU
Create database - options
<option> ::=
{
FILESTREAM ( <filestream_option> [,...n ] )
| DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name |
language_alias }
| DEFAULT_LANGUAGE = { lcid | language_name | language_alias
}
| NESTED_TRIGGERS = { OFF | ON }
| TRANSFORM_NOISE_WORDS = { OFF | ON}
| TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
| DB_CHAINING { OFF | ON }
| TRUSTWORTHY { OFF | ON }
}
02 TIKTOKCOACH.RU
02 TIKTOKCOACH.RU
Алгоритмическая сложность
10 TIKTOKCOACH.RU
Вычислимость
Вычислимость
 Машина Тьюринга
 Машина Поста
 Λ-исчисление Черча
02 TIKTOKCOACH.RU
Асимптотическая сложность
f(n) = O(1) константа
f(n) = O(log(n)) логарифмический рост
f(n) = O(n) линейный рост
f(n) = O(n*log(n)) квазилинейный рост
f(n) = O(n^2) квадратичный рост
f(n) = O(n^m) полиномиальный рост
f(n) = O(2^n) экспоненциальный рост
02 TIKTOKCOACH.RU
График роста O-большое
02 TIKTOKCOACH.RU
Графики y = ln x и y = x
02 TIKTOKCOACH.RU
Линейный поиск в массиве
02 TIKTOKCOACH.RU
Двоичный поиск в массиве
02 TIKTOKCOACH.RU
Структуры данных
02 TIKTOKCOACH.RU
Индекс
Индекс – объект базы данных,
создаваемый с целью повышения
производительности поиска данных
• Кластерный индекс
• Некластерный индекс
02 TIKTOKCOACH.RU
Таблицы - мин. синтаксис
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
02 TIKTOKCOACH.RU
Таблицы - пример
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
02 TIKTOKCOACH.RU
Виды типов данных
• Точные числа
• Приблизительные числа
• Дата и время
• Символьные строки
• Символьные строки в юникоде
• Двоичные типы данных
• Прочие
02 TIKTOKCOACH.RU
Точные числа
• bigint
• numeric
• bit
• smallint
• decimal
• smallmoney
• int
• tinyint
• money
02 TIKTOKCOACH.RU
Приблизительные числа
• float
• real
02 TIKTOKCOACH.RU
Приблизительные числа
• float
• real
02 TIKTOKCOACH.RU
Дата и время
• Date
• datetimeoffset
• datetime2
• smalldatetime
• datetime
• time
02 TIKTOKCOACH.RU
Дата и время
• Date
• datetimeoffset
• datetime2
• smalldatetime
• datetime
• time
02 TIKTOKCOACH.RU
Символьные строки
• char
• varchar
• text
02 TIKTOKCOACH.RU
Символьные строки в Юникоде
• nchar
• nvarchar
• ntext
02 TIKTOKCOACH.RU
Символьные строки в Юникоде
• nchar
• nvarchar
• ntext
02 TIKTOKCOACH.RU
Двоичные данные
• binary
• varbinary
• image
02 TIKTOKCOACH.RU
Прочие типы данных
• курсор
• timestamp
• hierarchyid
• uniqueidentifier
• sql_variant
• xml
• таблица
• Пространственные типы
02 TIKTOKCOACH.RU
Прочие типы данных
• курсор
• timestamp
• hierarchyid
• uniqueidentifier
• sql_variant
• xml
• таблица
• Пространственные типы
02 TIKTOKCOACH.RU
Пример: uniqueidentifier
CREATE TABLE dbo.Globally_Unique_Data
(
guid uniqueidentifier
CONSTRAINT Guid_Default DEFAULT
NEWSEQUENTIALID() ROWGUIDCOL,
Employee_Name varchar(60)
CONSTRAINT Guid_PK PRIMARY KEY (guid)
);
02 TIKTOKCOACH.RU
Пример: Вычислимое поле
CREATE TABLE dbo.mytable
(
low int,
high int,
myavg AS (low + high)/2
) ;
02 TIKTOKCOACH.RU
Пример: Вычислимое поле
CREATE TABLE dbo.mytable
(
low int,
high int,
myavg AS (low + high)/2
) ;
02 TIKTOKCOACH.RU
Пример: разряженное поле
CREATE TABLE dbo.T1
(
c1 int PRIMARY KEY,
c2 varchar(50) SPARSE NULL
) ;
02 TIKTOKCOACH.RU
Пример: разряженное поле
CREATE TABLE dbo.T1
(
c1 int PRIMARY KEY,
c2 varchar(50) SPARSE NULL
) ;
02 TIKTOKCOACH.RU
Сложный пример - 1
CREATE TABLE dbo.PurchaseOrderDetail
(
PurchaseOrderID int NOT NULL
REFERENCES
Purchasing.PurchaseOrderHeader(PurchaseOrderID),
02 TIKTOKCOACH.RU
Сложный пример - 2
LineNumber smallint NOT NULL,
ProductID int NULL
REFERENCES Production.Product(ProductID),
UnitPrice money NULL,
OrderQty smallint NULL,
ReceivedQty float NULL,
RejectedQty float NULL,
DueDate datetime NULL,
02 TIKTOKCOACH.RU
Сложный пример - 3
rowguid uniqueidentifier ROWGUIDCOL NOT NULL
CONSTRAINT DF_PurchaseOrderDetail_rowguid
DEFAULT (newid()),
ModifiedDate datetime NOT NULL
CONSTRAINT
DF_PurchaseOrderDetail_ModifiedDate DEFAULT
(getdate()),
LineTotal AS ((UnitPrice*OrderQty)),
StockedQty AS ((ReceivedQty-RejectedQty)),
02 TIKTOKCOACH.RU
Сложный пример - 4
CONSTRAINT
PK_PurchaseOrderDetail_PurchaseOrderID_LineNumbe
r
PRIMARY KEY CLUSTERED (PurchaseOrderID,
LineNumber)
WITH (IGNORE_DUP_KEY = OFF)
)
ON PRIMARY;
02 TIKTOKCOACH.RU
Свойства колонки
[ FILESTREAM ]
[ COLLATE collation_name ]
[ SPARSE ]
[ NULL | NOT NULL ]
[
[ CONSTRAINT constraint_name ] DEFAULT
constant_expression ]
| [ IDENTITY [ ( seed ,increment ) ]
[ NOT FOR REPLICATION ]
]
[ ROWGUIDCOL ]
02 TIKTOKCOACH.RU
Ограничения колонки - 1
[ CONSTRAINT constraint_name ]
ограничения
02 TIKTOKCOACH.RU
Ограничения колонки - 2
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[ WITH FILLFACTOR = fillfactor | WITH ( <
index_option > [ , ...n ] ) ]
[ ON { partition_scheme_name (
partition_column_name ) | filegroup | "default"} ]
02 TIKTOKCOACH.RU
Ограничения колонки - 3
[ FOREIGN KEY ]
REFERENCES [ schema_name . ]
referenced_table_name [ ( ref_column ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL |
SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL
| SET DEFAULT } ]
[ NOT FOR REPLICATION ]
}
02 TIKTOKCOACH.RU
Ограничения колонки - 4
CHECK [ NOT FOR REPLICATION ] ( logical_expression )
02 TIKTOKCOACH.RU
Ограничения таблицы - 1
[ CONSTRAINT constraint_name ]
ограничения
02 TIKTOKCOACH.RU
Ограничения таблицы - 2
{
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
(column [ ASC | DESC ] [ ,...n ] )
[ WITH FILLFACTOR = fillfactor | WITH (
<index_option> [ , ...n ] ) ]
[ ON { partition_scheme_name
(partition_column_name)
| filegroup | "default" } ]
02 TIKTOKCOACH.RU
Ограничения таблицы - 3
FOREIGN KEY ( column [ ,...n ] )
REFERENCES referenced_table_name [ (
ref_column [ ,...n ] ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL |
SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL
| SET DEFAULT } ]
[ NOT FOR REPLICATION ] | CHECK [ NOT FOR
REPLICATION ] ( logical_expression )

More Related Content

More from etyumentcev

Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?etyumentcev
 
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...etyumentcev
 
матлогика для программистов
матлогика для программистовматлогика для программистов
матлогика для программистовetyumentcev
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповetyumentcev
 
Как 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектКак 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектetyumentcev
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4etyumentcev
 
высокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратвысокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратetyumentcev
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектамиetyumentcev
 
почему буксует тайм менеджмент
почему буксует тайм менеджментпочему буксует тайм менеджмент
почему буксует тайм менеджментetyumentcev
 
ук 03.011.01 2011
ук 03.011.01 2011ук 03.011.01 2011
ук 03.011.01 2011etyumentcev
 
ук 03.010.01 2011
ук 03.010.01 2011ук 03.010.01 2011
ук 03.010.01 2011etyumentcev
 
ук 03.009.01 2011
ук 03.009.01 2011ук 03.009.01 2011
ук 03.009.01 2011etyumentcev
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011etyumentcev
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011etyumentcev
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011etyumentcev
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011etyumentcev
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011etyumentcev
 
ук 03.002.01 2011
ук 03.002.01 2011ук 03.002.01 2011
ук 03.002.01 2011etyumentcev
 
ук 03.005.02 2011
ук 03.005.02 2011ук 03.005.02 2011
ук 03.005.02 2011etyumentcev
 

More from etyumentcev (20)

Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?
 
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
 
матлогика для программистов
матлогика для программистовматлогика для программистов
матлогика для программистов
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принципов
 
Как 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектКак 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проект
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
 
высокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратвысокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затрат
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектами
 
почему буксует тайм менеджмент
почему буксует тайм менеджментпочему буксует тайм менеджмент
почему буксует тайм менеджмент
 
ук 03.011.01 2011
ук 03.011.01 2011ук 03.011.01 2011
ук 03.011.01 2011
 
ук 03.010.01 2011
ук 03.010.01 2011ук 03.010.01 2011
ук 03.010.01 2011
 
ук 03.009.01 2011
ук 03.009.01 2011ук 03.009.01 2011
ук 03.009.01 2011
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011
 
ук 03.002.01 2011
ук 03.002.01 2011ук 03.002.01 2011
ук 03.002.01 2011
 
ук 03.005.02 2011
ук 03.005.02 2011ук 03.005.02 2011
ук 03.005.02 2011
 
трпо
трпотрпо
трпо
 

введение в Sql