Язык структурированных запросов. Лекция №7

Содержание

Слайд 2

Язык структурированных запросов
Structured Query Language

Язык структурированных запросов Structured Query Language

Слайд 3

SQL - Structured Query Language (Язык Структурированных Запросов) – универсальный язык для

SQL - Structured Query Language (Язык Структурированных Запросов) – универсальный язык для
создания модификации и управления данными в реляционных БД.

Слайд 4

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый
элемент данных, необходимо знать:
1.
2.
3.

Слайд 5

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый
элемент данных, необходимо знать:
1. имя таблицы;
2.
3.

Слайд 6

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый
элемент данных, необходимо знать:
1. имя таблицы;
2. название столбца;
3.

Слайд 7

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый

Если каждый элемент данных, или значение, определяется пересечением строки. Чтобы найти требуемый
элемент данных, необходимо знать:
1. имя таблицы;
2. название столбца;
3. значение первичного ключа;

Слайд 8

В реляционных БД существует 2 типа таблиц:
пользовательские;
системные.
Пользовательские таблицы содержат информацию, для которых

В реляционных БД существует 2 типа таблиц: пользовательские; системные. Пользовательские таблицы содержат
собственно и создавалась БД.
Системные таблицы (системные каталоги) содержат описание БД.

Слайд 9

Независимость
Отражается в двух аспектах:
1. изменение приложения, без изменения структуры БД;
2. изменение структуры

Независимость Отражается в двух аспектах: 1. изменение приложения, без изменения структуры БД;
БД, без изменения работы приложений.
В БД такое свойство достигается наличием двух структур: физической и логической морелей БД.

Слайд 10

Физическая независимость данных – представление данных абсолютно не зависит от способа их

Физическая независимость данных – представление данных абсолютно не зависит от способа их
физического хранения.
Примеры:
1. Недостаток места для хранения информации.
2. Выход из строя устройства.
3. Увеличение производительности системы.

Слайд 11

Логическая независимость – изменение взаимосвязей между таблицами, столбцами и строками не влияет

Логическая независимость – изменение взаимосвязей между таблицами, столбцами и строками не влияет
на правильное функционирование программных приложений и текущих запросов.

Слайд 12

Язык высокого уровня
SQL используется для:
1. манипуляции с данными (data manipulation);
2. определения данных

Язык высокого уровня SQL используется для: 1. манипуляции с данными (data manipulation);
(data definition):
- выборка (data retrieval);
- модификации (data modification);
3. администрирование данных (data administration).
Выборка – поиск необходимых данных.
Модификация – добавление, удаление или изменение данных.

Слайд 13

Операции выборки:
Select *
From class

Операции выборки: Select * From class

Слайд 14

Операции выборки:
Select *
From class

Операции выборки: Select * From class

Слайд 15

Операции по модификации:
Insert into class
Values (‘5’, ‘9A’, ‘Смирнова А.П.’)

Операции по модификации: Insert into class Values (‘5’, ‘9A’, ‘Смирнова А.П.’)

Слайд 16

Операции по модификации:
Insert into class
Values (‘5’, ‘9A’, ‘Смирнова А.П.’)

Операции по модификации: Insert into class Values (‘5’, ‘9A’, ‘Смирнова А.П.’)

Слайд 17

Создание таблицы:
Create table test
(id int, name char (15))

Создание таблицы: Create table test (id int, name char (15))

Слайд 18

Операции администрирования или управления данными:
Grant select
On test
To teatcher

Операции администрирования или управления данными: Grant select On test To teatcher

Слайд 19

Реляционные операции
В управлении реляционными БД упоминается три операции по выборке данных:
- проектирование:

Реляционные операции В управлении реляционными БД упоминается три операции по выборке данных:
выбирает столбцы;
- выбор (ограничение): выбирает строки;
- объединение: собирает вместе данные из связанных таблиц.
Все эти операции записываются с использованием ключевого слова Select.

Слайд 20

Общий синтаксис:
SELECT список выбора
FROM список таблиц
WHERE условия поиска

Общий синтаксис: SELECT список выбора FROM список таблиц WHERE условия поиска

Слайд 21

Операция проектирования позволяет указать системе, какие столбцы таблицы вы хотите просмотреть.
Например:
Select id_class,

Операция проектирования позволяет указать системе, какие столбцы таблицы вы хотите просмотреть. Например:
number_class
From class

Слайд 22

Операция проектирования позволяет указать системе, какие столбцы таблицы вы хотите просмотреть.
Например:
Select id_class,

Операция проектирования позволяет указать системе, какие столбцы таблицы вы хотите просмотреть. Например:
number_class
From class
Результат: в виде таблицы
(результирующая или
производная таблица)
Базовая таблица – содержит исходные
строки и данные

Слайд 23

Операция выбора позволяет получить из таблицы подмножества ее строк.
Например:
Select *
From class
Where teacher

Операция выбора позволяет получить из таблицы подмножества ее строк. Например: Select *
= “С*”

Слайд 24

Операция выбора позволяет получить из таблицы подмножества ее строк.
Например:
Select *
From class
Where teacher

Операция выбора позволяет получить из таблицы подмножества ее строк. Например: Select *
= “С*”

Слайд 25

Операция объединения может работать с одной или несколькими таблицами, соединяя данные таким

Операция объединения может работать с одной или несколькими таблицами, соединяя данные таким
образом, что можно легко сопоставить или выделить определенную информацию из своей БД.
Пример:
Select number_class, name
From class, students
Where class.id_class=titles.id_class

Слайд 26

Операция объединения может работать с одной или несколькими таблицами, соединяя данные таким

Операция объединения может работать с одной или несколькими таблицами, соединяя данные таким
образом, что можно легко сопоставить или выделить определенную информацию из своей БД.
Пример:
Select number_class, name
From class, students
Where class.id_class=titles.id_class

Слайд 27

Альтернативный способ просмотра данных
Курсор – виртуальная таблица или производная таблица.
Перемещаемая по

Альтернативный способ просмотра данных Курсор – виртуальная таблица или производная таблица. Перемещаемая
таблице рамка, через которую можно увидеть только необходимую часть информации.
Виртуальные таблицы не хранятся физически в БД. Это не копия некоторых данных из базовых таблиц, изменяя данные в курсоре – изменяются данные и в базовой таблице.

Слайд 28

Нули
При пропуске информации в БД возникает проблема несогласованности, т.е. возможно появление противоречий

Нули При пропуске информации в БД возникает проблема несогласованности, т.е. возможно появление
в логике обработки данных, в следствии чего появляется нарушение целостности БД.
В БД «нуль» не означает пустое поле или обычный математический нуль. Он отображает тот факт, что значение не известно, недоступно или неприменимо.

Слайд 29

Безопасность
Понятие безопасности связано с необходимостью управления доступом к информации.
Команды SQL Grant

Безопасность Понятие безопасности связано с необходимостью управления доступом к информации. Команды SQL
и Revoke позволяют привилегированным пользователям управлять правами других пользователей по просмотру и модификации информации.

Слайд 30

Целостность
Целостность очень важный и очень сложный вопрос при управлении реляционными БД.
Несогласованность

Целостность Целостность очень важный и очень сложный вопрос при управлении реляционными БД.
данных может возникать по ряду причин: сбои системы, ошибки в ПО или логические ошибки в приложениях. Реляционные системы управления БД защищают данные от такого типа несогласованности, гарантируя, что команда будет выполнена до конца, либо не выполнена полностью. Этот процесс называется управлением транзакциями.

Слайд 31

Целостность
Объектная целостность связана с корректным проектированием БД. Одно из требований, чтобы ни

Целостность Объектная целостность связана с корректным проектированием БД. Одно из требований, чтобы
один первичный ключ не имел нулевого значения.
Ссылочная целостность требует не противоречивости между частями информации повторяющихся в разных таблицах. Т.е. при изменении информации в одном месте она изменялась и во всех остальных частях.

Слайд 32

SQL применим как к локальным, так и распределенным БД.
Важным достоинством SQL

SQL применим как к локальным, так и распределенным БД. Важным достоинством SQL
при работе с распределенными БД, является не большая загрузка сети, т.к. передаются только запросы и результаты их выполнения.

Слайд 33

SQL позволяет:
- формировать состав полей набора данных при выполнении приложения;
- включать в

SQL позволяет: - формировать состав полей набора данных при выполнении приложения; -
набор данных поля и записи из разных таблиц;
- отбирать записи по сложным условиям и критериям;
- сортировать набор данных по любому полю, в том числе неиндексированному;
- осуществлять поиск данных по частичному совпадению со значениями в поле.

Слайд 34

SQL не обладает возможностями полнофункционального языка программирования, а ориентирован на доступ к

SQL не обладает возможностями полнофункционального языка программирования, а ориентирован на доступ к
данным и поэтому включается в средства разработки программного обеспечения.
Выделяют два вида SQL-запросов:
1. статический;
2. динамический.

Слайд 35

Статический запрос – запрос включенный в исходный код на этапе разработки программного

Статический запрос – запрос включенный в исходный код на этапе разработки программного
приложения и в процессе жизненного цикла программы не изменяется.
Динамический запрос – формируется и изменяется в процессе работы программного обеспечения.

Слайд 36

Спасибо за внимание!!!

4

Спасибо за внимание!!! 4

Слайд 37

Синтаксис
Ключевые слова и операторы SQL всегда записываются прописными буквами (SELECT, FROM, WHERE).
Фигурные

Синтаксис Ключевые слова и операторы SQL всегда записываются прописными буквами (SELECT, FROM,
скобки {} вокруг слов или фраз – необходимо выбрать хотя бы одну из заключенных в них опций. Если опции разделены вертикальной чертой | - использование только одной из опций. Если опции разделены запятой (,) - использование одной или нескольких опций.
Квадратные скобки [] – заключенные опции не обязательны. Если опции разделены вертикальной чертой | - использование только одной из опций или вообще не использовать. Если опции разделены запятой (,) - использование одной или нескольких опций, либо вообще не использовать.

Слайд 38

Создание БД
Права управления БД:
Установка прав других пользователей на использование БД.
Регулярное создание резервных

Создание БД Права управления БД: Установка прав других пользователей на использование БД.
копий и запуск процедур восстановления в случаях сбоев системы.
Выделение в случае необходимости дополнительного пространства на диске под базу данных.
Владение большинством производных объектов БД.
Понимание типов данных БД и умение их использовать.

Слайд 39

Создание БД
В некоторых стандартах SQL оператор CREATE DATABASE не входит его заменяет

Создание БД В некоторых стандартах SQL оператор CREATE DATABASE не входит его
оператор CREATE SCHEMA –определяющий части БД, которыми будут владеть конкретные пользователи.
В зависимости от реализации в запись этого оператора могут входить разные предложения, позволяющие управлять расположением БД, ее размером и др. параметрами

Слайд 40

Создание БД
CREATE TABLE table-name
( [(size)],

Создание БД CREATE TABLE table-name ( [(size)], [(size)] ...) Команда CREATE TABLE
[(size)] ...)
Команда CREATE TABLE определяет имя таблицы и описание набора имён столбцов, указанных в определенном порядке. Она также определяет типы данных и размеры столбцов. Каждая таблица должна иметь по крайней мере один столбец.

Слайд 41

Создание БД
Замечание:
- Так как пробелы используются для разделения частей команды SQL,

Создание БД Замечание: - Так как пробелы используются для разделения частей команды
они не могут быть частью имени таблицы (или любого другого объекта, такого как индекс). Знак подчеркивания ( _ ) обычно используется для разделения слов в именах таблиц.

Слайд 42

Создание БД
Замечание:
- Значение аргумента размера зависит от типа данных. Если вы

Создание БД Замечание: - Значение аргумента размера зависит от типа данных. Если
его не указываете, ваша система сама будет назначать значение автоматически.
Числовые типы – хороший вариант, т.к. нет необходимости согласовывать размеры для их совместимости, но есть проблемы при использовании больших чисел – вопрос в том достаточно ли велики для того чтобы их вместить.
Символьные типы – размер указывается всегда.

Слайд 43

Создание БД
Таблицы принадлежат пользователю, который их создал, и имена всех таблиц, принадлежащих

Создание БД Таблицы принадлежат пользователю, который их создал, и имена всех таблиц,
данному пользователю, должны отличаться друга от друга, как и имена всех столбцов внутри данной таблицы. Отдельные таблицы могут использовать одинаковые имена столбцов, даже если они принадлежат одному и тому же пользователю.
<имя_пользователя>.<имя_таблицы>

Слайд 44

Создание БД
Порядок столбцов в таблице определяется порядком, в котором они указаны. Имена

Создание БД Порядок столбцов в таблице определяется порядком, в котором они указаны.
столбца не должны разделяться при переносе строки (что делается для удобочитаемости) и отделяются запятыми.
CREATE TABLE group
(id_group integer,
name group char (5),
city char (10))

Слайд 45

Индексы
Таблицы могут иметь большое количество строк, а, так как строки не находятся

Индексы Таблицы могут иметь большое количество строк, а, так как строки не
в каком-нибудь определенном порядке, их поиск по указанному значению может потребовать времени. Индексный адрес это и забота, и в то же время обеспечение способа объединения всех значений в группы из одной или больше строк, которые отличаются одна от другой.
Индекс - это упорядоченный (буквенный или числовой) список столбцов или групп столбцов в таблице.

Слайд 46

Индексы
Индекс значительно улучшает эффективность запросов, но использование индекса несколько замедляет операции модификации

Индексы Индекс значительно улучшает эффективность запросов, но использование индекса несколько замедляет операции
DML (такие как INSERT и DELETE), а сам индекс занимает память. Следовательно, каждый раз, когда вы создаёте таблицу, вы должны принять решение, индексировать её или нет.

Слайд 47

Создание БД
Индексы могут состоять из нескольких полей. Если больше чем одно поле

Создание БД Индексы могут состоять из нескольких полей. Если больше чем одно
указывается для одного индекса, второе упорядочивается внутри первого, третье внутри второго, и так далее.
CREATE INDEX name_index
ON name_tables (column_name [,column_name]...)
CREATE UNIQUE INDEX name_index
ON name_tables (column_name [,column_name]...)

Слайд 48

Индексы
Замечание:
- создание уникального индекса имеет смысл только тогда когда это диктуется

Индексы Замечание: - создание уникального индекса имеет смысл только тогда когда это
самими данными.
усилить уникальность поля.
эта команда будет отклонена, если уже имеются идентичные значения в поле.
Лучше создавать индексы в процессе создания таблицы и прежде чем введены любые значения.
для уникального индекса состоящего из более чем одного поля, это - комбинация значений, каждое из которых может и не быть уникальным.

Слайд 49

Индексы
Синтаксис для удаления индекса:
DROP INDEX index_name
Удаление индекса не влияет на содержимое полей.

Индексы Синтаксис для удаления индекса: DROP INDEX index_name Удаление индекса не влияет на содержимое полей.

Слайд 50

Изменение таблицы после создания
Команда ALTER TABLE это широко распространённая и довольно содержательная

Изменение таблицы после создания Команда ALTER TABLE это широко распространённая и довольно
форма, хотя её возможности несколько ограничены. Она используется для того, чтобы:
- изменить определение существующей таблицы;
- добавить столбцы к таблице;
- удалять столбцы;
- изменять размеры столбца;
- добавлять или удалять ограничения. 

Слайд 51

Изменение таблицы после создания
Синтаксис добавления столбца к таблице:
ALTER TABLE name_table
ADD

Изменение таблицы после создания Синтаксис добавления столбца к таблице: ALTER TABLE name_table ADD ;
name> ;

Слайд 52

Удаление таблицы
Вы должны быть владельцем (т.е. создателем) таблицы, чтобы иметь возможность удалить

Удаление таблицы Вы должны быть владельцем (т.е. создателем) таблицы, чтобы иметь возможность
её.
При удалении таблицы SQL сначала потребует, чтобы вы очистили таблицу прежде чем удалить её из БД.

Слайд 53

Удаление таблицы
Синтаксис для удаления вашей таблицы, если конечно она является пустой, следующий:
DROP

Удаление таблицы Синтаксис для удаления вашей таблицы, если конечно она является пустой, следующий: DROP TABLE
TABLE

Слайд 54

Удаление таблицы
Замечание:
При применении этой команды имя таблицы больше не распознаётся, и нет

Удаление таблицы Замечание: При применении этой команды имя таблицы больше не распознаётся,
такой команды, которая могла бы быть дана этому объекту.
Необходимо убедиться, что эта таблица не ссылается внешним ключом к другой таблице, а также нет других команд которые используют в своей работе эту таблицу. 

Слайд 55

Ограничение значений
Когда вы создаёте таблицу возможно указывать ограничения на значения, которые могут

Ограничение значений Когда вы создаёте таблицу возможно указывать ограничения на значения, которые
быть введены в поля. Если это сделано, SQL будет отклонять любые значения, нарушающие критерии, которые вы определили.
Есть два основных типа ограничений: ограничение столбца и ограничение таблицы.
Различие между ними в том, что ограничение столбца применяется только к отдельным столбцам, в то время как ограничение таблицы применяется к группам из одного и более столбцов.

Слайд 56

Ограничение значений
Ограничение столбца записывается после типа данных и перед запятой. Ограничение таблицы

Ограничение значений Ограничение столбца записывается после типа данных и перед запятой. Ограничение
помещается в конец имени таблицы после последнего имени столбца, но перед заключительной круглой скобкой.
CREATE TABLE
( , ...
( [, ])...)

Слайд 57

Исключение пустых значений
CREATE TABLE group
(id_group integer NOT NULL,
name group char

Исключение пустых значений CREATE TABLE group (id_group integer NOT NULL, name group
(5) NOT NULL,
city char (10))

Слайд 58

Уникальность столбца
CREATE TABLE group
(id_group integer NOT NULL UNIQUE,
name group char

Уникальность столбца CREATE TABLE group (id_group integer NOT NULL UNIQUE, name group
(5),
city char (10))

Слайд 59

Уникальность таблицы
CREATE TABLE group
(id_group integer NOT NULL,
name group char (5) NOT

Уникальность таблицы CREATE TABLE group (id_group integer NOT NULL, name group char
NULL,
city char (10),
UNIQUE (id_group))

Слайд 60

Определение первичных ключей
CREATE TABLE group
(id_group integer NOT NULL PRIMARY KEY,
name

Определение первичных ключей CREATE TABLE group (id_group integer NOT NULL PRIMARY KEY,
group char (5) NOT NULL,
city char (10))

Слайд 61

Составной первичный ключ
CREATE TABLE group
(id_group integer NOT NULL,
name group char

Составной первичный ключ CREATE TABLE group (id_group integer NOT NULL, name group
(5) NOT NULL,
city char (10),
PRIMARY KEY (id_group, name))

Слайд 62

Проверка значений полей
Для установки таких ограничений используется ограничение CHECK – устанавливает условие

Проверка значений полей Для установки таких ограничений используется ограничение CHECK – устанавливает
которому должно удовлетворять вводимое значение
CREATE TABLE group
(id_group integer NOT NULL PRIMARY KEY,
name group char (5) NOT NULL,
city char (10),
count integer CHECK (count >=1))

Слайд 63

Предопределение перечня вводимых значений
CREATE TABLE group
(id_group integer NOT NULL PRIMARY KEY,

Предопределение перечня вводимых значений CREATE TABLE group (id_group integer NOT NULL PRIMARY

name_group char (5) CHECK,
(name_group IN (‘529-1’, ‘529-2’, ‘579’ )),
city char (10),
count integer CHECK (count >=1))

Слайд 64

Ограничение базирующиеся на нескольких полях
CREATE TABLE group
(id_group integer NOT NULL PRIMARY

Ограничение базирующиеся на нескольких полях CREATE TABLE group (id_group integer NOT NULL
KEY,
name_group char (5),
city char (10),
kurs integer,
CHECK (kurs>1 and kurs<5 and name_group=520 … 526))

Слайд 65

Установка значений по умолчанию
CREATE TABLE group
(id_group integer NOT NULL PRIMARY KEY,

Установка значений по умолчанию CREATE TABLE group (id_group integer NOT NULL PRIMARY

name_group char (5) DEFAULT = ‘526-1',
city char (10),
count integer CHECK (count >=1))
Имя файла: Язык-структурированных-запросов.-Лекция-№7.pptx
Количество просмотров: 50
Количество скачиваний: 0