Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для УМК БД.doc
Скачиваний:
76
Добавлен:
19.08.2019
Размер:
1.35 Mб
Скачать

9.1.1. Операторы определения данных ddl

 

Оператор

Действие

CREATE TABLЕ

Создает новую таблицу и БД

DROP TABLE

Удаляет таблицу из ЙД

ALTER TABLE

Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы

CREATE VIEW

Создает виртуальную таблицу, соответствующую некоторому SQL-запросу

ALTER VIEW

Изменяет ранее созданное представление

DROP VIEW

Удаляет ранее созданное представление

CREATE INDEX

Создает индекс для таблицы для быстрого доступа

DROP INDEX

Удаляет ранее созданный индекс

9.1.2. Операторы манипулирования данными Data Manipulation Language dml

Оператор

Действие

DELETE

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

INSERT

 

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

UPDATE

 

Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации

9.1.3. Язык запросов Data Query language (dql)

 

Оператор Select-выбрать строки-Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу

9.1.4. Средства администрирования данных

 

Оператор

Действие

ALTER DATABASE

Изменить набор основных объектов в БД, ограничений, касающихся БД

ALTER DBAREA

Изменить ранее созданную область хранения

ALTER PASSWORD

Изменить пароль для всей базы данных

CREATE DATABASE

Создать новую базу данных, определив основные параметры для нее

CREATE DBAREA

Создать новую область хранения и сделать ее доступной для размещения данных

DROP DATABASE

Удалить существующую базу данных

DROP DBAREA

Удалить существующую область хранения

GRANT

Предоставить права доступа на ряд действий над некоторым объектом БД

9.1.5. Программный sql

 

Оператор

Действие

DECLARE

Задаст некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных

OPEN

Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущему состоянию БД

FETCH

Считывает очередную строку, заданную параметром команды из виртуального набора данных, соответствующего открытому курсору

CLOSE

Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору

PREPARE

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

EXECUTE

Выполняет ранее подготовленный план запроса

 

В дальнейшем для рассмотрения материала будем работать с учебной базой данных, состоящей из четырех таблиц

 

STUDENTS

SNUM

SFAM

SIMIA

SOTCH

STIP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PREDMET

PNUM

TNUM

PDATA

PCOURS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TEACHER

TNUM

TFAM

TIMIA

TOTCH

TDATA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

USP

UNAME

SNUM

PNUM

OCENKA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

В языке SQL/92 поддерживаются следующие типы данных:

CHARACTER(n) или CHAR(n) ─ символьные строки постоянной длины в n символов. При задании данного тина под каждое значение всегда отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.

NUMERIC[(n,m)] ─ точные числа, здесь n ─ общее количество цифр в числе, m ─ количество цифр слева от десятичной точки.

DECIMAL[(n,m)] ─ точные числа, здесь n ─ общее количество цифр и числе, m ─ количество цифр слева от десятичной точки.

DEC[(n,m)1 - то же, что и DECIMAL[(n,m)].

INTEGER или INT ─ целые числа.

SMALLINT ─ целые числа меньшего диапазона.

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

REAL ─ вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем FLOAT.

DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.

VARCHAR(n) это строка символов переменной длины.

NCHAR VARYING(n) ─ строки локализованных символов переменной длины.

BIT(n) ─ строка битов постоянной длины.

BIT VARYING(n) ─ строка битов переменной длины.

DATE ─ календарная дата.

TIMESTAMP(TОЧНОСТЬ) ─ дата и время.

INTERVAL ─ временной интервал.

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

Собственно DDL базируется на трех командах SQL:

∙CREATE - создать, позволяющий определить и создать объект БД;

∙DROP - удалить, применяемый для удаления существующего объекта данных;

∙ALTER - изменить, с помощью которого можно изменить определение объекта БД.

Использование команд DDL во время работы позволяет сделать структуру реляционной БД динамической. Операторы DDL в СУБД можно использовать как в интерактивном, так и в программном SQL.

Большинство многопользовательских БД имеют достаточно несложную организацию физической памяти, что обеспечивает повышение ее производительности. Например, в Microsoft SQL Server администратор БД может с помощью оператора CREATE DATABASE задать один или несколько именованных файлов: CREATE DATABASE <NAME_DATABASE> ON <FILE1>, <FILE2>, Подход, используемый в SQL Server, позволяет распределять содержимое БД по нескольким дисковым томам.

Создание таблиц Итак, после создания БД необходимо осуществить создание, изменение, а если нужно - то и удаление таблиц. Эти действия относятся к самим таблицам, а не к данным, которые в них содержатся. Таблицы создаются командой CREATE TABLE. Эта команда создает пустую таблицу, т.е. не содержащую записей. Очевидно, что значения в нее можно ввести с помощью команды INSERT. Главное в команде CREATE TABLE - это определение имени таблицы и описания набора имен полей, которые указываются в соответствующем порядке. Кроме того, этой командой также оговариваются типы данных и размеры полей таблицы.

Синтаксис команды CREATE TABLE следующий:

CREATE TABLE <TABLE NAME>

(<COLUMN NAME> <DATA TYPE> [(<SIZE>)],

 <COLUMN NAME> <DATA TYPE> [(<SIZE>)] . . . ) ;

Значение аргумента размера зависит от типа данных. Если его не указывать, то СУБД сама будет назначать значение автоматически. Тип данных CHAR требует обязательного указания размера. Аргумент размера - это целое число, определяющее максимальное количество символов, которое может вместить поле. Таблицы принадлежат пользователю, который их создал, а имена всех таблиц, принадлежащих данному пользователю, должны отличаться друга от друга точно так же, как и имена всех полей внутри данной таблицы. Однако разные таблицы могут использовать одинаковые имена полей, даже если они принадлежат одному и тому же пользователю. Например, поле с именем SNUM присутствует в таблицах STUDENTS и USP, ничуть не мешая друг другу.

Как уже было сказано, пользователи, не являющиеся владельцами таблиц, могут ссылаться к этим таблицам с помощью имени владельца, сопровождаемого точкой. Например, имя таблицы: SA.STUDENTS подразумевает, что обращение идет к таблице STUDENTS, созданной пользователем с идентификатором разрешения (ID) SA.

Приведем пример команды, которая создаст структуру таблицы STUDENTS:

CREATE TABLE STUDENTS  (SNUM INTEGER, SFAM CHAR (20), SIMA CHAR (10), SOTCH CHAR (15) STIP DECIMAL) ;

После того, как таблица была создана, ее можно изменять. Команда ALTER TABLE является широко доступным средством для того, чтобы изменить определение существующей таблицы. Чаще всего с ее помощью добавляют поля к таблице, хотя она может удалять или изменять их размеры. Типичный синтаксис этой команды для добавления столбца к таблице, такой: ALTER TABLE <TABLE NAME> ADD <COLUMN NAME> <DATA TYPE> <SIZE>;

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

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

DROP TABLE <TABLE NAME>;  Пример: DROP TABLE STUDENTS;