Материал: !Лабораторный практикум ТБД (задание)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Для очистки экрана SQL Plus используйте CLEAR SCREEN Для очистки буфера CLEAR BUFFER

9. Создание пользователя и настройка прав доступа

Используйте команду SHOW USER

SQL> SHOW USER

Вернитесь к пользователю System

Создадим пользователя MILLER с паролем KOLOBOK в табличном пространстве USER, владея им целиком и захватив в свое распоряжение еще кусочек табличного пространства TEMP (на всякий случай!)

CREATE USER MILLER IDENTIFIED BY KOLOBOK DEFAULT TABLESPACE USERS

/

Выделим этому пользователю ряд прав и создадим сессию с се рвером! Нижеприведенные операторы можно вводить по очереди или целиком. Главное, чтобы сработал последний оператор COMMIT (завершение транзакции)

GRANT CREATE SESSION, TABLE, PROCEDURE, TRIGGER, VIEW, SEQUENCE,VIEW TO MILLER

/

GRANT DELETE ANY TABLE TO MILLER

/

GRANT DROP ANY TABLE TO MILLER

/

GRANT DROP ANY PROCEDURE TO MILLER

/

GRANT DROP ANY TRIGGER TO MILLER

/

GRANT DROP ANY VIEW TO MILLER

/

GRANT ALTER ANY TABLE TO MILLER

/

GRANT ALTER ANY TABLE TO MILLER

11

/

GRANT ALTER ANY PROCEDURE TO MILLER

/

GRANT ALTER ANY TRIGGER TO MILLER

/

COMMIT

/

Операторы GRANT предоставляют пользователю определенные привилегии.

Для упрощения можно собрать все строки, которые мы вводили в файл, затем использовав команду START или операцию "@". Проделайте это сами, находясь в схеме SYSTEM!!!

ПРЕДВАРИТЕЛЬНО Введите

DROP USER MILLER CASCADE

/

Затем соберите все строки, в файл, скажем CrMiller.sql, поместите его в каталог, например, Temp, и введите следующее:

@C:\TEMP\CRMILLER.SQL

В SQL Plus, есть много внутренних команд, например, очень полезной может оказаться SET TIME ON приглашение примет вот такой вид:

14:09:52 SQL>

Например, можно оценивать время на запрос из таблицы!

Если ввести SET TIME OFF, то все станет по-прежнему.

При отображении информации на экран ПОЛЕЗНО использовать оператор форматирования столбца:

COL имя_столбца FORMAT Ann, например: COL FIO FORMAT A10

При работе с типом DATE можно использовать встроенную функцию

TO_DATE

например,

SELECT имя_столбца FROM имя_таблицы

WHERE HIRE_DATE < TO_DATE('01.06.1988','DD/MM/YYYY')

12

Лабораторная работа №2

Цель. Создание таблиц и формирование запросов в СУРБД ORACLE

Задачи: построить таблицы, заполнить их информацией, сформировать по 2 запроса следующих типов:

выборка всех данных

запрос с условием

запрос с использованием синонимов

с использованием подзапроса

с использованием сортировки

с использованием группировки

с использованием конкатенации

выборка неповторяющихся записей

с использованием агрегатных функций

с использованием NOT

с использованием WHERE

Запросы сохранить в виде представлений.

Последовательность выполнения.

1. Создание Таблиц

Создать соответствующие таблицы. Поля выбрать самостоятельно.

При построении запроса из двух таблиц, где столбцы имеют одинаковые имена, то применяется «точечная нотация», т.е. запись вида:

имя_таблицы.имя_столбца

(Аналогично разные схемы БД (то есть пользователи) также могут содержать таблицы с одинаковыми именами, но в разных схемах).

2. Построение сложных запросов

Для построения запроса использовать оператор SELECT Синтаксис оператора SELECT имеет следующий вид:

13

SELECT ([ALL | DISTINCT]< список полей>|*) FROM <Список таблиц>

[WHERE<Предикат-условие выборки или соединения>] [GROUP BY <Список полей результатам] [HAVING <Предикат-условие для группы>]

[ORDER BY <Список полей, по которым упорядочить вывод>]

Пример 1:

Выбрать все записи из таблицы Закупка детали:

select KODDZ, KODZ, KOLVO, PRICED, DATA from zakupkad;

Пример 2:

Выбрать данные из полей «Название завода», «Адрес» и «ФИО

руководителя» по заводу с кодом 2:

 

select NAMEZ, ADRESS, FIOR

from zavod where kodz=2;

NAMEZ

ADRESS

FIOR

---------------------- -------------------------------------------------------------- ---------

-

Лакокрасочный завод г. Москва, Варшавское шоссе,7, кор. 4 430412 Коломова В. В.

Условия.

Условия в предложении where может быть несколько. В таком случае используют ключевые слова:

And - И Or - ИЛИ

Like – КАК

BETWEEN

IN - выборка значений из списка

IS Null | IS NOT NULL

14

Пример 3:

Выбрать

из таблицы Закупка деталей информацию по деталям,

купленным у

завода с кодом 2, подставив вместо кода название:

select zavod.kodz, zavod.namez, zakupkad.koddz, zakupkad.kolvo, priced,

data

from zakupkad, zavod

where zavod.kodz=zakupkad.kodz and zavod.kodz=2;

KODDZ

KODZ

KOLVO PRICED

DATA

----------

 

----------------------------

----------

----------

--------

31

Лакокрасочный завод

8

30

07.01.07

32

Лакокрасочный завод

1

35

10.01.07

Пример 4:

 

 

 

 

Закупались ли детали у заводов с кодом 2 и 3?

 

 

select *

from zavod where kodz=2 and kodz=3;

 

Пример 5:

Закупались ли детали у заводов с кодом 2 или 3? select * from zavod where kodz=2 or kodz=3;

Пример 6:

Есть ли в таблице завод, в названии которого присутствует слово «лак»? select * from zavod where namez like ‘%лак%’ or namez like ‘%Лак%’;

Пример 7:

Выбрать информацию по деталям, которые закупались в одну из дат: select * from zakupkad

where data in (’07-01-07’, ’10-01-07’, ’11-01-07’);

Пример 8:

Выбрать информацию по деталям, которые закупались между датами: select * from zakupkad

15

Источник: https://studfile.net/preview/16527141/