'&write_salary');

UNDEFINE write_last_name

UNDEFINE write_first_name

1 rows inserted.

1 rows inserted.


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

SELECT *

FROM my_employee;

  ID LAST_NAME  FIRST_NAME  USERID  SALARY

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

  1 Patel  Ralph  rpatel  895

  2 Dancs  Betty  bdancs  860

  3 Biri  Ben  bbiri  1100

  4 Newman  Chad  cnewman  750

Сделайте изменения постоянными.

COMMIT;

committed.

Обновление  и удаление данных из таблицы MY_EMPLOYEE.

Смените фамилию служащего номер 3 на «Drexler».

UPDATE my_employee

SET last_name = 'Drexler'

WHERE id = 3;

1 rows updated.

Сделайте оклад равным 1000 для всех служащих, имеющих оклад ниже 900.

UPDATE my_employee

SET salary = 1000

WHERE salary < 900;

3 rows updated.


Проверьте изменения в таблице.

SELECT *

FROM my_employee;

  ID LAST_NAME  FIRST_NAME  USERID  SALARY

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

  1 Patel  Ralph  rpatel  1000

  2 Dancs  Betty  bdancs  1000

  3 Drexler  Ben  bbiri  1100

  4 Newman  Chad  cnewman  1000

Удалите из таблицы MY_EMPLOYEE строку для служащей Betty Dancs.

DELETE my_employee

НЕ нашли? Не то? Что вы ищете?

WHERE last_name = 'Dancs'

AND first_name = 'Betty';

1 rows deleted.


Проверьте изменения в таблице.

SELECT *

FROM my_employee;

  ID LAST_NAME  FIRST_NAME  USERID  SALARY

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

  1 Patel  Ralph  rpatel  1000

  3 Drexler  Ben  bbiri  1100

  4 Newman  Chad  cnewman  1000

Зафиксируйте все незафиксированные изменения.

COMMIT;

committed.

Управление данными при помощи транзакций

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

1 rows inserted.

Проверьте изменения в таблице.

SELECT *

FROM my_employee;

  ID LAST_NAME  FIRST_NAME  USERID  SALARY

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

  1 Patel  Ralph  rpatel  1000

  3 Drexler  Ben  bbiri  1100

  4 Newman  Chad  cnewman  1000

  5 Ropeburn  Audrey  aropebur  1550

Создайте точку сохранения в ходе транзакции.

SAVEPOINT A;


Удалите все данные из таблицы.

DELETE FROM my_employee;

4 rows deleted.


Убедитесь в том, что таблица пуста.

SELECT *

FROM my_employee;

no rows selected


Отмените последнюю операцию DELETE, не отменяя предыдущую операцию INSERT.

ROLLBACK to SAVEPOINT A;

rollback complete.


Убедитесь в том, что вставленная строка присутствует в таблице.

SELECT *

FROM my_employee;

  ID LAST_NAME  FIRST_NAME  USERID  SALARY

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

  1 Patel  Ralph  rpatel  1000

  3 Drexler  Ben  bbiri  1100

  4 Newman  Chad  cnewman  1000

  5 Ropeburn  Audrey  aropebur  1550

Сделайте добавление данных постоянным.

COMMIT;

committed.

Практическое занятие 9

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

CREATE TABLE DEPT

(id number(7),

name varchar2(25));

Имя столбца

ID

Name

Тип ключа

Nulls/Unique

Таблица FK

Столбец FK

Тип данных

NUMBER

VARCHAR2

Длина

7

25



Заполните таблицу DEPT данными из таблицы Departments. Включите только нужные столбцы.

INSERT INTO dept

SELECT department_id, department_name

FROM departments;

SELECT *

FROM dept;

  ID NAME 

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

  10 Administration 

  20 Marketing 

  30 Purchasing 

  40 Human Resources 

  50 Shipping 

  60 IT 

  70 Public Relations 

  80 Sales 

27 rows selected

Создайте таблицу EMP на основе приведенного ниже описания. Сохраните команду в скрипт-файле lab9_3.sql, а затем выполните его, чтобы создать таблицу. Убедитесь в том, что таблица создана.

CREATE TABLE emp

(id NUMBER(7),

last_name VARCHAR2(25),

first_name VARCHAR2(25),

dept_id NUMBER(7));

table EMP created.

DESCRIBE emp

Name  Null Type 

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

ID  NUMBER(7) 

LAST_NAME  VARCHAR2(25)

FIRST_NAME  VARCHAR2(25)

DEPT_ID  NUMBER(7) 

Имя столбца

ID

Last_name

FIRST_NAME

DEPT_ID

Тип ключа

Nulls/Unique

Таблица FK

Столбец FK

Тип данных

NUMBER

VARCHAR2

VARCHAR2

NUMBER

Длина

7

25

25

7


Создайте таблицу EMPLOYEES2, основанную на структуре таблицы EMPLOYEES, включив только столбцы EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY и DEPARTMENT_ID.  Имена колонок в новой таблице должны быть ID, FIRST_NAME, LAST_NAME, SALARY и DEPT_ID соответственно.

CREATE TABLE employees2 AS

SELECT employee_id id, first_name, last_name, salary, department_id dept_id

FROM employees;

table EMPLOYEES2 created.


Удалите таблицу EMP.

DROP TABLE emp;

       table EMP dropped.

Практическое занятие 10, Часть 1

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

CREATE VIEW employees_vu AS

SELECT employee_id, last_name employee, department_id

FROM employees;

view EMPLOYEES_VU created.


Выведите содержимое представления EMPLOYEE_VU.

SELECT *

FROM employees_vu;

EMPLOYEE_ID EMPLOYEE  DEPARTMENT_ID

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

  198 OConnell  50

  199 Grant  50

  200 Whalen  10

  201 Hartstein  20

  202 Fay  20

  203 Mavris  40

107 rows selected


Используя своё представление EMPLOYEES_VU, создайте запрос для вывода всех фамилий и номеров отделов служащих.

SELECT employee, department_id

FROM employees_vu;

EMPLOYEE  DEPARTMENT_ID

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

OConnell  50

Grant  50

Whalen  10

Hartstein  20

107 rows selected

……

Создайте представление DEPT50, содержащее номер служащего и номер отдела для всех служащих отдела 50. Назовите столбцы представления EMPNO, EMPLOYEE и DEPTNO. Запретите операцию перевода служащего в другой отдел через представление.

DROP VIEW dept50;

CREATE VIEW dept50 AS

SELECT employee_id empno, last_name employee, department_id deptno

FROM employees

WHERE department_id = 50

WITH CHECK OPTION;

Какое имя будет. БУДЕТ ИМЯ ТАКОЕ: SYS_C00162842

view DEPT50 created.

Выведите содержимое представления DEPT50.

SELECT *

FROM dept50_1;

  EMPNO EMPLOYEE  DEPTNO

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

  198 OConnell  50

  199 Grant  50

  120 Weiss  50

  121 Fripp  50

44 rows selected


Попробуйте сменить номер отдела служащего по фамилии Matos на 80.

UPDATE dept50

SET deptno = 80

WHERE employee = 'Matos';

QL Error: ORA-01402: представление WITH CHECK OPTION не соответствует фразе WHERE

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11