введение в sql

63
01 TIKTOKCOACH.RU Введение в MS SQL ОмГУ

Upload: etyumentcev

Post on 22-Jun-2015

236 views

Category:

Education


0 download

TRANSCRIPT

Page 1: введение в Sql

01 TIKTOKCOACH.RU

Введение в MS SQL

ОмГУ

Page 2: введение в Sql

02 TIKTOKCOACH.RU

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

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

Page 3: введение в Sql

02 TIKTOKCOACH.RU

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

8:00 – 12:00

Перерывы8:40 – 8:459:25 – 9:3510:15-10:2011:00 – 11:10

Page 4: введение в Sql

02 TIKTOKCOACH.RU

Содержание курса

Page 5: введение в Sql

02 TIKTOKCOACH.RU

Лекции

Page 6: введение в Sql

02 TIKTOKCOACH.RU

Лабораторные

Page 7: введение в Sql

02 TIKTOKCOACH.RU

Самостоятельная работа

Page 8: введение в Sql

02 TIKTOKCOACH.RU

Материалы курса

www.slideshare.net/etyumentcev/presentations

Page 9: введение в Sql

02 TIKTOKCOACH.RU

3 тормоза, которые мешают

Page 10: введение в Sql

08 TIKTOKCOACH.COM

Обвинение

Не виноватая я – он сам пришел

Page 11: введение в Sql

09 TIKTOKCOACH.COM

Оправдание

Не мы - такие! Жизнь у нас -

такая

Page 12: введение в Sql

10 TIKTOKCOACH.COM

Отрицание

Page 13: введение в Sql

02 TIKTOKCOACH.RU

Пирамида автоматизации

Page 14: введение в Sql

02 TIKTOKCOACH.RU

SQL Management Studio

Page 15: введение в Sql

02 TIKTOKCOACH.RU

Page 16: введение в Sql

02 TIKTOKCOACH.RU

Page 17: введение в Sql

02 TIKTOKCOACH.RU

Page 18: введение в Sql

02 TIKTOKCOACH.RU

Запросы в SQL MS

Page 19: введение в Sql

02 TIKTOKCOACH.RU

Page 20: введение в Sql

02 TIKTOKCOACH.RU

Page 21: введение в Sql

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 ] ][;]

Page 22: введение в Sql

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 }}

Page 23: введение в Sql

02 TIKTOKCOACH.RU

Page 24: введение в Sql

02 TIKTOKCOACH.RU

Алгоритмическая сложность

Page 25: введение в Sql

10 TIKTOKCOACH.RU

Вычислимость

Вычислимость Машина Тьюринга Машина Поста Λ-исчисление Черча

Page 26: введение в Sql

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) экспоненциальный рост

Page 27: введение в Sql

02 TIKTOKCOACH.RU

График роста O-большое

Page 28: введение в Sql

02 TIKTOKCOACH.RU

Графики y = ln x и y = x

Page 29: введение в Sql

02 TIKTOKCOACH.RU

Линейный поиск в массиве

Page 30: введение в Sql

02 TIKTOKCOACH.RU

Двоичный поиск в массиве

Page 31: введение в Sql

02 TIKTOKCOACH.RU

Структуры данных

Page 32: введение в Sql

02 TIKTOKCOACH.RU

Индекс

Индекс – объект базы данных, создаваемый с целью повышения производительности поиска данных

• Кластерный индекс• Некластерный индекс

Page 33: введение в Sql

02 TIKTOKCOACH.RU

Таблицы - мин. синтаксис

CREATE TABLE table_name(column_name1 data_type(size),column_name2 data_type(size),column_name3 data_type(size),....);

Page 34: введение в Sql

02 TIKTOKCOACH.RU

Таблицы - пример

CREATE TABLE Persons(PersonID int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255));

Page 35: введение в Sql

02 TIKTOKCOACH.RU

Виды типов данных

• Точные числа• Приблизительные числа• Дата и время• Символьные строки• Символьные строки в юникоде• Двоичные типы данных• Прочие

Page 36: введение в Sql

02 TIKTOKCOACH.RU

Точные числа• bigint• numeric• bit• smallint• decimal• smallmoney• int • tinyint• money

Page 37: введение в Sql

02 TIKTOKCOACH.RU

Приблизительные числа

• float• real

Page 38: введение в Sql

02 TIKTOKCOACH.RU

Приблизительные числа

• float• real

Page 39: введение в Sql

02 TIKTOKCOACH.RU

Дата и время

• Date• datetimeoffset• datetime2• smalldatetime• datetime• time

Page 40: введение в Sql

02 TIKTOKCOACH.RU

Дата и время

• Date• datetimeoffset• datetime2• smalldatetime• datetime• time

Page 41: введение в Sql

02 TIKTOKCOACH.RU

Символьные строки

• char• varchar• text

Page 42: введение в Sql

02 TIKTOKCOACH.RU

Символьные строки в Юникоде

• nchar• nvarchar• ntext

Page 43: введение в Sql

02 TIKTOKCOACH.RU

Символьные строки в Юникоде

• nchar• nvarchar• ntext

Page 44: введение в Sql

02 TIKTOKCOACH.RU

Двоичные данные

• binary• varbinary• image

Page 45: введение в Sql

02 TIKTOKCOACH.RU

Прочие типы данных

• курсор• timestamp• hierarchyid• uniqueidentifier• sql_variant• xml• таблица• Пространственные типы

Page 46: введение в Sql

02 TIKTOKCOACH.RU

Прочие типы данных

• курсор• timestamp• hierarchyid• uniqueidentifier• sql_variant• xml• таблица• Пространственные типы

Page 47: введение в Sql

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) );

Page 48: введение в Sql

02 TIKTOKCOACH.RU

Пример: Вычислимое полеCREATE TABLE dbo.mytable (

low int,high int, myavg AS (low + high)/2

) ;

Page 49: введение в Sql

02 TIKTOKCOACH.RU

Пример: Вычислимое полеCREATE TABLE dbo.mytable (

low int,high int, myavg AS (low + high)/2

) ;

Page 50: введение в Sql

02 TIKTOKCOACH.RU

Пример: разряженное полеCREATE TABLE dbo.T1(

c1 int PRIMARY KEY, c2 varchar(50) SPARSE NULL ) ;

Page 51: введение в Sql

02 TIKTOKCOACH.RU

Пример: разряженное полеCREATE TABLE dbo.T1(

c1 int PRIMARY KEY, c2 varchar(50) SPARSE NULL ) ;

Page 52: введение в Sql

02 TIKTOKCOACH.RU

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

Page 53: введение в Sql

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,

Page 54: введение в Sql

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)),

Page 55: введение в Sql

02 TIKTOKCOACH.RU

Сложный пример - 4CONSTRAINT PK_PurchaseOrderDetail_PurchaseOrderID_LineNumber PRIMARY KEY CLUSTERED (PurchaseOrderID, LineNumber) WITH (IGNORE_DUP_KEY = OFF)) ON PRIMARY;

Page 56: введение в Sql

02 TIKTOKCOACH.RU

Свойства колонки[ FILESTREAM ][ COLLATE collation_name ] [ SPARSE ][ NULL | NOT NULL ][ [ CONSTRAINT constraint_name ] DEFAULT constant_expression ] | [ IDENTITY [ ( seed ,increment ) ] [ NOT FOR REPLICATION ] ][ ROWGUIDCOL ]

Page 57: введение в Sql

02 TIKTOKCOACH.RU

Ограничения колонки - 1[ CONSTRAINT constraint_name ] ограничения

Page 58: введение в Sql

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"} ]

Page 59: введение в Sql

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 ]

}

Page 60: введение в Sql

02 TIKTOKCOACH.RU

Ограничения колонки - 4CHECK [ NOT FOR REPLICATION ] ( logical_expression )

Page 61: введение в Sql

02 TIKTOKCOACH.RU

Ограничения таблицы - 1[ CONSTRAINT constraint_name ] ограничения

Page 62: введение в Sql

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" } ]

Page 63: введение в Sql

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 )