SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share
Donate
Blog
Popular
Donate
A
A
A
Share
Blog
Popular
SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code.
You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.
SQL code:
Upload
Copy
Format
Clear
-- Создание таблицы country CREATE TABLE country ( countryID INT PRIMARY KEY, name VARCHAR(50) NOT NULL ); -- Создание таблицы artist CREATE TABLE artist ( artistID INT PRIMARY KEY, countryID INT, surname VARCHAR(50) NOT NULL, name VARCHAR(50) NOT NULL, birthday DATE, death_date DATE, FOREIGN KEY (countryID) REFERENCES country(countryID) ); -- Создание таблицы artwork CREATE TABLE artwork ( artworkID INT PRIMARY KEY, artistID INT, title VARCHAR(200) NOT NULL, created INT, FOREIGN KEY (artistID) REFERENCES artist(artistID) ); -- Создание таблицы exhibition CREATE TABLE exhibition ( exhibitionID INT PRIMARY KEY, title VARCHAR(200) NOT NULL, date DATE, address VARCHAR(200) ); -- Создание таблицы artwork_exhibition CREATE TABLE artwork_exhibition ( artexhID INT PRIMARY KEY, exhibitionID INT, artworkID INT, FOREIGN KEY (exhibitionID) REFERENCES exhibition(exhibitionID), FOREIGN KEY (artworkID) REFERENCES artwork(artworkID) ); -- Заполнение таблицы country INSERT INTO country (countryID, name) VALUES (1, 'Россия'), (2, 'Франция'), (3, 'Италия'); -- Заполнение таблицы artist INSERT INTO artist (artistID, countryID, surname, name, birthday, death_date) VALUES (1, 1, 'Репин', 'Илья', '1844-08-05', '1930-09-29'), (2, 1, 'Кандинский', 'Василий', '1866-12-16', '1944-12-13'), (3, 2, 'Моне', 'Клод', '1840-11-14', '1926-12-05'), (4, 3, 'Да Винчи', 'Леонардо', '1452-04-15', '1519-05-02'), (5, 3, 'Тицман', 'Тицнано', '1488-02-20', '1576-08-27'); -- Заполнение таблицы artwork INSERT INTO artwork (artworkID, artistID, title, created) VALUES (1, 1, 'Иван Грозный и сын его Иван', 1885), (2, 1, 'Не ждали', 1884), (3, 2, 'Композиция VIII', 1923), (4, 2, 'Синий всадник', 1903), (5, 2, 'Синяя гора', 1908), (6, 3, 'Камилла', 1866), (7, 4, 'Тайная вечеря', 1498), (8, 4, 'Витрувианский человек', 1492), (9, 5, 'Успение Богородицы', 1518), (10, 5, 'Венера Урбинская', 1538); -- Заполнение таблицы exhibition INSERT INTO exhibition (exhibitionID, title, date, address) VALUES (1, 'Русская живопись', '2024-03-15', 'ГМИИ имени Пушкина'), (2, 'Эпоха Возрождения', '2024-06-25', 'Новая Третьяковка'), (3, 'Романтизм в искусстве', '2024-09-16', 'Государственный музей изобразительных искусств имени А.С. Пушкина'); -- Заполнение таблицы artwork_exhibition INSERT INTO artwork_exhibition (artexhID, exhibitionID, artworkID) VALUES (1, 1, 1), (2, 1, 2), (3, 1, 3), (4, 1, 4), (5, 1, 5), (6, 2, 6), (7, 2, 7), (8, 2, 8), (9, 2, 9), (10, 2, 10), (11, 3, 3), (12, 3, 9), (13, 3, 10); -- Создаем временную таблицу для подсчета количества картин каждого художника на выставках WITH ArtistArtworkCount AS ( SELECT a.name + ' ' + a.surname AS artist_name, COUNT(ae.artworkID) AS artwork_count FROM artist a JOIN artwork aw ON a.artistID = aw.artistID JOIN artwork_exhibition ae ON aw.artworkID = ae.artworkID GROUP BY a.name, a.surname ) -- Применяем PIVOT для создания отчета SELECT [Илья Репин], [Василий Кандинский], [Клод Моне], [Леонардо Да Винчи], [Тициано Тициан] FROM ArtistArtworkCount PIVOT ( SUM(artwork_count) FOR artist_name IN ( [Илья Репин], [Василий Кандинский], [Клод Моне], [Леонардо Да Винчи], [Тициано Тициан] ) ) AS PivotTable;
SQL
Server:
MariaDB 11.4
MariaDB 11.5
MariaDB 10
MariaDB 10 Sakila (ReadOnly)
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
SQLite 3
SQLite 3 Preloaded
PostgreSQL 10 Bookings (ReadOnly)
PostgreSQL 13
PostgreSQL 14
PostgreSQL 15
PostgreSQL 16
PostgreSQL 17
MS SQL Server 2017
MS SQL Server 2019
MS SQL Server 2022
MS SQL Server 2022 AdventureWorks (ReadOnly)
Firebird 4.0
Firebird 4.0 (Employee)
Oracle Database 19c (HR)
Oracle Database 21c
Oracle Database 23c Free
SOQOL
Version
ER Diagram
Preserve result
Stuck with a problem?
Got Error?
Ask ChatGPT!
Result:
Copy
Clear