Разделы презентаций


ЯзыкSQL

Содержание

SQL (Structured Query Language) ─ структурированный язык запросов ─ стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры, и его прототип был разработан в конце 70-х

Слайды и текст этой презентации

Слайд 1БАЗЫ ДАННЫХ
Лекции № 6
Язык SQL

БАЗЫ ДАННЫХЛекции № 6Язык SQL

Слайд 2SQL (Structured Query Language) ─ структурированный язык запросов ─ стандартный

язык запросов по работе с реляционными БД.
Язык SQL появился

после реляционной алгебры, и его прототип был разработан в конце 70-х годов в компании IBM Research.
Он был реализован в первом прототипе реляционной СУБД фирмы IBM System R.
В дальнейшем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом  для языков манипулирования данными в реляционных СУБД.


SQL (Structured Query Language) ─ структурированный язык запросов ─ стандартный язык запросов по работе с реляционными БД.

Слайд 3SQL - это гибкий и эффективный язык, все средства которого

применяются для манипулирования реляционными данными и для их исследования.
SQL

является языком четвертого поколения (4GL).
Это означает, что данный язык описывает то, что нужно выполнить, но не как это должно быть сделано.
Языки третьего поколения (C, Cobol) - процедурные.
Программа, составленная на языке третьего поколения, реализуется путем выполнения пошагового алгоритма.


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

Слайд 4Структура SQL:
SQL является полным языком, в нем присутствуют не

только операции запросов, но и операторы, соответствующие DDL ─ Data

Definition Language ─ языку описания данных.
Кроме того, язык содержит операторы, предназначенные для управления БД, управления транзакциями, администрирования данных.


Структура SQL: SQL является полным языком, в нем присутствуют не только операции запросов, но и операторы, соответствующие

Слайд 5Типы данных языка SQL/92 :
CHARACTER(n) или CHAR(n) ─ символьные строки

постоянной длины в n символов. При задании данного типа под

каждое значение всегда отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.
NUMERIC[(n,m)] ─ точные числа, n ─ общее количество цифр в числе, m ─ количество цифр слева от десятичной точки. //[не обязательные элементы]
DECIMAL[(n,m)] ─ точные числа, n ─ общее количество цифр в числе, m ─ количество цифр слева от десятичной точки.
DEC[(n,m)] - то же, что и DECIMAL[(n,m)].


Типы данных языка SQL/92 :CHARACTER(n) или CHAR(n) ─ символьные строки постоянной длины в n символов. При задании

Слайд 6INTEGER или INT ─ целые числа.
SMALLINT ─ целые числа меньшего

диапазона.
FLOAT[(n)] ─ числа большой точности, хранимые в форме с плавающей

точкой. Здесь n ─ число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.
REAL ─ вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем FLOAT.
DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.
INTEGER или INT ─ целые числа.SMALLINT ─ целые числа меньшего диапазона.FLOAT[(n)] ─ числа большой точности, хранимые в

Слайд 7VARCHAR(n) - строка символов переменной длины.
BIT(n) ─ строка битов постоянной

длины.
DATE ─ календарная дата.
INTERVAL ─ временной интервал.
В стандарте определены следующие

константы:
строковые константы: 'Иванов ', ' Петров '.
константы с плавающей запятой: 2.9Е-4 0.54Е18.
константы времени, даты и временного интервала представляются в виде строковых констант.
Набор типов зависит от конкретной СУБД.


VARCHAR(n) - строка символов переменной длины.BIT(n) ─ строка битов постоянной длины.DATE ─ календарная дата.INTERVAL ─ временной интервал.В

Слайд 8В стандарте SQL определены стандартные встроенные функции для обработки текста,

чисел, даты-времени, определены арифметические операции (подробнее см. литературу).

В стандарте SQL определены стандартные встроенные функции для обработки текста, чисел, даты-времени, определены арифметические операции (подробнее см.

Слайд 9Операторы определения данных:
CREATE TABLE – создать таблицу,
DROP TABLE – удалить

таблицу,
ALTER TABLE – изменить таблицу,
CREATE VIEW - создать представление,
ALTER VIEW

- изменить представление,
DROP VIEW – удалить представление.


Операторы определения данных:CREATE TABLE – создать таблицу,DROP TABLE – удалить таблицу,ALTER TABLE – изменить таблицу,CREATE VIEW -

Слайд 10Операторы манипулирования данными:
DELETE – удаляет одну или несколько строк из

таблицы,
INSERT – вставляет строку в таблицу,
UPDATE – обновляет значение полей

в одной или нескольких строках.
Язык запросов:
SELECT – выборка и отображение данных одной или нескольких таблиц; формирует результирующую таблицу в соответствии с запросом.


Операторы манипулирования данными:DELETE – удаляет одну или несколько строк из таблицы,INSERT – вставляет строку в таблицу,UPDATE –

Слайд 11Администрирование данных:
CREATE DATABASE – создать новую БД,
DROP DATABASE – удалить

БД,
GRANT – предоставить права доступа,
REVOKE – отменить права доступа и

др.
Управление транзакциями:
COMMIT – завершить транзакцию,
ROLLBACK – откат транзакции,
SAVEPOINT – сохранить промежуточную точку транзакции.


Администрирование данных:CREATE DATABASE – создать новую БД,DROP DATABASE – удалить БД,GRANT – предоставить права доступа,REVOKE – отменить

Слайд 12Соглашения:
зарезервированные слова – ПРОПИСНЫМИ,
слова определяемые пользователем – строчными,
{обязательный элемент},
[необязательный элемент],
«…»

- необязательная возможность повторения конструкции от 0 до нескольких раз,
«

| » - выбор одного из нескольких.


Соглашения:зарезервированные слова – ПРОПИСНЫМИ,слова определяемые пользователем – строчными,{обязательный элемент},[необязательный элемент],«…» - необязательная возможность повторения конструкции от 0

Слайд 13Синтаксис оператора SELECT:
SELECT [DICTINCT | ALL] {*| [список полей]}
FROM

таблиц>
[WHERE ]
[GROUP BY ]
[HAVING

для группы>]
[ORDER BY <список полей, по которым требуется упорядочить>]


Синтаксис оператора SELECT:SELECT [DICTINCT | ALL] {*| [список полей]}FROM [WHERE ][GROUP BY ][HAVING ][ORDER BY ]

Слайд 14Простые запросы:
SELECT *
FROM
- выводит все столбцы и строки

данной таблицы.
SELECT < поле1>, < поле2>, … < полеN>
FROM
-

выводит перечисленные столбцы из данной таблицы.
DISTINCT – исключает вывод дубликатов строк.
ALL – вывод всех строк таблицы (по умолчанию).


Простые запросы:SELECT *FROM - выводит все столбцы и строки данной таблицы.SELECT < поле1>, < поле2>, … <

Слайд 15Выборка по условию:
SELECT [DICTINCT | ALL] {*| [список полей]}
FROM

таблиц>
WHERE
В качестве условий отбора могут быть использованы

предикаты:
=, <>, >, <, <=, >=, AND, OR, NOT - для сравнения результатов вычисления двух выражений,
BETWEEN a AND b – предикат TRUE, когда вычисленное значение попадает в указанный диапазон (NOT BETWEEN a AND b - когда не входит), для числовых и символьных, a < b,


Выборка по условию:SELECT [DICTINCT | ALL] {*| [список полей]}FROM WHERE В качестве условий отбора могут быть использованы

Слайд 16IN – предикат TRUE, когда сравниваемое значение входит в заданное

множество (NOT IN – когда не входит),
LIKE – задает шаблон

поиска, применим к символьным полям:
- символ «_» допускает наличие одного символа в указанном месте (например: LIKE 'обл_ко '),
- символ «%» допускает в указанном месте последовательности любых символов произвольной длины (например: LIKE 'P%'),


IN – предикат TRUE, когда сравниваемое значение входит в заданное множество (NOT IN – когда не входит),LIKE

Слайд 17IS NULL – предикат, применяющийся для выявления равенства значения некоторого

атрибута неопределенному значению (IS NOT NULL – все наоборот),
EXIST (NOT

EXIST ) – используют во встроенных подзапросах.
Примеры: имеем отношение
STUDENT (Kod, Fam, Im, Gruppa, Stip, Ocenka)


IS NULL – предикат, применяющийся для выявления равенства значения некоторого атрибута неопределенному значению (IS NOT NULL –

Слайд 18Запросы (использовать все варианты ответа):
Вывести всю информацию о студентах.
Вывести фамилии

студентов и их оценки.
Вывести фамилии студентов (уникальные значения).
Вывести фамилии студентов,

получающих стипендию (не получающих).
Вывести фамилии студентов, получивших 4 и 5.
Вывести фамилии студентов, имеющих имена Владимир и Анатолий.
Вывести фамилии студентов, имеющих фамилию от 'К ' до 'Р' включительно.
Вывести фамилии студентов, не имеющих оценки.


Запросы (использовать все варианты ответа):Вывести всю информацию о студентах.Вывести фамилии студентов и их оценки.Вывести фамилии студентов (уникальные

Слайд 19ORDER BY – список полей упорядочивания результата (ASC – возрастание,

DESC – убывание).
Запрос:
Вывести фамилии в виде , отсортированном по столбцу

Fam в порядке возрастания :
SELECT *
FROM student
ORDER BY Fam ASC
(ASC – по умолчанию, можно не писать).


ORDER BY – список полей упорядочивания результата (ASC – возрастание, DESC – убывание).Запрос:Вывести фамилии в виде ,

Слайд 20Агрегатные функции:
COUNT – возвращает кол-во значений в таблице,
SUM - возвращает

сумму значений (числовых) в столбце,
AVG - возвращает среднее значение (числовых)

в столбце,
MIN - возвращает минимальное значение в столбце,
MAX - возвращает максимальное значение в столбце.
В качестве операнда функций – наименование одного столбца.
При вызове функций исключаются пустые значения (кроме функции COUNT(*)).


Агрегатные функции:COUNT – возвращает кол-во значений в таблице,SUM - возвращает сумму значений (числовых) в столбце,AVG - возвращает

Слайд 21Запросы:
Подсчитать и вывести общее количество студентов.
SELECT COUNT(*) AS kol
FROM

student
Определить среднее значение стипендии
SELECT AVG (stip) AS sredn
FROM

student

sredn
1250


Имя вычисляемого поля (псевдоним)

Запросы:Подсчитать и вывести общее количество студентов.SELECT COUNT(*) AS kol FROM student Определить среднее значение стипендииSELECT AVG (stip)

Слайд 22Вычисляемые поля
SELECT Fam, Stip, Stip*1.5
FROM student

Вычисляемые поляSELECT Fam, Stip, Stip*1.5 FROM student

Слайд 23GROUP BY – группирование результатов.
SELECT и GROUP BY тесно связаны

между собой.
Если в запросе есть группировка, то каждый элемент списка

SELECT должен иметь единственное значение для всей группы.
В SELECT могут включаться:
имена столбцов,
агрегатные функции,
константы,
выражения.
GROUP BY позволяет определить подмножество значений в особом поле в терминах другого поля и применить агрегирующую функцию к подмножеству.


GROUP BY – группирование результатов.SELECT и GROUP BY тесно связаны между собой.Если в запросе есть группировка, то

Слайд 24Запросы:
Вывести количество студентов в каждой группе.
SELECT Gruppa, COUNT(*) AS kol

FROM student
GROUP BY Gruppa
Вывести сумму стипендии, выдаваемой каждой группе.
SELECT

Gruppa, SUM(Stip) AS stipend
FROM student
GROUP BY Gruppa


Запросы:Вывести количество студентов в каждой группе.SELECT Gruppa, COUNT(*) AS kol FROM student GROUP BY GruppaВывести сумму стипендии,

Слайд 25Вывести среднее значение стипендии по группам:

SELECT Gruppa, AVG(Stip) AS

sredn
FROM student
GROUP BY Gruppa


Вывести среднее значение стипендии по группам: SELECT Gruppa, AVG(Stip) AS sredn FROM student GROUP BY Gruppa

Слайд 26Вложенные подзапросы
Стандарт языка позволяет в тело одного оператора SELECT внедрять

другой оператор SELECT .
Получается внешний и внутренний (внедряемый) операторы запроса.
Обычно

внутренний запрос генерирует значение, который проверяется в предикате внешнего запроса (в предложении WHERE или HAVING), определяющего, верно оно или нет.


Вложенные подзапросыСтандарт языка позволяет в тело одного оператора SELECT внедрять другой оператор SELECT .Получается внешний и внутренний

Слайд 27Виды подзапросов:
- скалярный подзапрос возвращает одно значение,
строковый подзапрос возвращает

значения в виде одной строки,
табличный подзапрос возвращает данные в виде

таблицы.


Виды подзапросов: - скалярный подзапрос возвращает одно значение,строковый подзапрос возвращает значения в виде одной строки,табличный подзапрос возвращает

Слайд 28Накладываемые ограничения:
нельзя использовать в подзапросах ORDER BY (только в основном

запросе),
список в SELECT может включать только имена столбцов и выражения

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

Накладываемые ограничения:нельзя использовать в подзапросах ORDER BY (только в основном запросе),список в SELECT может включать только имена

Слайд 29Вывести фамилии и стипендии тех, у которых она > средней.

SELECT fam, stip
FROM student
WHERE stip >

(SELECT avg(stip)
FROM student)


Вывести фамилии и стипендии тех, у которых она > средней. SELECT fam, stip  FROM student 	WHERE

Слайд 30В стандарте языка операторы сравнения расширены до многократных сравнений с

использованием слов ANY и ALL.
Слово ANY, поставленное в предикате сравнения,

означает, что предикат будет TRUE, если хотя бы для одного значения из подзапроса, предикат сравнения =TRUE.
Слово ALL требует, чтобы предикат сравнения был TRUE при сравнении со всеми строками подзапроса


В стандарте языка операторы сравнения расширены до многократных сравнений с использованием слов ANY и ALL.Слово ANY, поставленное

Слайд 31Определить студентов, у которых стипендии превышают начисления хотя бы одного

студента в группе 1223
SELECT fam, stip
FROM student

WHERE stip > ANY
(SELECT stip
FROM student
WHERE gruppa=1223)


Определить студентов, у которых стипендии превышают начисления хотя бы одного студента в группе 1223SELECT fam, stip

Слайд 32Определить студентов, у которых стипендии превышают начисления любого студента в

группе 1223
SELECT fam, stip
FROM student
WHERE stip

> ALL
(SELECT stip
FROM student
WHERE gruppa=1223)


Определить студентов, у которых стипендии превышают начисления любого студента в группе 1223SELECT fam, stip  FROM student

Слайд 33Предложение HAVING
применяется после группировки для определения предиката, фильтрующие группы по

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

помощью агрегатных функций, для групп строк.


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

Слайд 34Запрос: Получить группы, количество студентов в группе, среднюю стипендию для

групп, у которых средняя стипендия меньше 800
SELECT gruppa, count(gruppa)

as kol, avg(stip) as cred
FROM zaproc
GROUP BY gruppa
HAVING avg(stip) < 800

Where здесь не годится, т.к. анализируется несколько строк.


Запрос: Получить группы, количество студентов в группе, среднюю стипендию для групп, у которых средняя стипендия меньше 800

Слайд 35Порядок обработки предложений в SELECT:
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY

Порядок обработки предложений в SELECT:FROMWHEREGROUP BYHAVINGSELECTORDER BY

Слайд 36Многотабличные запросы
Для того чтобы осуществить объединение информации из нескольких таблиц,

необходимо выполнить операцию соединения.
При этой операции объединение информации из таблиц

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


Многотабличные запросыДля того чтобы осуществить объединение информации из нескольких таблиц, необходимо выполнить операцию соединения.При этой операции объединение

Слайд 37Самый простой запрос:
SELECT *
FROM R1, R2 – соответствует декартову

произведению таблиц R1, R2 .
A B
a b c d
1 2 2 4
2 1 3 3
SELECT * FROM A, B

Самый простой запрос:SELECT * FROM R1, R2 – соответствует декартову произведению таблиц R1, R2 .A				Ba		b		c	d1		2		2	42		1		3	3 SELECT *

Слайд 38Поэтому перечисление таблиц используется с условием соединения записей из разных

таблиц в предложении WHERE:

SELECT *
FROM A, B
WHERE a

= c
Результат:
a b c d
2 1 2 4


Поэтому перечисление таблиц используется с условием соединения записей из разных таблиц в предложении WHERE:SELECT * FROM A,

Слайд 39Существует несколько способов соединения таблиц:
соединения равенства (часто используется),
соединения неравенства (используются

редко),
внешние соединения.
Рассмотрим на примере отношений:
КЛИЕНТЫ (Код_клиента, Фамилия, Имя),
ТОВАРЫ (Код_товара, Наименование,

Цена , Количество),
ПРОДАЖИ (Код_продаж, Код_клиента, Код_товара, Продано).


Существует несколько способов соединения таблиц:соединения равенства (часто используется),соединения неравенства (используются редко),внешние соединения.Рассмотрим на примере отношений:КЛИЕНТЫ (Код_клиента, Фамилия,

Слайд 40Соединения равенства
SELECT table1.field1,… tableN.fieldN
FROM table1, … tableN
WHERE table1.common_field1= table2.common_field1
{AND table1.common_field2=

table2.common_field2}

Соединения равенстваSELECT table1.field1,… tableN.fieldNFROM table1, … tableNWHERE table1.common_field1= table2.common_field1{AND table1.common_field2= table2.common_field2}

Слайд 41Запрос: Вывести сведения о клиентах и их покупках (сведения в

таблице ПРОДАЖИ).
SELECT Клиенты.Фамилия, Продажи.Продано
FROM Клиенты, Продажи
WHERE
Клиенты.Код_клиента =

Продажи.Код_клиента


Запрос: Вывести сведения о клиентах и их покупках (сведения в таблице ПРОДАЖИ).SELECT Клиенты.Фамилия, Продажи.Продано FROM Клиенты, Продажи

Слайд 42Запрос: Вывести для каждого клиента суммарное количество покупок
SELECT Клиенты.Фамилия,

SUM (Продажи.Продано) AS Количество
FROM Клиенты, Продажи
WHERE
Клиенты.Код_клиента = Продажи.Код_клиента
GROUP BY

Клиенты.Фамилия


Запрос: Вывести для каждого клиента суммарное количество покупокSELECT Клиенты.Фамилия,   SUM (Продажи.Продано) AS КоличествоFROM Клиенты, ПродажиWHERE

Слайд 43Выборка из 3 таблиц проводится аналогично.
Запрос: Вывести для каждого клиента

суммарное количество покупок по видам товара
SELECT Клиенты.Фамилия, SUM (Продажи.Продано)

AS Количество
FROM Клиенты, Продажи, Товар
WHERE (Клиенты.Код_клиента = Продажи.Код_клиента) and (Продажи.Код_товара=Товары.Код_товара)
GROUP BY Клиенты.Фамилия


Выборка из 3 таблиц проводится аналогично.Запрос: Вывести для каждого клиента суммарное количество покупок по видам товараSELECT Клиенты.Фамилия,

Слайд 44Внешнее соединения
Результат запроса будет содержать все записи одной из таблиц,

даже в том случае, если в связанной с ней таблице

отсутствуют совпадающие значения.
Этот тип соединения реализуется с помощью оператора OUTER JOIN.


Внешнее соединенияРезультат запроса будет содержать все записи одной из таблиц, даже в том случае, если в связанной

Слайд 45Различают:
левое внешнее соединение LEFT OUTER JOIN – выборка будет содержать

все записи таблицы, имя которой указано слева от оператора,
правое внешнее

соединение RIGHT OUTER JOIN – выборка будет содержать все записи таблицы, имя которой указано справа от оператора,
полное внешнее соединение FULL OUTER JOIN – выборка будет содержать все записи из правой и левой таблицы.


Различают:левое внешнее соединение LEFT OUTER JOIN – выборка будет содержать все записи таблицы, имя которой указано слева

Слайд 46Синтаксис:
SELECT table1.field1, table2.field2, ….
FROM table1
LEFT | RIGHT |

FULL {OUTER } JOIN table2
ON условие
{LEFT

| RIGHT | FULL {OUTER } JOIN table3
ON условие}


Синтаксис:SELECT table1.field1, table2.field2, …. FROM table1 LEFT | RIGHT | FULL {OUTER } JOIN table2  ON

Слайд 47Запрос: Выбрать из таблицы «Товары» список товаров, а из таблицы

«Продажи» - суммарное количество проданных товаров.
SELECT Товары.Наименование,
SUM (Продажи.Продано) AS

Всего
FROM Товары
LEFT OUTER JOIN Продажи
ON Продажи.Код_товара = Товары.Код_товара
GROUP BY Товары.Наименование


Запрос: Выбрать из таблицы «Товары» список товаров, а из таблицы «Продажи» - суммарное количество проданных товаров.SELECT Товары.Наименование,

Слайд 48Команда создания таблицы — CREATE TABLE
CREATE TABLE имя_таблицы
({ |

_ограничения _таблицы> } [,..., {| }])
определение_столбца

— задание имени, типа данных и параметров отдельного столбца таблицы. Названия столбцов должны соответствовать правилам для идентификаторов и быть уникальными в пределах таблицы;
определение_ограничения_таблицы — задание некоторого ограничения целостности на уровне таблицы.
Команда создания таблицы — CREATE TABLE CREATE TABLE имя_таблицы({ | } [,..., {| }])определение_столбца — задание имени,

Слайд 49ограничение_столбца — с помощью этого предложения указываются ограничения, которые будут

определены для столбца. Синтаксис предложения следующий:
::=[ CONSTRAINT ]


{[ DEFAULT <выражение>] | [ NULL | NOT NULL ]
[ PRIMARY KEY | UNIQUE ] | [FOREIGN KEY REFERENCES <имя_главной_таблицы>[(<имя_столбца> [,...,n])]
[ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ] ]
| [CHECK (<условие проверки>)]}


ограничение_столбца — с помощью этого предложения указываются ограничения, которые будут определены для столбца. Синтаксис предложения следующий:::=[ CONSTRAINT

Слайд 50CONSTRAINT — необязательное ключевое слово, после которого указывается

название ограничения на значения столбца (имя_ограничения).

Имена ограничений должны быть уникальны пределах базы данных.
DEFAULT — задает значение по умолчанию для столбца.
NULL|NOT NULL — ключевые слова, разрешающие (NULL) или запрещающие (NOT NULL) хранение в столбце значений NULL


CONSTRAINT — необязательное ключевое слово, после которого  указывается  название  ограничения  на  значения

Слайд 51PRIMARY KEY — определение первичного ключа на уровне одного столбца

(т. е. первичный ключ будет состоять только из значений одного

столбца).
UNIQUE — указание на создание для столбца ограничения целостности UNIQUE (уникальность каждого отдельного значения в столбце).
FOREIGN KEY ... REFERENCES — указание на то, что столбец будет служить внешним ключом для таблицы, имя которой задается с помощью параметра <имя_главной_таблицы>.


PRIMARY KEY — определение первичного ключа на уровне одного столбца (т. е. первичный ключ будет состоять только

Слайд 52ON DELETE {CASCADE | NO ACTION} - эти ключевые слова

определяют действия, предпринимаемые при удалении строки из главной таблицы.
ON

UPDATE {CASCADE | NO ACTION} - эти ключевые слова определяют действия, предпринимаемые при модификации строки главной таблицы.
CHECK — ограничение целостности, инициирующее контроль вводимых в столбец (или столбцы) значений;


ON DELETE {CASCADE | NO ACTION} - эти ключевые слова определяют действия, предпринимаемые при удалении строки из

Слайд 53CREATE TABLE Учебный_план
(ID_План INTEGER NOT NULL,
ID_Дисциплина INTEGER NOT NULL,
Семестр INTEGER NOT

NULL,
Количество_часов INTEGER,
ID_Преподаватель INTEGER,
PRIMARY KEY (ID_План),
FOREIGN KEY (ID_Дисциплина)
REFERENCES Дисциплины
FOREIGN KEY (ID_Преподаватель)

REFERENCES Кадровый_состав
CHECK ((Семестр >= 1) OR (Семестр <= 10)))


CREATE TABLE Учебный_план		(ID_План	INTEGER NOT NULL,		ID_Дисциплина	INTEGER  NOT NULL,		Семестр		INTEGER  NOT NULL,		Количество_часов		INTEGER,		ID_Преподаватель	 	INTEGER,		PRIMARY KEY	(ID_План),		FOREIGN KEY (ID_Дисциплина) 			REFERENCES

Слайд 54 Изменение структуры таблицы — ALTER TABLE
Основные режимы использования команды

:
добавление столбца;
удаление столбца;
модификация столбца;
изменение, добавление и удаление ограничений (первичных и

внешних ключей, значений по умолчанию).


Изменение структуры таблицы — ALTER TABLEОсновные режимы использования команды :добавление столбца;удаление столбца;модификация столбца;изменение, добавление и удаление

Слайд 55ALTER TABLE
[ALTER COLUMN [SET DEFAULT ]|
[DROP DEFAULT]]
|[ADD

]
|[DROP COLUMN [CASCADE]|[RESTRICT]]
|[ADD []| []|[]|[]]
|[DROP CONSTRAINT

[CASCADE]|[RESTRICT]]
ALTER TABLE [ALTER COLUMN [SET DEFAULT ]|[DROP DEFAULT]] |[ADD ]|[DROP COLUMN [CASCADE]|[RESTRICT]] |[ADD []| []|[]|[]] |[DROP CONSTRAINT

Слайд 56Добавим, например, в таблицу «Студенты» столбец Год_поступления следующим образом:
ALTER TABLE

Студенты
ADD Год_поступления INTEGER NOT NULL
DEFAULT YEAR(GETDATE())
Пример

модификации столбца «Номер_группы» таблицы «Студенты» (тип данных INTEGER заменяется на CHAR):
ALTER TABLE Студенты
ALTER COLUMN Номер_группы CHAR(6) NOT NULL


Добавим, например, в таблицу «Студенты» столбец Год_поступления следующим образом:ALTER TABLE СтудентыADD Год_поступления INTEGER NOT NULL

Слайд 57Удаление из таблицы «Студенты» столбца «Год_поступления»:
ALTER TABLE Студенты
DROP COLUMN Год_поступления
Добавление

значения по умолчанию для столбца Номер_группы:
ALTER TABLE Студент
ADD CONSTRAINT

DEF_Номер_группы
DEFAULT 1 FOR Номер_группы


Удаление из таблицы «Студенты» столбца «Год_поступления»:ALTER TABLE СтудентыDROP COLUMN Год_поступленияДобавление значения по умолчанию для столбца Номер_группы:ALTER TABLE

Слайд 58Удаление таблиц — DROP TABLE
DROP TABLE

Но невозможно удалить таблицу,

если на нее с помощью ограничения целостности FOREIGN KEY ссылается

другая таблица.
Удаление таблиц — DROP TABLEDROP TABLE Но невозможно удалить таблицу, если на нее с помощью ограничения целостности

Слайд 59Добавление данных —INSERT
В простейшем случае вставка данных с помощью команды

INSERT предполагает использование конструкции :
INSERT [INTO] [()] VALUES ()
Пример:
INSERT

INTO Student VALUES (10, Иванов, Иван, 143,1500, 3) – вводится вся строка,
или выборочно
INSERT INTO Student (Kod, Ocenka) VALUES (3, 10)


Добавление данных —INSERTВ простейшем случае вставка данных с помощью команды INSERT предполагает использование конструкции :INSERT [INTO] [()]

Слайд 60Оператор удаления данных DELETE
DELETE FROM имя_таблицы
[WHERE условия_отбора]
DELETE FROM Student –

удаление всех строк

DELETE FROM Student
WHERE Fam = 'Иванов '


Оператор удаления данных DELETEDELETE FROM имя_таблицы[WHERE условия_отбора]DELETE FROM Student – удаление всех строкDELETE FROM Student WHERE Fam

Слайд 61Операция обновления данных UPDATE
UPDATE имя_таблицы
SET имя_столбца1 = новое_значение1, …
[WHERE

условие_отбора]
Пример: увеличим стипендию всем
UPDATE Student
SET Stip = Stip*2
Увеличим стипендию тем,

у кого оценка=5
UPDATE Student
SET Stip = Stip*2
WHERE Ocenka = 5


Операция обновления данных UPDATEUPDATE имя_таблицыSET имя_столбца1 = новое_значение1, … [WHERE условие_отбора]Пример: увеличим стипендию всемUPDATE StudentSET Stip =

Слайд 62Операторы создания и удаления индекса
Для увеличения скорости выборки в БД

используют индексы.
Стандарт языка SQL не предусматривает индексы.
Но разработчики СУБД включают

средства поддержки индексов в систему.
Создать индекс:
CREATE [UNIQUE] INDEX имя_индекса
ON имя_таблицы (столбец [ASC|DESC], …)
Удалить индекс:
DROP INDEX имя_индекса


Операторы создания и удаления индексаДля увеличения скорости выборки в БД используют индексы.Стандарт языка SQL не предусматривает индексы.Но

Слайд 63Запросы к базе данных:
Product (maker, model, type) – производитель, номер

модели, тип (PC – ПК, Laptop – ноутбук, Printer- принтер).
PC

(code, model, speed, ram, hd, cd, price) – код, модель, скорость процессора (МГц), общий объем памяти (Мб), размер диска (Гб), скорость считывающего устройства (12х,…).
Laptop (code, model, speed, ram, hd, screen, price) – аналогично РС, screen – размер экрана.
Printer (code, model, color, type, price)
Запросы к базе данных:Product (maker, model, type) – производитель, номер модели, тип (PC – ПК, Laptop –

Слайд 64
Maker model type

Maker model type

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика