Skip to content

Commit 627b380

Browse files
author
Igor Demin
committed
add first 3 labs
1 parent db2e6b5 commit 627b380

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed

1 - lab.sql

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/* "Получите описание таблицы REGIONS, используя её ПОЛНОЕ имя." */
2+
DESCRIBE hr.REGIONS;
3+
4+
/* Получите описание таблицы COUNTRIES, используя её ПОЛНОЕ имя. */
5+
DESCRIBE hr.COUNTRIES;
6+
7+
/* Получите описание таблицы JOBS, используя её короткое имя. */
8+
DESCRIBE jobs;
9+
10+
/* Получите описание таблицы LOCATIONS, используя её короткое имя. */
11+
DESCRIBE LOCATIONS;

2 - lab.sql

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
SELECT * FROM employees;
2+
3+
/* Выведите всю информацию о регионах. */
4+
SELECT * FROM regions;
5+
6+
/* Выведите информацию о имени, id департамента, зарплате и фамилии для всех работников. */
7+
SELECT first_name, department_id, salary, last_name FROM employees;
8+
9+
/* Выведите информацию о id работника, электронной почте и дату, которая была за неделю до трудоустройства для всех работников.
10+
Столбец, который будет содержать дату назовите One week before hire date . */
11+
SELECT employee_id, email, hire_date-7 AS "one week before hire date" FROM employees;
12+
13+
/* Выведите информацию о работниках с их позициями в формате: Donald(SH_CLERK) . Назовите столбец our_employees. */
14+
SELECT first_name || '(' || job_id || ')' our_employees FROM employees;
15+
16+
/* Выведите список уникальных имён среди работников. */
17+
SELECT DISTINCT first_name FROM employees;
18+
19+
/* Выведите следующую информацию из таблицы jobs:
20+
-job_title
21+
-выражение в формате: «min = 20080, max = 40000», где 20080 – это минимальная з/п, а 40000 – максимальная. Назовите этот столбец info.
22+
-максимальную з/п и назовите столбец max,
23+
-новую з/п, которая будет называться new_salary и вычисляться поформуле: max_salary*2-2000. */
24+
SELECT * FROM jobs;
25+
SELECT job_title, 'min = '||min_salary||', max = '|| max_salary as info, max_salary as max, max_salary*2-2000 as new_salary FROM jobs;
26+
27+
/* Выведите на экран предложение «Peter's dog is very clever», используя одну из двух техник работы с одинарными кавычками. */
28+
SELECT q'<Peter's dog is very clever>' FROM dual;
29+
30+
/* Выведите на экран предложение «Peter's dog is very clever», используя, отличную от предыдущего примера, технику работы с одинарными кавычками */
31+
SELECT 'Peter''s dog is very clever' FROM dual;
32+
33+
/* Выведите на экран количество минут в одном веке (1 год = 365.25дней). */
34+
SELECT 365.25*100*24*60 FROM dual;

3 - lab.sql

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
SELECT * FROM employees;
2+
/* Получите список всех сотрудников с именем David. */
3+
SELECT * FROM employees WHERE first_name = 'David';
4+
5+
/* Получите список всех сотрудников, у которых job_id равен FI_ACCOUNT */
6+
SELECT * FROM employees WHERE job_id = 'FI_ACCOUNT';
7+
8+
/* Выведите информацию о имени, фамилии, з/п и номере департамента для сотрудников из 50го департамента с зарплатой, большей 4000. */
9+
SELECT first_name, last_name, salary, department_id FROM employees
10+
WHERE department_id = 50 AND salary > 4000;
11+
12+
/* Получите список всех сотрудников, которые работают или в 20м, или в 30м департаменте. */
13+
SELECT * FROM employees WHERE department_id = 20 OR department_id = 30;
14+
15+
/* Получите список всех сотрудников, у которых вторая и последняя буква в имени равна 'a'.
16+
SELECT * FROM employees WHERE first_name like '_a%a';
17+
18+
/* Получите список всех сотрудников из 50го и из 80го департамента, у которых есть бонус(комиссионные). Отсортируйте строки по email
19+
(возрастающий порядок), используя его порядковый номер. */
20+
SELECT * FROM employees
21+
WHERE commission_pct IS NOT NULL
22+
AND department_id = 80 OR department_id = 80
23+
ORDER BY email;
24+
25+
/* Получите список всех сотрудников, у которых в имени содержатся минимум 2 буквы 'n'. */
26+
SELECT * FROM employees WHERE first_name like '%n%n%';
27+
28+
/* Получить список всех сотрудников, у которых длина имени больше 4 букв. Отсортируйте строки по номеру департамента (убывающий
29+
порядок) так, чтобы значения “null” были в самом конце. */
30+
SELECT * FROM employees
31+
WHERE first_name like '____%'
32+
ORDER BY department_id DESC NULLS LAST;
33+
34+
/* Получите список всех сотрудников, у которых зарплата находится в промежутке от 3000 до 7000 (включительно), нет бонуса
35+
(комиссионных) и job_id среди следующих вариантов: PU_CLERK, ST_MAN, ST_CLERK. */
36+
SELECT * FROM employees
37+
WHERE salary
38+
BETWEEN 3000 AND 7000
39+
AND commission_pct is null
40+
AND job_id
41+
IN ('PU_CLERK', 'ST_MAN', 'ST_CLERK');
42+
43+
/* Получите список всех сотрудников у которых в имени содержится символ '%' */
44+
SELECT * FROM employees WHERE first_name LIKE '%\%%' escape '\';
45+
46+
/* Выведите информацию о job_id, имене и з/п для работников, рабочийid которых больше или равен 120 и job_id не равен IT_PROG.
47+
Отсортируйте строки по job_id (возрастающий порядок) и именам (убывающий порядок). */
48+
SELECT first_name, job_id, salary FROM employees
49+
WHERE employee_id>=120
50+
AND job_id NOT LIKE 'IT_PROG'
51+
ORDER BY 2, 1 DESC;

0 commit comments

Comments
 (0)