Создание и уничтожение таблиц
Команда CREATE TABLE Перед тем как выбрать данные из базы данных, их нужно в нее ввести, а перед этим нужно создать таблицу, в которой эти данные будут храниться. Перед тем как выбрать данные из базы данных, их нужно в нее ввести, а перед этим нужно создать таблицу, в которой эти данные будут храниться. Ниже приведен пример команды SQL для создания таблицы DEPT:
CREATE TABLE DEPT (DEPTNO NUMBER (2), DNAME CHAR (14), LOC CHAR (13));
В команде CREATE TABLE сначала сообщается, как назвать таблицу (DEPT). Далее задаются имена колонок (полей) таблицы (DEPTNO, DNAME, LOC) и тип данных, которые каждая колонка содержит. В создании данной таблицы, например, определяется, что колонка DEPTNO содержит только цифровые данные (NUMBER), а колонки DNAME и LOC любые символьные данные (CHAR) - буквы, числа или знаки пунктуации. Наконец, следует задать максимальную длину любого значения, которое можно хранить в колонках. Например, в команде CREATE TABLE, приведенной выше, задано, что длина имени места расположения (LOC) не должна быть длиннее 13 символов. Для создания таблицы ЕМР требуется следующая инструкция SQL:
CREATE TABLE EMP (EMPNO NUMBER (4) NOT NULL, ENAME CHAR (10), JOB CHAR (9), MGR NUMBER(4), HIREDATE DATE, --- тип DATE SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2));
Таблица создается как файл с заданным конструкцией CREATE TABLE именем и расширением, определяемым текущей программной средой (например, файлы таблиц в формате dBase имеют расширение DBF, в формате Paradox - DB). Имя файла ключа состоит из имени ключа и фиксированного расширения (например, MDX для формата dBase). В то же время мощные СУБД хранят все таблицы в одном файле, имя которого совпадает с именем базы данных (расширение ORA для ORACLE или GDB для InterBase). Месторасположения создаваемого файла определяется али а сом (псевдонимом), представляющим собой (обычно короткую) строку, в соответствие которой ставится полный путь по каталогам файловой системы (настройка али а са производится разработчиком и часто уточняется во время инсталляции приложения). В данной команде CREATE TABLE определена колонка EMPNO таблицы ЕМР как непустая (квалификатор NOT NULL). Это значит, что каждая строка таблицы ЕМР должна содержать значение в поле EMPNO (исполняющая система не позволит ввести строку без этого значения). Другими словами, отсутствующие значения (называемые пустыми) НЕ допускаются в этой колонке. Спецификация SQL-языка NOT NULL является одним из простейших примеров u1090 того, как исполняющая система проверяет значения данных при их вводе в базу данных, чтобы убедиться, что они соответствуют заданным условиям целостности. Далее будет пояснено, как потребовать уникальности значений в колонке. Спецификация UNIQUE будет автоматически запрещать ввод строки со значением, которое уже имеется в БД. Колонка под названием HIREDATE определена для хранения дат. В некоторых системах дата (и время) хранится в длинном целом. Колонки оклад (SAL) и комиссионные (COMM) определены как цифровые данные (NUMBER) с максимальной длиной в 7 цифр, две из которых находятся справа от десятичной точки. Инструкция CREATE также используется для создания индексов таблиц. Несмотря на то, что ANSI-стандарт в настоящее время практически не поддерживает средства индексирования, они весьма полезны и широко используются на практике. Уничтожение таблиц Для уничтожения таблицы служит предписание DROP, две нижеследующие команды уничтожают таблицы EMP и DEPT:
DROP TABLE EMP; DROP TABLE DEPT;
Инструкция DROP также применяется для уничтожения индексов таблицы.
Введение строк в таблицу Для введения строк в таблицу служит SQL-предписание INSERT, именно так заполняются таблицы:
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK'); INSERT INTO DEPT VALUES (20, RESEARCH’, ‘DALLAS'); INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO'); INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
Эти четыре инструкции SQL как раз и заполняют приведенную выше таблицу DEPT. Выбор заданных колонок и строк из таблиц
|