'&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

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 |

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 Попытки изменить данные в представлении Вывод определений представлений Удаление представлений
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.

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 |


