введение в Sql

Preview:

Citation preview

01 TIKTOKCOACH.RU

Введение в MS SQL

ОмГУ

02 TIKTOKCOACH.RU

Преподаватель

Тюменцев Евгений [Александрович]

02 TIKTOKCOACH.RU

Длительность занятия

8:00 – 12:00

Перерывы8:40 – 8:459:25 – 9:3510:15-10:2011: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 databaseCREATE 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

Пример: uniqueidentifierCREATE 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

Сложный пример - 1CREATE TABLE dbo.PurchaseOrderDetail( PurchaseOrderID int NOT NULL REFERENCES Purchasing.PurchaseOrderHeader(PurchaseOrderID),

02 TIKTOKCOACH.RU

Сложный пример - 2LineNumber 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

Сложный пример - 3rowguid 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

Сложный пример - 4CONSTRAINT PK_PurchaseOrderDetail_PurchaseOrderID_LineNumber 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

Ограничения колонки - 4CHECK [ 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

Ограничения таблицы - 3FOREIGN 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 )