ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.04.2021
Просмотров: 1540
Скачиваний: 4
86
4.
С о зда н и е
о б ъ екто в
б а зы
да н н ы х
4.1.
С оз дание
т абл иц
баз ы
данны х
Соз д а ние
объектов
ба з ы
д а нных
осущ еств ляется
с
п омощ ью
оп ераторов
яз ыка
оп ред еления
д а нных
(DDL).
Та бл ицы
ба з ы
д а нных
соз д а ются
с
п омощ ью
кома нд ы
CREATE
TABLE
.
Э та
кома нд а
соз д а ет
п устую
та блицу
,
то
есть
та блицу
,
не
имеющ ую
строк
.
Зна ч ения
в
э ту
та блицу
в в од ятся
с
п омощ ью
кома нд ы
INSERT
.
К ома нд а
CREATE
TABLE
оп ред еляет
имя
та блицы
и
множеств о
п оименов а нных
столбцов
в
ука з а нном
п оряд ке
.
Д ля
ка жд ого
столбца
д олжен
быть
оп ред елен
тип
и
раз мер
.
К а жд а я
соз д а в а ема я
та блица
д олжна
иметь
,
п о
крайней
мер е
,
од ин
столбец
.
Синта ксис
кома нд ы
CREATE
TABLE
имеет
след ующ ий
в ид
.
CREATE
TABLE
<
и м я
т а бли цы
>
(<
и м я
ст о лбца
><
т и п
д а нны х
>[(<
р а зм ер
>)],
…
);
Исп ользуемые
в
SQL
тип ы
д а нных
,
ка к
минимум
,
п од д ержив а ют
ста нд а р ты
ANSI (
American National Standards Institute
–
А м ер и ка нски й
на ци о на льны й
и нст и т ут
ст а нд а р т о в
) (
см
.
раз д ел
1.5.
Тип ы
д а нных
SQL):
CHAR
(
CHARACTER
),
INT
(
INTEGER
),
SMALLINT
,
DEC
(
DECIMAL
),
NUMERIC
,
FLOAT
,
…
.
Тип
д а нных
,
д ля
которого
обяз ательно
д олжен
быть
ука з а н
р а з мер
–
это
CHAR
.
Реа льное
колич еств о
симв олов
,
которое
может
на ход иться
в
п оле
,
меняется
от
нуля
(
если
в
п оле
сод ержится
NULL
-
з на ч ение
)
д о
з а д а нного
в
CREATE
TABLE
ма ксима льного
з на ч ения
.
След ующ ий
п ример
п ока з ыв а ет
кома нд у
,
которая
п оз в оляет
соз д а ть
та блицу
STUDENT
.
87
CREATE
TABLE
STUDENT1
(
STUDENT
_
ID
INTEGER
,
SURNAME
VARCHAR(60)
,
NAME
VARCHAR(60)
,
STIPEND
DOUBLE
,
KURS
INTEGER
,
CITY
VARCHAR(60)
,
BIRTHDAY
DATE
,
UNIV
_
ID
INTEGER
);
4.2.
И спол ь з ование
индексац ии
дл я
бы строго
доступа
к
данны м
О п ера ции
п оиска
-
в ыборки
(
SELECT
)
д а нных
из
та блиц
п о
з на ч ениям
их
п олей
могут
быть
сущ еств енно
ускор ены
п утем
исп ользов а ния
инд екса ции
д а нных
.
Инд екс
сод ержит
уп оряд оч енный
(
в
а лфа в итном
или
ч ислов ом
п оряд ке
)
сп исок
сод ержимого
столбцов
или
груп п ы
столбцов
в
инд ексируемой
та блице
с
ид ентифика торами
э тих
строк
(
ROWID
).
Д ля
п ользов а телей
инд ексиров а ние
та блицы
п о
тем
или
иным
столбца м
п ред ста в ляет
собой
сп особ
ло ги ческо го
уп оряд оч ив а ния
з на ч ений
инд ексиров а нных
столбцов
,
п оз в оляющ его
,
в
отлич ие
от
п ослед ов а тельного
п еребора
строк
,
сущ еств енно
п ов ысить
скорость
д оступ а
к
конкретным
строка м
та блицы
п р и
в ыборка х
,
исп ользующ их
з на ч ения
э тих
столбцов
.
Инд екса ция
п оз в оляет
на ход ить
сод ержа щ ий
инд ексир ов а нную
строку
блок
д а нных
,
в ып олняя
небольшое
ч исло
обращ ений
к
в нешнему
устройств у
хранения
д а нных
.
При
исп ользов а нии
инд екса ции
след ует
,
од на ко
,
иметь
в
в ид у
,
ч то
уп ра в ление
инд ексом
сущ еств енно
з а мед ляет
в ремя
в ып олнения
оп ера ций
,
св яз а нных
с
обнов лением
д а нных
(
та ких
,
ка к
INSERT
и
DELETE
),
та к
ка к
э ти
оп ерации
тр ебуют
п ерестройки
инд ексов
.
Инд ексы
можно
соз д а в а ть
ка к
п о
од ному
,
та к
и
п о
множеств у
п олей
.
Е сли
ука з а но
более
од ного
п оля
д ля
соз д а ния
ед инств енного
инд екса
,
д а нные
уп оряд оч ив а ются
п о
з на ч ениям
п ерв ого
п оля
,
п о
которому
осущ еств ляется
инд ексиров а ние
.
Внутр и
п олуч ив шейся
груп п ы
осущ еств ляется
уп оряд оч ив а ние
п о
з на ч ениям
в торого
п оля
,
д л я
п олуч ив шихся
в
рез ульта те
88
груп п
осущ еств ляется
уп оряд оч ив а ние
п о
з на ч ениям
третьего
п оля
и
т
.
д
.
Синта ксис
кома нд ы
соз д а ния
инд екса
имеет
след ующ ий
в ид
:
CREATE
INDEX
<
и м я
и нд екса
>
ON
<
и м я
т а бли цы
> (<
и м я
ст о лбца
>
[,<
и м я
ст о лбца
>]
…
);
При
этом
та блица
д олжна
быть
уже
соз д а на
и
сод ержа ть
столбцы
,
имена
которых
ука з а ны
в
кома нд е
соз д а ния
инд екса
.
Имя
инд екса
,
оп ред еленное
в
кома нд е
,
д олжно
быть
уника льным
в
ба з е
д а нных
.
Б уд уч и
од на жд ы
соз д а нным
,
инд екс
яв ляется
нев ид имым
д ля
п ол ьзов а теля
,
в се
оп ера ции
с
ним
осущ еств ляет
СУ Б Д
.
П ример
.
Е сли
та блица
EXAM
_
MARKS
ч а сто
исп ользуется
д ля
п оиска
оценки
конкретного
студ ента
п о
з на ч ению
п оля
STUDENT
_
ID
,
то
след ует
соз д а ть
инд екс
п о
э тому
п олю
.
CREATE
INDEX
STUDENT
_
ID
_
1
ON
EXAM
_
MARKS
(
STUDENT
_
ID
);
Д ля
уд а ления
инд екса
(
п ри
э том
обяз а тельно
требуется
з на ть
его
имя
)
исп ользуется
кома нд а
DROP
INDEX
,
имеющ а я
след ующ ий
синта ксис
DROP
INDEX
<
и м я
и нд екса
>;
У д а ление
инд екса
не
из меняет
сод ержимого
п оля
или
п олей
,
инд екс
которых
уд а л яется
.
4.3.
И з м енение
сущ ествую щ ей
т абл иц ы
Д ля
мод ифика ции
структуры
и
п а р а метров
сущ еств ующ ей
та блицы
исп ользуется
кома нд а
ALTER
TABLE
.
Синта ксис
кома нд ы
ALTER
TABLE
д ля
д оба в ления
столбцов
в
та блицу
имеет
в ид
ALTER
TABLE
<
и м я
т а бли цы
>
ADD
(<
и м я
ст о лбца
> <
т и п
д а нны х
>
<
р а зм ер
>);
По
э той
кома нд е
д ля
сущ еств ующ их
в
та блице
строк
д оба в ляется
нов ый
столбец
,
в
который
з а носится
NULL
-
з на ч ение
.
Э тот
столбец
ста нов ится
п ослед ним
в
та блице
.
М ожно
д оба в лять
несколько
столбцов
,
в
э том
случ а е
их
оп ред еления
в
кома нд е
ALTER
TABLE
ра з д еляются
з а п ятой
.
89
Воз можно
из менение
оп иса ния
столбцов
.
Ч а сто
э то
св яз а но
с
из менением
раз меров
столбцов
,
д оба в лением
или
уд а лением
огранич ений
,
на кла д ыв а емых
на
их
з на ч ения
.
Синта ксис
кома нд ы
в
э том
случ а е
имеет
в ид
ALTER
TABLE
<
и м я
т а бли цы
>
MODIFY
<
и м я
ст о лбца
> <
т и п
д а нны х
>
<
р а зм ер
/
т о чно ст ь
>;
След ует
иметь
в
в ид у
,
ч то
мод ифика ция
ха р а ктер истик
столбца
может
осущ еств ляться
не
в
любом
случ а е
,
а
с
уч етом
след ующ их
огранич ений
:
•
из менение
тип а
д а нных
в оз можно
только
,
если
столбец
п уст
;
•
д ля
неза п ол ненного
столбца
можно
из менять
ра з мер
/
точ ность
.
Д ля
з а п олненного
столбца
раз мер
/
точ ность
можно
ув елич ить
,
но
нел ьзя
п ониз ить
.
•
огранич ение
NOT
NULL
может
быть
уста нов лено
,
если
ни
од но
з на ч ение
в
столбце
не
сод ержит
NULL
.
О п цию
NOT
NULL
в сегд а
можно
отменить
.
•
р а з реша ется
из менять
з на ч ения
,
уста нов ленные
п о
умолч а нию
.
4.4.
Удал ение
т абл иц ы
Ч тобы
уд а лить
сущ еств ующ ую
та блицу
,
необход имо
п ред в а р ительно
уд а лить
в се
д а нные
из
э той
та блицы
,
то
есть
сд ела ть
ее
п устой
.
Та блица
,
имеющ а я
строки
,
не
может
быть
уд а лена
.
Синта ксис
кома нд ы
,
осущ еств ляющ ей
уд а ление
п устой
та блицы
,
имеет
след ующ ий
в ид
.
DROP
TABLE
<
и м я
т а бли цы
>;
УП Р АЖ НЕ НИ Я
94.
Н а п ишите
кома нд у
CREATE
TABLE
д ля
соз д а ния
та блицы
LECTURER
95.
Н а п ишите
кома нд у
CREATE
TABLE
д ля
соз д а ния
та блицы
SUBJECT
96.
Н а п ишите
кома нд у
CREATE
TABLE
д ля
соз д а ния
та блицы
UNIVERSITY
.
97.
Н а п ишите
кома нд у
CREATE
TABLE
д ля
соз д а ния
та блицы
EXAM
_
MARKS
.
98.
Н а п ишите
кома нд у
CREATE
TABLE
д ля
соз д а ния
та блицы
SUBJ
_
LECT
.
90
99.
Н а п ишите
кома нд у
,
которая
п оз в олит
быстро
в ыбрать
д а нные
о
студ ента х
п о
курса м
,
на
котор ых
они
уч а тся
.
100.
Соз д а йте
инд екс
,
который
п оз в олит
д ля
ка жд ого
студ ента
быстро
осущ еств ить
п оиск
оценок
,
сгруп п иров а нных
п о
д а та м
.
4.5.
О граничения
на
м нож ество
допустим ы х
з начений
данны х
Д о
сих
п ор
ра ссма трив а лось
только
след ующ ие
огранич ения
–
з на ч ения
,
в в од имые
в
та блицу
,
д олжны
иметь
тип ы
д а нных
и
раз меры
,
сов местимые
с
тип а ми
/
раз мером
д а нных
столбцов
,
в
которые
э ти
з на ч ения
в в од ятся
(
ка к
оп ред елено
в
кома нд е
CREATE
TABLE
или
ALTER
TABLE
).
О п иса ние
та блицы
может
быть
д оп олнено
более
сложными
огранич ениями
,
на кла д ыв а емыми
на
з на ч ения
,
которые
могут
быть
в ста в лены
в
столбец
или
груп п у
столбцов
.
О гранич ения
(
CONSTRAINTS
)
яв ляются
ч а стью
оп ред еления
та бл ицы
.
При
соз д а нии
(
из менении
)
та блицы
могут
быть
оп ред елены
огранич ения
на
в в од имые
з на ч ения
.
В
э том
случ а е
SQL
буд ет
отв ерга ть
любое
из
них
п ри
не
соотв етств ии
з а д а нным
критериям
.
О гранич ения
могут
быть
ста тич ескими
,
огр а нич ив а ющ ими
з на ч ения
или
д иа п а з он
з на ч ений
,
в ста в ляемых
в
столбец
(
CHECH
,
NOT
NULL
).
О ни
могут
иметь
св яз ь
со
в семи
з на ч ениями
столбца
,
огранич ив а я
нов ые
строки
з на ч ениями
,
которые
не
сод ержа тся
в
столбца х
или
их
на борах
(
уника льные
з на ч ения
,
п ер в ич ные
ключ и
).
О гранич ения
могут
та кже
оп ред еляться
св яз ью
со
з на ч ениями
,
на ход ящ имися
в
д ругой
та блице
,
д оп уска я
,
на п ример
,
в ста в ку
в
столбец
только
тех
з на ч ений
,
которые
в
д а нны й
м о м ент
сод ержа тся
та кже
в
д ругом
столбце
д ругой
или
э той
же
та блицы
(
в нешний
ключ
).
Э ти
огранич ения
носят
д ина мич еский
ха р а ктер
.
Сущ еств ует
д в а
основ ных
тип а
огранич ений
–
огра нич ения
на
столбцы
и
огранич ения
на
та блицу
.
О гранич ения
на
столбцы
(
COLUMN
CONSTRAINTS
)
п р именимы
только
к
отд ельным
столбца м
,
а
огра нич ения
на
та блицу
(
TABLE
CONSTRAINTS
)
п рименимы
к
гр уп п а м
,
состоящ им
из
од ного
или
более
столбцов
.
О гра нич ения
на
столбец
д оба в ляются
в
конце
оп ред еления
столбца
п осле
ука з а ния
тип а
д а нных
и
п еред
оконч а нием