SQL_Begin

Форк
0
/
Mikhailov_D_M_dz_1.sql 
110 строк · 5.0 Кб
1
--=============== МОДУЛЬ 2. РАБОТА С БАЗАМИ ДАННЫХ =======================================
2
--= ПОМНИТЕ, ЧТО НЕОБХОДИМО УСТАНОВИТЬ ВЕРНОЕ СОЕДИНЕНИЕ И ВЫБРАТЬ СХЕМУ PUBLIC===========
3
SET search_path TO public;
4

5
--======== ОСНОВНАЯ ЧАСТЬ ==============--
6
/* Михайлов Дмитрий Александрович */
7

8
--ЗАДАНИЕ №1
9
--Выведите уникальные названия городов из таблицы городов.
10

11
SELECT DISTINCT city FROM city;
12

13

14

15
--ЗАДАНИЕ №2
16
--Доработайте запрос из предыдущего задания, чтобы запрос выводил только те города,
17
--названия которых начинаются на “L” и заканчиваются на “a”, и названия не содержат пробелов.
18

19
SELECT DISTINCT city FROM city
20
WHERE city LIKE 'L%a' and not  city LIKE '% %';
21

22

23

24
--ЗАДАНИЕ №3
25
--Получите из таблицы платежей за прокат фильмов информацию по платежам, которые выполнялись 
26
--в промежуток с 17 июня 2005 года по 19 июня 2005 года включительно, 
27
--и стоимость которых превышает 1.00.
28
--Платежи нужно отсортировать по дате платежа.
29

30
SELECT payment_id, payment_date, amount FROM payment
31
WHERE payment_date BETWEEN '17-06-2005' AND '19-06-2005' and amount > 1
32
order by payment_date;
33

34

35
--ЗАДАНИЕ №4
36
-- Выведите информацию о 10-ти последних платежах за прокат фильмов.
37

38
SELECT payment_date, payment_id, amount from payment
39
ORDER BY payment_date DESC LIMIT 10;
40

41

42
--ЗАДАНИЕ №5
43
--Выведите следующую информацию по покупателям:
44
--  1. Фамилия и имя (в одной колонке через пробел)
45
--  2. Электронная почта
46
--  3. Длину значения поля email
47
--  4. Дату последнего обновления записи о покупателе (без времени)
48
--Каждой колонке задайте наименование на русском языке.
49

50
SELECT first_name  || ' ' || last_name as "ФИО", email as "Почта", 
51
CHARACTER_LENGTH (email) as "Длина почты", last_update as "Крайнее обновление"
52
from customer;
53

54

55

56
--ЗАДАНИЕ №6
57
--Выведите одним запросом только активных покупателей, имена которых KELLY или WILLIE.
58
--Все буквы в фамилии и имени из верхнего регистра должны быть переведены в нижний регистр.
59

60
SELECT first_name, last_name, active  
61
FROM customer
62
WHERE first_name IN('KELLY', 'WILLIE') AND(active = 1);
63

64

65

66
--======== ДОПОЛНИТЕЛЬНАЯ ЧАСТЬ ==============
67

68
--ЗАДАНИЕ №1
69
--Выведите одним запросом информацию о фильмах, у которых рейтинг "R" 
70
--и стоимость аренды указана от 0.00 до 3.00 включительно, 
71
--а также фильмы c рейтингом "PG-13" и стоимостью аренды больше или равной 4.00.
72

73
SELECT film_id, title, description, rating, rental_rate 
74
FROM film
75
where (rating = 'R' and rental_rate between 0.00 and 3.00) 
76
or (rating = 'PG-13' and rental_rate >= 4.0)
77
order by rental_rate;
78

79

80

81
--ЗАДАНИЕ №2
82
--Получите информацию о трёх фильмах с самым длинным описанием фильма.
83

84
SELECT film_id, title, 
85
		description, 
86
		CHARACTER_LENGTH(description) as Длина_описания
87
FROM film
88
ORDER BY CHARACTER_LENGTH(description) desc LIMIT 3;
89

90

91

92
--ЗАДАНИЕ №3
93
-- Выведите Email каждого покупателя, разделив значение Email на 2 отдельных колонки:
94
--в первой колонке должно быть значение, указанное до @, 
95
--во второй колонке должно быть значение, указанное после @.
96

97
SELECT customer_id, email, 
98
LEFT(email, POSITION('@' IN email)-1) as "Адрес_перед_@",
99
RIGHT(email, POSITION('@' IN email)+1) as "Адрес_после_@"
100
FROM customer;
101

102

103
--ЗАДАНИЕ №4
104
--Доработайте запрос из предыдущего задания, скорректируйте значения в новых колонках: 
105
--первая буква должна быть заглавной, остальные строчными.
106

107
SELECT customer_id, email, 
108
INITCAP(LEFT(email, POSITION('@' IN email)-1)) as "Адрес_перед_@",
109
INITCAP(RIGHT(email, POSITION('@' IN email)+1)) as "Адрес_после_@"
110
FROM customer;
111

112

113

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.