Similar presentations:
Structured query language
1. SQL
1ЧАСТЬ 7.
2. SQL
2SQL (Structured Query Language — язык
структурированных запросов) — универсальный
компьютерный язык, применяемый для
создания, модификации и управления данными в
реляционных базах данных. Является
информационно-логическим языком, а не языком
программирования.
3. SQL
3Основан на реляционном исчислении
4. ИСТОРИЯ
4В начале 1970-х годов в компании IBM
была разработана экспериментальная
СУБД «System R» на основе языка
SEQUEL (Structured English Query
Language — структурированный
английский язык запросов).
5. ИСТОРИЯ
5В 1981 году IBM объявила о своём
первом основанном на SQL
программном продукте — SQL/DS.
в 1986 году первый стандарт языка
SQL был принят ANSI (American
National Standards Institute)
в 1987 году первый стандарт языка
SQL был принят ISO (Международной
организацией по стандартизации) в
(SQL level 1) и уточнён в 1989 году (SQL
level 2).
6. ИСТОРИЯ
1992 г. - новый расширенныйстандарт (ANSI SQL-92 или SQL-2).
1999 г. - следующий стандарт SQL-99
2003 г. - SQL-3
6
2008 г. - действует в настоящее
время
7. Преимущества
ПРЕИМУЩЕСТВА• Независимость от конкретной СУБД
• Наличие стандартов
7
• Полноценность как языка для
управления данными
8. Недостатки
НЕДОСТАТКИ• Нереляционность
• Сложность
• Отступления от стандартов
8
• Сложность работы с
иерархическими структурами
9. Язык SQL делится на три части:
ЯЗЫК SQL ДЕЛИТСЯНА ТРИ ЧАСТИ:
операторы определения данных (Data
Definition Language, DDL)
операторы манипуляции данными (Data
Manipulation Language, DML)
9
операторы определения доступа к
данным (Data Control Language, DCL)
10. Методы использования SQL
МЕТОДЫИСПОЛЬЗОВАНИЯ SQL
Статический (в тексте программы
имеются вызовы функций языка SQL,
которые жестко включаются в
выполняемый модуль после
компиляции)
10
Динамический (динамическое
построение вызовов SQL-функций и
интерпретация этих вызовов)
11. Представление -
ПРЕДСТАВЛЕНИЕ -11
таблица, формируемая в результате
выполнения запроса.
12. Курсор
КУРСОРуказатель, используемый для
перемещения по наборам записей при
их обработке.
12
В описательной части – связывание
переменной типа CURSOR с
оператором SQL; в выполняемой –
открытие курсора (OPEN),
перемещение (FETCH), сопровождение
обработкой и закрытие (CLOSE).
13. Операторы SQL
13ОПЕРАТОРЫ SQL
14. Операторы SQL
14ОПЕРАТОРЫ SQL
15. Операторы SQL
15ОПЕРАТОРЫ SQL
16. Операторы SQL
16ОПЕРАТОРЫ SQL
17. команды языка DDL
КОМАНДЫ ЯЗЫКАDDL
CREATE TABLE,
ALTER TABLE,
DROP TABLE,
CREATE INDEX,
ALTER INDEX,
17
DROP INDEX.
18. команды языка DML
КОМАНДЫ ЯЗЫКАDML
INSERT,
UPDATE,
18
DELETE.
19. SELECT
19Выборка данных (DQL)
20. команды языка DСL
КОМАНДЫ ЯЗЫКАDСL
GRANT
20
REVOKE
21. Команды управления транзакциями
КОМАНДЫ УПРАВЛЕНИЯТРАНЗАКЦИЯМИ
COMMIT,
ROLLBACK,
SAVEPOINT,
21
SET TRANSACTION.
22. Запись SQL-операторов
ЗАПИСЬ SQLОПЕРАТОРОВ<идентификатор>::=<буква>
{<буква>|<цифра>}[...n]
идентификатор может иметь длину до
128 символов;
идентификатор должен начинаться с
буквы;
22
идентификатор не может содержать
пробелы.
23. БАЗА ДАННЫХ
23БАЗА ДАННЫХ
24. Типы данных языка SQL, определенные стандартом
ТИПЫ ДАННЫХ ЯЗЫКА SQL,ОПРЕДЕЛЕННЫЕ СТАНДАРТОМ
Символьный CHAR | VARCHAR
Битовый BIT | BIT VARYING
Точные числа NUMERIC | DECIMAL | INTEGER |
SMALLINT
Округленные числа FLOAT | REAL | DOUBLE
PRECISION
Дата/время DATE | TIME | TIMESTAMP
24
Интервал I NTERVAL
25. Числовые типы
25ЧИСЛОВЫЕ ТИПЫ
26. Типы даты и времени
26ТИПЫ ДАТЫ И ВРЕМЕНИ
27. Строковые типы
27СТРОКОВЫЕ ТИПЫ
28. Домен –
ДОМЕН –это набор допустимых значений для
одного или нескольких атрибутов.
<определение_домена>::= CREATE
DOMAIN имя_домена [AS] тип_данных [
DEFAULT значение] [ CHECK
(допустимые_значения)]
28
DROP DOMAIN имя_домена [ RESTRICT |
CASCADE]
29. Типы данных, используемые в SQL-сервере
ТИПЫ ДАННЫХ,ИСПОЛЬЗУЕМЫЕ В SQLСЕРВЕРЕ
binary
ntext
decimal
nchar
money
Smallmoney
Nvarchar
smallint
float
varbinary
int
varchar
sysname
tinyint
29
image
smalldatetime
bit
text
real
char
uniqueidentifier
numeric
timestamp
datetime
30. Создание пользовательского типа данных
СОЗДАНИЕПОЛЬЗОВАТЕЛЬСКОГО
ТИПА ДАННЫХ
sp_addtype
[@typename=]type,[@phystype=]
system_data_type
[,[@nulltype=]’null_type’]
30
EXEC sp_addtype bir, DATETIME, 'NULL'
31. Преобразование типов
ПРЕОБРАЗОВАНИЕ ТИПОВCAST(выражение AS тип_данных)
CONVERT(тип_данных[(длина)],
выражение [,стиль])
31
STR
32. Переменные
ПЕРЕМЕННЫЕDECLARE {@имя_переменной тип_данных } [,...n]
DECLARE @a INT
SET @a=10
DECLARE @k INT
32
SELECT @k=SUM(количество) FROM
Товар
33. Управляющие конструкции SQL
УПРАВЛЯЮЩИЕКОНСТРУКЦИИ SQL
<блок_операторов>::= BEGIN
{ sql_оператор | блок_операторов }
33
END
34. Условный оператор
УСЛОВНЫЙ ОПЕРАТОР<условный_оператор>::=
IF лог_выражение
{ sql_оператор | блок_операторов }
[ ELSE {sql_оператор | блок_операторов }
34
]
35. Оператор выбора варианта
ОПЕРАТОР ВЫБОРАВАРИАНТА
<оператор_выбора_варианта>::=
CASE входное_значение
WHEN {значение_для_сравнения |
лог_выражение }
THEN вых_выражение [,...n]
[ ELSE иначе_вых_значение ]
35
END
36. Циклы
ЦИКЛЫ<оператор_цикла>::=
WHILE лог_выражение
{ sql_оператор | блок_операторов }
[ BREAK ]
{ sql_оператор | блок_операторов }
36
[ CONTINUE ]
37. Основные объекты структуры базы данных SQL-сервера
TablesViews
Stored
Procedures
Triggers
User Defined function
Indexes
User Defined Data Types
Keys
Constraints
Users
Roles
Rules
Defaults
37
ОСНОВНЫЕ ОБЪЕКТЫ
СТРУКТУРЫ БАЗЫ ДАННЫХ
SQL-СЕРВЕРА
38. Создание базы данных в среде MS SQL Server
СОЗДАНИЕ БАЗЫ ДАННЫХВ СРЕДЕ MS SQL SERVER
<определение_базы_данных> ::=
CREATE DATABASE имя_базы_данных
[ON [PRIMARY] [ <определение_файла> [,...n] ]
[,<определение_группы> [,...n] ] ] [ LOG ON
{<определение_файла>[,...n] } ]
38
[ FOR LOAD | FOR ATTACH ]
39. Определение файла
ОПРЕДЕЛЕНИЕ ФАЙЛА<определение_файла>::=
([ NAME=логическое_имя_файла,]
FILENAME='физическое_имя_файла'
[,SIZE=размер_файла ]
[,MAXSIZE={max_размер_файла |UNLIMITED } ]
39
[, FILEGROWTH=величина_прироста ] )[,...n]
40. Изменение базы данных
ИЗМЕНЕНИЕ БАЗЫ ДАННЫХ40
<изменение_базы_данных> ::=
ALTER DATABASE имя_базы_данных
{ ADD FILE <определение_файла>[,...n]
[TO FILEGROUP имя_группы_файлов ]
| ADD LOG FILE <определение_файла>[,...n]
| REMOVE FILE логическое_имя_файла
| ADD FILEGROUP имя_группы_файлов
| REMOVE FILEGROUP имя_группы_файлов
| MODIFY FILE <определение_файла>
| MODIFY FILEGROUP имя_группы_файлов
<свойства_группы_файлов>}
41. Удаление базы данных
УДАЛЕНИЕ БАЗЫ ДАННЫХ41
DROP DATABASE имя_базы_данных [,...n]
42. Создание таблицы
СОЗДАНИЕ ТАБЛИЦЫ<определение_таблицы> ::=
CREATE TABLE имя_таблицы
(имя_столбца тип_данных
42
[NULL | NOT NULL ] [,...n])
43. ПРИМЕР
CREATE TABLE Товар(Название VARCHAR(50) NOT NULL,
Цена MONEY NOT NULL,
Тип
VARCHAR(50) NOT NULL,
Сорт VARCHAR(50),
43
Город_Товара VARCHAR(50))
44. Изменение таблицы
ИЗМЕНЕНИЕ ТАБЛИЦЫALTER TABLE имя_таблицы
{[ALTER COLUMN имя_столбца
{новый_тип_данных [(точность[,масштаб])] [
NULL | NOT NULL ]}]
| ADD { [имя_столбца тип_данных]
| имя_столбца AS выражение } [,...n]
| DROP {COLUMN имя_столбца}[,...n] }
44
ALTER TABLE Клиент ADD Рас_счет CHAR(20)
45. Правила при изменении определений столбцов
ПРАВИЛА ПРИ ИЗМЕНЕНИИОПРЕДЕЛЕНИЙ СТОЛБЦОВ
45
• размер столбца может быть увеличен до
максимального значения, допускаемого
соответствующим типом данных;
• размер столбца может быть уменьшен только в том
случае, если содержащееся в нем наибольшее
значение не будет превосходить его нового размера;
• количество разрядов числового типа данных всегда
может быть увеличено;
• количество разрядов числового типа данных может
быть уменьшено только в том случае, если количество
разрядов наибольшего значения в соответствующем
столбце не будет превосходить нового числа
разрядов, определенного для этого столбца;
• количество десятичных знаков числового типа данных
может быть уменьшено или увеличено;
• тип данных столбца, как правило, может быть изменен.