-
Notifications
You must be signed in to change notification settings - Fork 0
/
hw_11.sql
219 lines (160 loc) · 4.89 KB
/
hw_11.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
/* ---------- TASK 1 ---------- */
CREATE TABLE friends AS (
SELECT employee_id id, first_name name, last_name surname
FROM employees
WHERE commission_pct IS NOT NULL
);
SELECT * FROM friends;
CREATE TABLE friends AS
SELECT employee_id id, first_name name, last_name surname
FROM employees
WHERE commission_pct IS NOT NULL;
/* ---------- TASK 2 ---------- */
ALTER TABLE friends
ADD (email VARCHAR(25));
/* ---------- TASK 3 ---------- */
ALTER TABLE friends
MODIFY (email VARCHAR(25) DEFAULT 'no email');
/* ---------- TASK 4 ---------- */
INSERT INTO friends (id, name, surname)
VALUES (300, 'Vladimir', 'Radionov');
/* ---------- TASK 5 ---------- */
ALTER TABLE friends
RENAME COLUMN id TO friends_id;
/* ---------- TASK 6 ---------- */
DROP TABLE friends;
/* ---------- TASK 7 ---------- */
CREATE TABLE friends (
id INTEGER,
name VARCHAR2(25),
surname VARCHAR2(25),
email VARCHAR2(25),
salary NUMBER(9, 2) DEFAULT 100000,
city VARCHAR2(30),
birthday DATE DEFAULT TO_DATE('01-JAN-1984', 'DD-MON-YYYY')
);
SELECT * FROM friends;
/* ---------- TASK 8 ---------- */
INSERT INTO friends
VALUES (1, 'Stanislav', 'Miturich', 'stanislav.miturich@gmail.com', 150000, 'Sevastopol', TO_DATE('13-AUG-1987', 'DD-MON-YYYY'));
/* ---------- TASK 9 ---------- */
INSERT INTO friends (id, name, surname, email, city)
VALUES (2, 'Vladimir', 'Radionov', 'rvladimir@mail.ru', 'Murmansk');
/* ---------- TASK 10 ---------- */
COMMIT;
/* ---------- TASK 11 ---------- */
ALTER TABLE friends
DROP COLUMN salary;
/* ---------- TASK 12 ---------- */
ALTER TABLE friends
SET UNUSED COLUMN email;
/* ---------- TASK 13 ---------- */
ALTER TABLE friends
SET UNUSED COLUMN birthday;
/* ---------- TASK 14 ---------- */
ALTER TABLE friends DROP UNUSED COLUMNS;
/* ---------- TASK 15 ---------- */
ALTER TABLE friends READ ONLY;
/* ---------- TASK 16 ---------- */
UPDATE friends SET city = 'Sevastopol' WHERE id = 2;
/* ---------- TASK 17 ---------- */
TRUNCATE TABLE friends;
/* ---------- TASK 18 ---------- */
DROP TABLE friends;
/* -------------------------------------------------------------------------- */
SELECT * FROM user_objects;
SELECT object_type, count(object_type) FROM user_objects
GROUP BY object_type ORDER BY object_type;
SELECT object_type, count(object_type) FROM all_objects
GROUP BY object_type ORDER BY object_type;
SELECT table_name FROM user_tables;
SELECT column_name, data_type, nullable FROM user_tab_columns;
SELECT column_name, data_type, nullable FROM user_tab_columns
WHERE table_name = 'DEPARTMENTS';
CREATE TABLE "3abc def" (
id number
);
SELECT * FROM "3abc def";
CREATE TABLE abc_def (
id number
);
CREATE TABLE abc (
id number
);
CREATE TABLE "def" (
id number
);
SELECT * FROM "def";
SELECT last_name, salary FROM employees;
SELECT rowid, last_name, salary FROM employees;
DROP TABLE "3abc def";
DROP TABLE "def";
DROP TABLE abc;
DROP TABLE abc_def;
CREATE TABLE students (
student_id INTEGER,
name VARCHAR2(15),
start_date DATE DEFAULT ROUND(SYSDATE),
scholarship NUMBER(6, 2),
avg_score NUMBER(4, 2) DEFAULT 5
) ORGANIZATION HEAP;
CREATE TABLE students (
student_id INTEGER,
name VARCHAR2(15),
start_date DATE DEFAULT ROUND(SYSDATE),
scholarship NUMBER(6, 2),
avg_score NUMBER(4, 2) DEFAULT 5
);
SELECT * FROM students;
INSERT INTO students (student_id, name, start_date, scholarship, avg_score)
VALUES (1, 'Dmitriy', TO_DATE('01-MAY-23'), 1500.3, 7.8);
INSERT INTO students (student_id, name, start_date, scholarship, avg_score)
VALUES (2, 'Ivan', TO_DATE('10-MAY-23'), 800.356, 8);
INSERT INTO students (student_id, name, scholarship)
VALUES (3, 'Nina', 555);
SELECT * FROM new_emps;
CREATE TABLE new_emps2 AS (
SELECT employee_id, first_name, last_name, salary, department_id
FROM employees
);
SELECT * FROM new_emps2;
CREATE TABLE new_deps AS (
SELECT department_name, MAX(salary) max_salary, MIN(salary) min_salary
FROM employees e JOIN departments d ON (e.department_id = d.department_id)
GROUP BY department_name
);
SELECT * FROM new_deps;
CREATE TABLE regions2 AS (
SELECT * FROM regions
WHERE 5 = 6
);
SELECT * FROM regions2;
SELECT * FROM students;
ALTER TABLE students
ADD (course number DEFAULT 3);
ALTER TABLE students
MODIFY (avg_score number(5, 3));
ALTER TABLE students
MODIFY (start_date date DEFAULT NULL);
INSERT INTO students (student_id, name)
VALUES (4, 'Vova');
ALTER TABLE students
DROP COLUMN scholarship;
ALTER TABLE students
SET UNUSED COLUMN start_date;
SELECT start_date FROM students;
ALTER TABLE students
DROP UNUSED COLUMNS;
ALTER TABLE students
RENAME COLUMN student_id TO id;
ALTER TABLE students
READ ONLY;
DELETE FROM students
WHERE id = 1;
DROP TABLE students;
ALTER TABLE students
ADD (faculty_name varchar2(20));
SELECT * FROM students;
TRUNCATE TABLE students;
DROP TABLE students;
/* -------------------------------------------------------------------------- */