Создадим табличку с полями разных основных типов данных Oracle:
CREATE TABLE KK_SMPL
(
ID INTEGER,
DT DATE,
AMOUNT NUMBER(16, 2),
FULLNAME VARCHAR2(50),
PASSPORT CHAR(11)
);
Основные типы данных oracle таковы:
INTEGER – целочисленный тип,
DATE – дата (которую можно форматировать множеством образов),
NUMBER(M, N) – число с плавающей точкой. M знаков всего, из них N после плавающей точки.
VARCHAR2(M) – строка длиной не более M символов, память тратится оптимально,
CHAR(M) – строка длиной ровно N символов, если вставлять более короткую строку, она дополнится пробелами.
Очистить таблицу от данных (быстрее, чем DELETE-ом) можно командой
TRUNCATE TABLE KK_SMPL;
Сделать копию таблицы (с данными) можно командой:
CREATE TABLE KK_SMPL_COPY AS SELECT * FROM KK_SMPL;
Сделать пустую копию таблицы можно так:
CREATE TABLE KK_SMPL_EMPTY_COPY AS SELECT * FROM KK_SMPL WHERE 0 = 1;
Когда таблица создана, договоримся о том, что не будем лениться в INSERT-ах и SELECT-ах полностью расписывать список полей.
Правильно писать так:
INSERT INTO KK_SMPL_COPY(ID, DT, AMOUNT, FULLNAME, PASSPORT) SELECT ID, DT, AMOUNT, FULLNAME, PASSPORT FROM KK_SMPL;
Этот способ записи лучше, чем упрощенный вариант:
INSERT INTO KK_SMPL_COPY SELECT * FROM KK_SMPL;
Дело в том, что упрощенный вариант перестанет работать, если, например, добавить в KK_SMPL новое поле или поменять порядок полей в KK_SMPL.
Добавим столбец:
ALTER TABLE KK_SMPL ADD BIRTHPLACE VARCHAR2(20);
Расширим столбец:
ALTER TABLE KK_SMPL MODIFY BIRTHPLACE VARCHAR2(30);
Сделаем столбец not nullable (не допускающим пустые значения - NULL):
ALTER TABLE KK_SMPL MODIFY BIRTHPLACE NOT NULL;
Сделаем столбец снова nullable (допускающим пустые значения - NULL):
ALTER TABLE KK_SMPL MODIFY BIRTHPLACE NULL;
Переименуем столбец:
ALTER TABLE KK_SMPL RENAME COLUMN BIRTHPLACE TO PLACE_OF_BIRTH;
Удалим столбец:
ALTER TABLE KK_SMPL DROP COLUMN PLACE_OF_BIRTH;
Переименуем таблицу:
ALTER TABLE KK_SMPL RENAME TO KK_SMPL2;
Удалить таблицу можно командой:
DROP TABLE KK_SMPL2;
Именованные запросы в Oracle называются вьюшками.
Создадим вьюшку:
CREATE OR REPLACE VIEW VW_KK_SMPL AS
SELECT ID, FULLNAME FROM KK_SMPL WHERE AMOUNT > 0;
Сделаем выборку из вьюшки:
SELECT * FROM VW_KK_SMPL;
Команды, которые изменяют структуру данных, называются DDL командами. К ним, например, относятся команды, приведенные выше.
Команды, которые изменяют сами данные, называются DML командами. К ним относятся, например, insert, update, delete.
Длина имен таблиц, полей и прочих объектов в oracle не может превышать 30 символов.