Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / L2 / Лекция 2.doc
Скачиваний:
46
Добавлен:
16.04.2013
Размер:
75.26 Кб
Скачать
  • Oracle – реляционная СУБД => её основа SQL (sequel) структурированный английский язык запросов

SQL

DDL

DML

DCL

DQL

CREATE

RENAME

ALTER

DROP

INSERT

UPDATE

DELETE

SELECT

COMMIT

ROLLBACK

GRANT

REVOKE

SELECT

  • SQL*PLUS – основной инструмент всех версий Oracle. (Может и весьма старый, но основной).

sqlplus <userid>/<password>@<dblink> <file_name> <input_var>

  • PL/SQL – процедурный язык Oracle с входящими в него операторами SQL

  • Буфер SQL – рабочая область, применяемая в среде SQL*PLUS

    • Строки в буфере нумерованы

    • Есть текущая строка

    • Команды буфера

…………………………………………………………………….

A или APPEND new_text

Добавить к концу текущей строки

C или CHANGE/старый текст/новый текст/

Заменить подстроку в текущей строке буфера

Del

Удалить текущую подстроку из буфера

ED или EDIT [file_name]

Вызвать текстовый редактор и передать в него буфер, либо указанный файл

Get file_name

Считать указанный файл в буфер

I или Input text

Вставляет дополнительную строку с текстом после текущей строки

L или LIST number или nn1 nn2

Отображает содержимое строки number, либо строк от nn1 до nn2.

SAVE file_name

Сохраняет содержимое буфера в файле

START file_name param1 param2 … или @file_name param1 param2 …

Загрузить файл в буфер и выполнить его с параметрами

/ (косая черта)

Вызывает на выполнение содержимое буфера (ставится в отдельной строке)

Пример создания таблиц

Примерный синтаксис оператора SELECT

(язык выборки данных)

SELECT * or column-name [alias] [, column-name [alias] [, …] [function] [arithmetic expression]

FROM table-name [, table-name [, …] or [sub-query]

[WHERE [conditional-statement] or [sub-query] ]

[GROUP BY column-name [alias] [, column-name [alias] [, …] ] ]

[HAVING [conditional-statement] or [sub-query] ]

[ORDER BY column-name [alias] [, column-name [alias] [, …] ] [DESCENNDING or ASCENDING] ]

где column-name – это может быть имя-таблицы.имя-столбца

Операторы сравнения значений

=

!= или <>

>

<

>=

<=

Конструкции, используемые вместо операторов сравнения

IN (list)

Равно любому элементу в списке

BETWEEN значение AND значение

Включительно в диапазоне

значение AND / OR значение

Логическая функция/связка

LIKE ‘шаблон’

Сравнить текст по шаблону

IS NULL

Проверка отсутствия данных

NOT (конструкция)

Логическое отрицание

D M L

Примерный синтаксис оператора INSERT

INSERT INTO table-name [column-name [, column-name [, …]]

[VALUES (data [, date [, …] ])]

or

[SELECT …]

Примерный синтаксис оператора UPDATE

UPDATE table-name SET column-name = (значение или результат выполнения оператора SQL)

[WHERE [conditional-statement] or [sub-query] ]

Примерный синтаксис оператора DELETE

DELETE FROM table-name

[WHERE [conditional-statement] or [sub-query] ]

TRUNCATE TABLE table-name

Эта команда не обратима, откаты после неё не работают

COMMIT

ROLLBACK [TO savepoint-name]

D D L

Предназначен для создания разнообразных объектов, таких как:

  • Таблицы

  • Индексы

  • Представления

  • Последовательности

  • Типы данных, определяемые пользователем

  • Синонимы

  • Кластеры

  • Ограничения

  • Табличные пространства

  • Секции

  • Триггеры, пакеты, процедуры, функции

Создание таблиц

CREATE TABLE table-name (column-name type [default-expression] [constraint] [,column-name type [default-expression] [constraint]] [,…])

Стандартные типы данных

  • CHAR(n) – символьное поле длиной до 2000 символов

  • DATE – дата в пределах от 1/1/4712г до н.э. до 31/12/4712г н.э.

  • NUMBER(n,m) – числовое поле длиной до 38 позиций

  • VARCHAR2(n) – символьное поле переменной длины, до 4000 символов

Специальные типы данных

  • LONG – символьное поле переменной длины, до 2GB

  • CLOB – однобайтовое символьное поле длиной до 4GB

  • NLOB – двухбайтовое символьное поле длиной до 4GB

  • RAW (и LONG RAW) – неструктурированное двоичное поле длиной до 2000 байт

  • BLOB – двоичное поле длиной до 4GB

  • BFILE – хранимое во внешнем файле двоичное поле длиной до 4GB

Ограничения: NOT NULL, UNIQUE, CHECK

Модификация таблиц

ALTER TABLE table-name ADD (column-name type [default-expression] [constraint] [,column-name type [default-expression] [constraint]] [,…]);

ALTER TABLE table-name MODIFY (column-name type [default-expression] [constraint] [,column-name type [default-expression] [constraint]] [,…]);

ALTER TABLE table-name DROP column- name;

Создание индексов

CREATE [UNIQUE] INDEX index-name ON TABLE table-name (column-name [,column-name] [,…])

Кроме того, индексы создаются автоматически, если при создании таблицы указать для столбца ограничение “PRIMARY KEY”.

Индексы используются автоматически, если во фразе “WHERE” указан индексированный столбец.

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

CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view-name AS sql-запрос [WITH CHECK OPTION] [WITH READ ONLY]

Представление – это SQL-оператор, хранящийся в словаре данных.

Типы представлений:

  • Сложные – имеют в своём теле фразы “GROUP BY” или функции, либо связанные с несколькими таблицами

  • Простые – ничего такого нет.

Только к простым могут применяться операторы DML (INSERT, UPDATE, DELETE)

Создание последовательности

CREATE SEQUENCE seq-name

[INCREMENT BY n]

[START WITH n]

[MAXVALUE n | NOMAXVALUE]

[MINVALUE n | NOMINVALUE]

[CACHE n | NOCACHE]

[CYCLE | NOCYCLE]

Любая последовательность имеет два поля NEXTVAL и CURRVAL.

Примеры:

SQL> CREATE SEQUENCE test_seq;

Sequence created

SQL> SELECT test_seq.nextval FROM DUAL;

NEXTVAL

-------

1

SQL> SELECT test_seq.nextval FROM DUAL;

NEXTVAL

-------

2

SQL> SELECT test_seq.nextval FROM DUAL;

NEXTVAL

-------

3

SQL>

Посмотреть имеющиеся последовательности, можно используя представление USER_SEQUENCES в словаре системы:

>DESC user_sequences;

>SELECT sequence_name, last_number, increment_by

FROM user_sequences;

Изменить параметры последовательности нельзя! Её надо удалить и создать заново. Оператора типа «ALTER SEQUENCE» нет.

>DROP SEQUENCE имя_последовательности;

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

Пример.

CREATE TYPE name_info AS OBJECT (

ename VARCHAR2(10),

address VARCHAR2(10),

city VARCHAR2(10) ) ;

CREATE TABLE employee (

emp_id NUMBER(4),

employee_info NAME_INFO ) ;

Insert into employee values (100,name_info(‘Boby Marx’, ‘Braiton 3’, ‘New-York’)); Создание синонима

CREATE [PUBLIC] SYNONYM synonym-name

FOR object-name;

Применяется для сокращения объёма sql-операторов.

Соседние файлы в папке L2
  • #
    16.04.20133.57 Кб44DEMOBLD.SQL
  • #
    16.04.20132.05 Кб43INSTALL_sales_tracking_database.sql
  • #
    16.04.201310.14 Кб43INSTALL_sales_tracking_objects.sql
  • #
    16.04.201375.26 Кб46Лекция 2.doc
  • #
    16.04.2013200.7 Кб44Рис2.doc