Похожие презентации:
Язык запросов к реляционным базам данных
1. Язык запросов к реляционным базам данных
2. Общая характеристика SQL.
3. Характеристика SQL
SQL – Structured Query Language – структурированный язык запросовSQL – стандартный язык по работе
базами данными
с реляционными
SQL-запрос
СУБД
БД
данные
SQL является языком взаимодействия с СУБД
SQL является слабоструктурированным языком
SQL является встраиваемым в другие языки программирования
4. Стандарты SQL
Стандартизация языка дает возможность получить независимостьприложений БД от платформы СУБД
Существует несколько различных стандартов языка SQL
Стандарт ANSI/ISO SQL/89 (SQL1), SQL/92 (SQL2), SQL:1999 (SQL3),
SQL:2003 (SQL4), SQL:2008 (SQL5)
Стандарт X/OPEN - Европейский стандарт для ОС Unix
Стандарт SQL Access Group для интерфейсов доступа к БД (ODBC)
Появление стандарта SQL не решило задачу переносимости
приложений с одной платформы на другую.
American National Standards Institute – Американский институт
национальных стандартов.
International Standards Organization – Международная организация по
стандартам.
5. Структура SQL
Язык SQLОпределения данных (DDL)
операторы
CREATE
DROP
ALTER
TABLE
INDEX
VIEW
INSERT
DELETE
UPDETE
Выборки данных (DQL)
SELECT
GRANT
REVOKE
Управления доступом (CAL)
DENY
COMMIT
Управления транзакциями (ТCL)
ROLLBACK
SAVE POINT
PREPARE, EXECUTE,
Программирования (DCL)
DECLARE, OPEN, FITCH, CLOSE
Изменения данных (DML)
6. Структура операторов SQL
Глаголпредложение …
Определяет
выполняемые
действия
Ключевое слово
пример
глагол
предложение
Описывает данные или содержит уточняющую
информацию о выполняемых действия
Наименование таблиц, столбцов
или выражение
включает Наименование таблиц, столбцов
константы,
предложение
функции,
операции
DELETE FROM ПРЕЙСКУРАНТ
WHERE ЦЕНА < 2000
предложение
7. Оператор создания БД
Операторы создания, модификации и удаления базы данных в стандартеSQL отсутствуют!
В каждой СУБД используются свои подходы для выполнения этих операций
В Oracle база данных создается в процессе установки СУБД.
В OS/2 EE база данных создается специальной утилитой
CREATEDATABASE (DROPDATABASE).
В MS Access база данных создается командой
интерфейса.
В SQL Server база данных создается командой SQL
CREATE DATABASE (DROP DATABASE).
8. Операторы описания структуры БД
Оператор создания таблицыCREATE TABLE имя_таблицы
(<описание_элемента_таблицы>[,…])
элемент_таблицы:
1) столбец,
2) ограничение целостности таблицы:
а) первичный ключ Primary key …
б) вторичный ключ Foreign key…
в) условие уникальности Unique …
г) условие проверки границ Check
9. Операторы описания структуры БД
NULL в СУБД — специальное значение (псевдозначение),может принимать
поле таблицы. Оно
Описание столбцакоторое
в стандарте
ANSI/ISOлюбое
:
означает, что данные в поле не были введены.
имя_столбца тип [NOT NULL] [DEFAULT значение ]
в Т-SQL
[ IDENTITY [ ( нач.значение, приращение) ]
[ограничение_целостности_столбца]
DEFAULT может содержать значения констант, функции,
Ограничение целостности
- этоSQL-92 или значение NULL.
функции безстолбца
параметров
Primary key | Unique
Foreign key references имя_таблицы_рк (имя_столбца)
[ON DELETE { CASCADE | SET NULL | SET DEFAULT | NO ACTION } ]
[ON UPDATE { CASCADE | SET NULL | SET DEFAULT | NO ACTION } ]
Check (условие_для столбца) Проверочное ограничение можно создать с
любым логическим выражением,
возвращающим
значение
Операции с NULL в СУБД интерпретируются
особым
образом!TRUE или FALSE
насоснове
логических
операторов.
Например, любая операция сравнения
NULL (даже
сравнение
В выражении
используются
имена столбцов,
NULL = NULL), даёт в результате значение
False, NULL
–
константы,
функции
значения не участвуют в сравнении, если
это только
не и шаблоны.
специальное сравнение с NULL.
10. Операторы описания структуры БД
Пример создания таблицы КЛИЕНТЫCREATE TABLE КЛИЕНТЫ
(Код integer not null Primary key
Фирма varchar(40) not null,
КодМен integer not null Foreign key references СЛУЖАЩИЕ(Код),
МинКредит money default 10000 not null Check(МинКредит >=5000)
11. Операторы описания структуры БД
Описание ограничение целостности таблицы в стандарте ANSI/ISO:Primary key | Unique (имя_столбца [,…] )
Foreign key [имя_отношения] (имя_столбца [,…]) references
имя_таблицы_РК (имя_столбца [,…])
[ON DELETE { CASCADE | SET NULL | SET DEFAULT | NO ACTION } ]
[ON UPDATE { CASCADE | SET NULL | SET DEFAULT | NO ACTION } ]
Check (условие_для_столбцов)
Пример создания таблицы КЛИЕНТЫ
CREATE TABLE КЛИЕНТЫ
(Код integer not null,
Фирма varchar(40) not null,
На уровне таблицы одно проверочное
ограничение можно применять к
нескольким столбцам
КодМен integer not null,
МинКредит money default 10000 not null,
Primary key (Код),
Foreign key FK_клиенты_служащие (КодМен) references СЛУЖАЩИЕ (Код),
Check(МинКредит >=5000 and Len(Фирма ) > 3 )
12. Операторы описания структуры БД
Описание ограничений таблицы в MS SQL Server[ CONSTRAINT имя_огр.целостности ]
{
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
{ ( имя_столбца [ ASC | DESC ] [ ,...n ] ) }
[ WITH FILLFACTOR = fillfactor ]
[ ON { filegroup | DEFAULT } ]
Дополнительная конструкция, с
помощью которой требуется
задавать имя ограничения.
Так же и для ограничения
целостности столбца и DEFAULT.
| FOREIGN KEY
(имя_столбца[ ,...n ] )
REFERENCES имя_таблицы (имя_столбца [ ,...n ] )
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION ]
| DEFAULT значение FOR имя_столбца [ WITH VALUES ]
Определяет заполнение
| CHECK [ NOT FOR REPLICATION ] ( условие )
имеющихся строк значением
}
Дополнительно в Т-SQL
Литеральное значение, NULL
или системная функция
13. Операторы описания структуры БД
Изменения определения таблицыALTER TABLE имя_таблицы <описание_изменений_таблицы>
описание_изменений_таблицы:
Добавить
ADD {<определение_столбца> |
<определение_ограничения_целостности_таблицы>}
Удалить
DROP {имя_столбца | [ CONSTRAINT ] имя_ограничения}
Изменить ALTER имя_столбца { SET DEFAULT значение | DROP DEFAULT}
MS SQL SERVER
ALTER COLUMN имя_столбца тип { NULL | NOT NULL ]}
В T-SQL для изменения значения по умолчанию или ограничения доменной
целостности надо выполнить удаление, а затем добавить соответственно новое
значение.
14. Операторы описания структуры БД
В MS SQL SERVER для столбцов непосредственно возможноизменить только тип и/или Null/Not null
ALTER TABLE имя_таблицы
ALTER COLUMN имя_колонки тип { NULL | NOT NULL ]}
Нельзя изменять следующие столбцы:
- используемый в ограничении PRIMARY KEY, FOREIGN KEY, CHECK или
UNIQUE (но возможно увеличением длины столбца, используемого в
ограничении CHECK или UNIQUE);
- вычисляемый столбец;
- используемый в статистике, сформированной с помощью инструкции
CREATE STATISTICS (кроме, столбцов
varchar, nvarchar
или varbinary,
для
Для изменения
имени таблицы
или столбца
которых тип не изменяется и не заменяется
NULL. Приприменяется
этом, нужно системная
в MS SQL SERVER
предварительно удалить статистику);
хранимая процедура (не оператор Т-SQL)
- с определением по умолчанию;
sp_rename (…)
…
Нельзя изменять :
- тип данных столбцов, включенных в индекс, кроме, изменения столбца с
типом varchar, nvarchar или varbinary на новый размер больше старого);
- с NOT NULL на NULL столбцы, включенные в первичный ключ.
15. Операторы описания структуры БД
Пример в стандарте ANSI/ISOизменения таблицы КЛИЕНТЫ, после создания таблицы СЛУЖАЩИЕ
ALTER TABLE КЛИЕНТЫ
ADD Foreign key FK_клиенты_служащие (КодМен) references
СЛУЖАЩИЕ (Код)
Пример в MS SQL SERVER
ALTER TABLE КЛИЕНТЫ
ADD CONSTRAINT FK_клиенты_служащие Foreign key (КодМен) references
СЛУЖАЩИЕ (Код)