--Создание таблицы для добополнительного сиропа CREATE TABLE IF NOT EXISTS topping ( id SERIAL NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, price NUMERIC(4,2) NOT NULL ); --Создание таблицы для ингредиентов CREATE TABLE IF NOT EXISTS ingredients ( id SERIAL NOT NULL PRIMARY KEY, name VARCHAR(52) NOT NULL, volume INTEGER NOT NULL ); --Создание таблицы для должностей сотрудников CREATE TABLE IF NOT EXISTS post ( id SERIAL NOT NULL PRIMARY KEY, title VARCHAR(50) NOT NULL, salary NUMERIC(10,2) NOT NULL ); --Создание таблицы для клиентов CREATE TABLE IF NOT EXISTS client ( id SERIAL NOT NULL PRIMARY KEY, firstname VARCHAR(50) NOT NULL, name VARCHAR(50) NOT NULL, patronymic VARCHAR(50) NOT NULL, datebirth DATE NOT NULL, telephone VARCHAR(18) NOT NULL ); --Создание таблицы для сотрудников CREATE TABLE IF NOT EXISTS employee ( id SERIAL NOT NULL PRIMARY KEY, firstname VARCHAR(50) NOT NULL, name VARCHAR(50) NOT NULL, patronymic VARCHAR(50) NOT NULL, datebirth DATE NOT NULL, telephone VARCHAR(18) NOT NULL, post_id INTEGER NOT NULL, FOREIGN KEY (post_id) REFERENCES post(id) ); --Создание таблицы для пасспорта сотрудника CREATE TABLE IF NOT EXISTS passport ( id INTEGER NOT NULL PRIMARY KEY REFERENCES employee(id), SERIAL char(4) NOT NULL, number char(6) NOT NULL, who_issued VARCHAR(150) NOT NULL, when_issued DATE NOT NULL, registration VARCHAR(150) NOT NULL ); --Создание таблицы для заказов CREATE TABLE IF NOT EXISTS ordering ( id SERIAL NOT NULL PRIMARY KEY, registration_date DATE NOT NULL, end_date DATE NULL, status VARCHAR(50) NOT NULL, payment VARCHAR(50) NOT NULL, client_id INTEGER NOT NULL, FOREIGN KEY (client_id) REFERENCES client, employee_id INTEGER NOT NULL, FOREIGN KEY (employee_id) REFERENCES employee ); --Создание таблицы для кофе CREATE TABLE IF NOT EXISTS coffee_drinks ( id SERIAL NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, price NUMERIC(6,2) NOT NULL, volume INTEGER NOT NULL, count_coffee INTEGER NOT NULL, ingredients_id INTEGER NOT NULL, FOREIGN KEY (ingredients_id) REFERENCES ingredients, topping_id INTEGER NOT NULL, FOREIGN KEY (topping_id) REFERENCES topping, ordering_id INTEGER NULL, FOREIGN KEY (ordering_id) REFERENCES ordering ); CREATE TABLE IF NOT EXISTS coffee_drinks_ordering ( coffee_drinks_id INTEGER NOT NULL REFERENCES coffee_drinks(id), ordering_id INTEGER NOT NULL REFERENCES ordering(id), UNIQUE(ordering_id, coffee_drinks_id), count_coffee INTEGER NOT NULL, price NUMERIC(10,2) NOT NULL ); --Ввод информации о ингредиентов INSERT INTO ingredients(name, volume) VALUES ('Кофе, вода', 45), ('Кофе,горячий шоколад, взбитые сливки, молоко', 35), ('Кофе, вспененное молоко', 70), ('Кофе, вода, вспененное молоко', 50), ('Кофе, вода', 25); --Ввод информации о сиропах INSERT INTO topping(name, price) VALUES ('Клубничный', 62.00), ('Молочно-шоколадный', 16.00), ('Карамель', 87.00), ('Манго', 93.67), ('Малина', 55.00), ('Темный шоколад', 89.00), ('Маракуя', 98.00), ('Медовый', 54.00); --Ввод информации о должостнях INSERT INTO post(title, salary) VALUES ('Директор', 998000.00), ('Менеджер', 70000.00), ('Консультант', 45000.00), ('Продавец', 25000.00), ('Техподдержка', 45000.00); --Ввод информации о клиентов INSERT INTO client(id, firstname, name, patronymic, datebirth, telephone) VALUES (1, 'Грекова', 'Таисия', 'Николаевна', '1980-06-27', '+7(958) 301-58-89'), (2, 'Мухоморова', 'Дарья', 'Серафимовна', '1983-03-12', '+7(966) 646-30-42'), (3, 'Шаров', 'Василий', 'Ефимович', '1997-05-12', '+7(975) 651-43-22'), (4, 'Боярская', 'Людмила', 'Никитьевна', '1965-04-15', '+7(922) 862-69-42'), (5, 'Дубинкин', 'Николай', 'Антонович', '1967-01-27', '+7(958) 714-59-37'), (6, 'Гришкин', 'Роман', 'Юринович', '1967-10-02', '+7(970) 873-66-56'), (7, 'Скосырский', 'Вячеслав', 'Максимович', '1960-06-10', '+7(972) 714-44-93'), (8, 'Шапиро', 'Алиса', 'Григориевна', '1997-07-13', '+7(922) 845-11-37'); --Ввод информации о сотрудниках INSERT INTO employee(id, firstname, name, patronymic, datebirth, telephone, post_id) VALUES (1, 'Коржукова', 'Елена', 'Степановна', '1987-03-06', '+7(921) 958-78-39', 1), (2, 'Синдеева', 'Римма', 'Игнатьевна', '1983-01-10', '+7(947) 973-10-76', 2), (3, 'Чичваркин', 'Серафим', 'Макарович', '1977-03-28', '+7(925) 943-71-85', 3), (4, 'Толстокожева', 'Марьяна', 'Якововна', '1992-10-08', '+7(932) 432-32-63', 4), (5, 'Курчатова', 'Вера', 'Геннадьевна', '1985-12-24', '+7(980) 817-79-42', 4), (6, 'Ярославова', 'Лидия', 'Семеновна', '1992-10-11', '+7(958) 568-10-49', 4), (7, 'Карманов', 'Алексей', 'Никанорович', '1986-04-03', '+7(915) 295-94-85', 5); --Ввод информации о пасспорте сотрудника INSERT INTO passport(id, serial, number, who_issued, when_issued, registration) VALUES (1, '4011', '468571', 'Отделением УФМС России в г. Реутов', '2018-12-07', 'Россия, г. Набережные Челны, Вишневая ул., д. 7 кв.139'), (2, '4213', '569545', 'Управление внутренних дел по г. Бердск', '1990-08-28', 'Россия, г. Волгоград, Весенняя ул., д. 11 кв.147'), (3, '4015', '517569', 'Отделением УФМС России по г. Псков', '2021-11-18', 'Россия, г. Благовещенск, Новоселов ул., д. 4 кв.188'), (4, '4934', '420551', 'Отделением УФМС России по г. Одинцово', '2016-05-07', 'Россия, г. Кострома, Октябрьский пер., д. 9 кв.47'), (5, '4375', '348134', 'Отделением УФМС России в г. Пермь', '2016-08-26', 'Россия, г. Грозный, Ленина ул., д. 9 кв.9'), (6, '4519', '335478', 'Отделом УФМС России по г. Елец', '2015-08-16', 'Россия, г. Рубцовск, Октябрьский пер., д. 3 кв.138'), (7, '4475', '304844', 'Отделением УФМС России в г. Салават', '2016-05-20', 'Россия, г. Новороссийск, Космонавтов ул., д. 9 кв.37'); --Ввод информации о заказе INSERT INTO ordering( registration_date, end_date, status, payment, client_id, employee_id) VALUES ('2023-01-13', '2023-01-13', 'Завершен', 'Онлайн', '1', '4'), ('2023-01-14', '2023-01-14', 'Завершен', 'Наличкой', '1', '4'), ('2023-01-15', '2023-01-15', 'Завершен', 'Наличкой', '1', '4'), ('2023-01-16', '2023-01-16', 'Завершен', 'Онлайн', '2', '6'), ('2023-01-17', '2023-01-17', 'Завершен', 'Онлайн', '2', '6'), ('2023-01-18', '2023-01-18', 'Завершен', 'Онлайн', '2', '6'), ('2023-01-19', '2023-01-19', 'Завершен', 'Онлайн', '2', '4'), ('2023-01-20', '2023-01-20', 'Завершен', 'Онлайн', '2', '5'), ('2023-01-21', '2023-01-21', 'Завершен', 'Наличкой', '3', '5'), ('2023-01-22', '2023-01-22', 'Завершен', 'Онлайн', '3', '4'), ('2023-01-23', '2023-01-23', 'Завершен', 'Наличкой', '3', '5'), ('2023-01-24', '2023-01-24', 'Завершен', 'Онлайн', '3', '6'), ('2023-01-25', '2023-01-25', 'Завершен', 'Наличкой', '4', '4'), ('2023-01-26', '2023-01-26', 'Завершен', 'Наличкой', '4', '5'), ('2023-01-27', '2023-01-27', 'Завершен', 'Наличкой', '4', '4'), ('2023-01-28', '2023-01-29', 'Завершен', 'Наличкой', '4', '6'), ('2023-01-30', '2023-01-31', 'Завершен', 'Онлайн', '5', '5'), ('2023-02-01', '2023-02-01', 'Завершен', 'Онлайн', '6', '4'), ('2023-02-02', '2023-02-02', 'Завершен', 'Наличкой', '7', '6'), ('2023-02-03', '2023-02-03', 'Завершен', 'Онлайн', '7', '6'), ('2023-02-04', '2023-02-04', 'Готово', 'Наличкой', '8', '5'), ('2023-02-04', '2023-02-04', 'Готовится', 'Онлайн', '1', '5'), ('2023-02-04', '2023-02-04', 'Завершен', 'Онлайн', '4', '4'); --Ввод информации о кофе INSERT INTO coffee_drinks(name, price, volume, count_coffee, ingredients_id, topping_id) VALUES ('Карамельный эспрессо', '157.00', '90', '1', '1', '3'), ('Медовый эспрессо', '124.00', '90', '1', '1', '8'), ('Молочно-шоколадный эспрессо', '86.00', '90', '1', '1', '2'), ('малиновое мокко', '220.00', '140', '1', '2', '3'), ('Темный шоколадное мокко', '254.00', '140', '4', '2', '6'), ('Манговый мокко', '258.67', '140', '1', '2', '4'), ('Маракуйное латте', '228.00', '140', '1', '3', '7'), ('Клубничное латте', '192.00', '140', '1', '3', '1'), ('Карамельное латте', '217.00', '140', '1', '3', '3'), ('Медовое капучино', '124.00', '150', '1', '4', '8'), ('Молочно-шоколадное капучино', '86.00', '150', '1', '4', '2'), ('Манговое капучино', '163.67', '150', '1', '4', '4'), ('Темно шоколадное американо', '199.00', '50', '1', '5', '6'), ('Молочно-шоколадное американо', '126.00', '50', '1', '5', '2'), ('Медовое американо', '164.00', '50', '1', '5', '8'); --Ввод информации о полной стоймости заказа и количества кофе INSERT INTO coffee_drinks_ordering (coffee_drinks_id, ordering_id, count_coffee, price) VALUES (8, 1, 4, 768.00), (15, 2, 3, 492.00), (4, 3, 10, 2200.00), (7, 4, 1, 228.00), (9, 5, 3, 261.00), (10, 6, 7, 868.00), (11, 7, 8, 688.00), (12, 8, 13, 2131.61), (1, 9, 10, 1570.00), (3, 10, 11, 946.00), (2, 11, 6, 744.00), (8, 12, 5, 960.00), (13, 13, 4, 796.00), (14, 14, 9, 1134.00), (6, 15, 10, 2568.70), (5, 16, 12, 3048.00), (6, 17, 1, 258.67), (4, 18, 4, 880.00), (1, 19, 7, 1099.00), (15, 20, 8, 1312.00), (12, 21, 2, 327.94), (10, 22, 9, 1116.00), (4, 23, 6, 1320.00); --Обновление сотрудника при помощи регулярного выражения LIKE update employee set id='1', name='Тимофей', firstname='Новоселов', patronymic='Дмитриевич', datebirth='1998-05-11', telephone='+7(909) 790-55-49' WHERE name LIKE 'Елена'; --Обновление паспорта для нового сотрудника UPDATE passport set serial='4023', number='183858', who_issued='Отделением УФМС России по г. Керчь', when_issued='2014-08-21', registration='Россия, г. Батайск, Полевой пер., д. 12 кв.6' WHERE 1=1; --Удаление паспорта старого сотрудника DELETE FROM passport WHERE passport.id='7'; --Удаление сотрудника DELETE FROM employee WHERE employee.id='7'; --Удаление должности старого сотрудника DELETE FROM post WHERE post.id='5'; --Вывод общей суммы таблицы кофе SELECT SUM(price) FROM coffee_drinks; --Подсчет сколько вообщем заказов SELECT COUNT(id) FROM ordering; --Вывод среднего значения по сотрудникам SELECT AVG(price) FROM topping; --Вывод минимальной суммы стоймости кофе за кружку SELECT MIN(price) FROM coffee_drinks; --Вывод максимальной суммы стоймости кофе за кружку SELECT MAX(price) FROM coffee_drinks; --Сортировка по убыванию SELECT * FROM employee ORDER BY id; --Сортировка по возрастанию SELECT * FROM employee ORDER BY id DESC; --Сортировка по возрастанию SELECT DISTINCT employee FROM employee ORDER BY employee; --Создание лимита SELECT * FROM coffee_drinks_ordering ORDER BY price LIMIT 5 OFFSET 6; --Вывод информации от точном клиенте SELECT * FROM client WHERE id = '4'; --Вывод информации без повторений SELECT * FROM coffee_drinks_ordering WHERE coffee_drinks_id <> '1'; --Вывод информации ordering_id №5 SELECT * FROM coffee_drinks_ordering WHERE ordering_id != '5'; --Вывод суммы больше 1000-чи SELECT * FROM coffee_drinks_ordering WHERE price > 1000; --Вывод суммы меньше 1000-чи SELECT * FROM coffee_drinks_ordering WHERE price < 1000; --Вывод суммы больше или ровно 600-та SELECT * FROM coffee_drinks_ordering WHERE price >= 600; --Вывод суммы меньше или ровно 600-ти SELECT * FROM coffee_drinks_ordering WHERE price <= 600; --Вывод точной суммы SELECT * FROM coffee_drinks_ordering WHERE price = 3048; --Использование логических операторов (AND,OR)ж SELECT * FROM coffee_drinks_ordering WHERE ( coffee_drinks_id = '3' OR price > 2000 )AND (coffee_drinks_id = '5' OR price > 2000); --Вывод информации о сотрудников при использование IN SELECT * FROM employee WHERE name IN ('Тимофей', 'Римма', 'Вера'); --Вывод информации о сотрудников при использование NOY IN SELECT * FROM employee WHERE name NOT IN ('Тимофей', 'Римма', 'Вера'); --Вывод информации припомощи регулярного выражения SIMILAR TO SELECT * FROM client WHERE telephone NOT SIMILAR TO '\([0-9]{3}\) 555\-%' escape '\'; --Объединение таблицы и вывод только левой таблицы SELECT employee, post AS post FROM employee LEFT JOIN post ON employee = post; --Объединение таблицы и вывод только правой таблицы SELECT employee, post AS post FROM employee RIGHT JOIN post ON employee = post; --Объединение таблицы и вывод по двум таблицам SELECT employee, post AS post FROM employee INNER JOIN post ON employee = post;
Write, Run & Share PostgreSQL queries online using OneCompiler's PostgreSQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for PostgreSQL. Getting started with the OneCompiler's PostgreSQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose database as 'PostgreSQL' and start writing queries to learn and test online without worrying about tedious process of installation.
PostgreSQL is a open source relational database system and is also knows as Postgres.
CREATE command is used to create a table, schema or an index.
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
....);
ALTER command is used to add, modify or delete columns or constraints from the database table.
ALTER TABLE Table_name ADD column_name datatype;
TRUNCATE command is used to delete the data present in the table but this will not delete the table.
TRUNCATE table table_name;
DROP command is used to delete the table along with its data.
DROP TABLE table_name;
RENAME command is used to rename the table name.
ALTER TABLE table_name1 RENAME to new_table_name1;
INSERT Statement is used to insert new records into the database table.
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
Select statement is used to select data from database tables.
SELECT column1, column2, ...
FROM table_name;
UPDATE statement is used to modify the existing values of records present in the database table.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
DELETE statement is used to delete the existing records present in the database table.
DELETE FROM table_name where condition;