Created
March 19, 2022 05:12
-
-
Save Captain1965/1dd3103d13ce0d6b9ef0ae99655e559a to your computer and use it in GitHub Desktop.
task_from_sql
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Создайте базу данных test_guru | |
CREATE DATA BASE test_guru; | |
#Создайте таблицу categories с атрибутом title | |
test_guru=# CREATE TABLE categories( | |
test_guru=(# id serial PRIMARY KEY, | |
test_guru=(# title varchar(50) | |
test_guru=(# ); | |
CREATE TABLE | |
#Создайте таблицу tests в которой должны быть атрибуты title, level, | |
#внешний ключ к таблице categories | |
test_guru=# CREATE TABLE tests( | |
test_guru(# id serial PRIMARY KEY, | |
test_guru(# title varchar(50), | |
test_guru(# level integer, | |
test_guru(# id_categories integer | |
test_guru(# ); | |
CREATE TABLE | |
#Создайте аблицу questions в которой должен быть атрибут body | |
#и внешний ключ к таблице tests | |
test_guru=# CREATE TABLE questions( | |
test_guru(# id serial PRIMARY KEY, | |
test_guru(# body text, | |
test_guru(# id_tests integer | |
test_guru(# ); | |
CREATE TABLE | |
#Создайте 3 строки в таблице categories | |
test_guru=# INSERT INTO categories (title) values | |
test_guru-# ('Frontend'), | |
test_guru-# ('Backend'), | |
test_guru-# ('Development') | |
test_guru-# ; | |
INSERT 0 3 | |
#Создайте 5 строк в таблице tests (хотя бы 3 из них должны иметь отличное | |
#от NULL значение в атрибуте внешнего ключа к таблице categories) | |
test_guru=# INSERT INTO tests (title, level, id_categories) values | |
test_guru-# ('HTML', 3, 1), | |
test_guru-# ('Ruby', 5, 2), | |
test_guru-# ('SQL', 3, 3), | |
test_guru-# ('C++', 5, 1), | |
test_guru-# ('C#', 4, 2); | |
INSERT 0 5 | |
#Создайте 5 строк в таблице questions | |
test_guru=# INSERT INTO questions (body, id_tests) values | |
test_guru-# ('Hot key Sublime Text', 4), | |
test_guru-# ('Object model in Ruby', 2), | |
test_guru-# ('HTML language', 1), | |
test_guru-# ('What meen methods to_s ?', 3), | |
test_guru-# ('What types of variables do you know?', 5); | |
INSERT 0 5 | |
#Выберите все тесты с уровнем 2 | |
test_guru=# SELECT * FROM tests | |
test_guru-# WHERE level = 2 ; | |
id | title | level | id_categories | |
----+-------+-------+--------------- | |
(0 rows) | |
##Выберите все тесты с уровнем 3 | |
test_guru=# SELECT * FROM tests | |
test_guru-# WHERE level = 3 | |
test_guru-# ; | |
id | title | level | id_categories | |
----+-------+-------+--------------- | |
1 | HTML | 3 | 1 | |
3 | SQL | 3 | 3 | |
(2 rows) | |
#Выберите все тесты с уровнем 3 и 5 | |
test_guru=# SELECT * FROM tests | |
test_guru-# WHERE level = 3 or level = 5; | |
id | title | level | id_categories | |
----+-------+-------+--------------- | |
1 | HTML | 3 | 1 | |
2 | Ruby | 5 | 2 | |
3 | SQL | 3 | 3 | |
4 | C++ | 5 | 1 | |
(4 rows) | |
#Выберите все вопросы для определённого теста | |
test_guru=# SELECT * FROM questions WHERE id_tests = 5 ; | |
id | body | id_tests | |
----+--------------------------------------+---------- | |
5 | What types of variables do you know? | 5 | |
#Обновите атрибуты title и level для строки из таблицы tests с помощью одного запроса | |
test_guru=# UPDATE tests SET title = 'CSS' , level = 2 WHERE id = 2; | |
UPDATE 1 | |
test_guru=# SELECT * FROM tests ; | |
id | title | level | id_categories | |
----+-------+-------+--------------- | |
1 | HTML | 3 | 1 | |
3 | SQL | 3 | 3 | |
4 | C++ | 5 | 1 | |
5 | C# | 4 | 2 | |
2 | CSS | 2 | 2 | |
(5 rows) | |
#Удалите все вопросы для конкретного теста с помощью одного запроса | |
test_guru=# DELETE FROM questions WHERE id_tests = 4; | |
DELETE 1 | |
test_guru=# | |
#С помощью JOIN выберите названия всех тестов и названия их категорий | |
test_guru=# SELECT * FROM tests JOIN categories ON tests.id_categories = categories.id; | |
id | title | level | id_categories | id | title | |
----+-------+-------+---------------+----+------------- | |
1 | HTML | 3 | 1 | 1 | Frontend | |
3 | SQL | 3 | 3 | 3 | Development | |
4 | C++ | 5 | 1 | 1 | Frontend | |
5 | C# | 4 | 2 | 2 | Backend | |
2 | CSS | 2 | 2 | 2 | Backend | |
(5 rows) | |
#С помощью JOIN выберите содержание всех вопросов (атрибут body) и названия связанных с #ними тестов | |
test_guru=# SELECT * FROM questions JOIN tests ON questions.id_tests = tests.id; | |
id | body | id_tests | id | title | level | id_categories | |
----+--------------------------------------+----------+----+-------+-------+--------------- | |
2 | Object model in Ruby | 2 | 2 | CSS | 2 | 2 | |
3 | HTML language | 1 | 1 | HTML | 3 | 1 | |
4 | What meen methods to_s ? | 3 | 3 | SQL | 3 | 3 | |
5 | What types of variables do you know? | 5 | 5 | C# | 4 | 2 | |
(4 rows) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment