Hi! Could we please enable some services and cookies to improve your experience and our website?
No, thanks.
Okay!
SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share code
Donate
Blog
Popular
FAQ
Donate
A
A
A
Share
Blog
Popular
FAQ
Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code
SQL code:
Upload
Copy
Format
Clear
-- Проверка существования и удаление базы данных StaffDB, если она существует IF DB_ID('StaffDB') IS NOT NULL BEGIN DROP DATABASE StaffDB; END GO -- Создание базы данных CREATE DATABASE StaffDB; GO -- Переключение на созданную базу данных USE StaffDB; GO -- Проверка существования и удаление таблицы StaffRecords, если она существует IF OBJECT_ID('dbo.StaffRecords', 'U') IS NOT NULL BEGIN DROP TABLE dbo.StaffRecords; END GO -- Создание таблицы StaffRecords с полями StaffID, StaffName и StaffSalary CREATE TABLE StaffRecords ( StaffID int PRIMARY KEY, StaffName varchar(50), StaffSalary decimal(10,2) ); GO -- Вставка тестовых данных в таблицу StaffRecords INSERT INTO StaffRecords VALUES (1, 'Alice', 5000.00); INSERT INTO StaffRecords VALUES (2, 'Bob', 6000.00); INSERT INTO StaffRecords VALUES (3, 'Charlie', 7000.00); INSERT INTO StaffRecords VALUES (4, 'David', 8000.00); INSERT INTO StaffRecords VALUES (5, 'Eve', 9000.00); GO -- Проверка существования и удаление таблицы SummaryTable, если она существует IF OBJECT_ID('dbo.SummaryTable', 'U') IS NOT NULL BEGIN DROP TABLE dbo.SummaryTable; END GO -- Создание итоговой таблицы SummaryTable CREATE TABLE SummaryTable ( StaffID int, StaffName varchar(50), StaffSalary decimal(10,2) ); GO -- Проверка существования и удаление процедуры SelectTopStaff, если она существует IF OBJECT_ID('dbo.SelectTopStaff', 'P') IS NOT NULL BEGIN DROP PROCEDURE dbo.SelectTopStaff; END GO -- Создание процедуры для выбора трех сотрудников с максимальной зарплатой CREATE PROCEDURE SelectTopStaff AS BEGIN -- Очистка итоговой таблицы перед вставкой новых данных DELETE FROM SummaryTable; -- Вставка трех сотрудников с наивысшей зарплатой INSERT INTO SummaryTable (StaffID, StaffName, StaffSalary) SELECT TOP 3 StaffID, StaffName, StaffSalary FROM StaffRecords ORDER BY StaffSalary DESC; END; GO -- Выполнение процедуры для заполнения итоговой таблицы EXEC SelectTopStaff; GO -- Генерация XML-документа из итоговой таблицы DECLARE @StaffXML xml; SET @StaffXML = (SELECT * FROM SummaryTable FOR XML PATH('Employee'), ROOT('Employees')); GO -- Проверка, является ли первый сотрудник "Федей" с помощью метода exist IF (SELECT @StaffXML.exist('/Employees/Employee[1][StaffName="Fedya"]')) = 1 BEGIN PRINT 'Первый сотрудник - Федя'; END ELSE BEGIN PRINT 'Первый сотрудник - не Федя'; END; GO -- Добавление четвертого сотрудника в итоговую таблицу INSERT INTO SummaryTable (StaffID, StaffName, StaffSalary) VALUES (999, 'Fedya', 1000.00); GO -- Проверка существования и удаление триггера CalcAvgSalaryTrigger, если он существует IF OBJECT_ID('dbo.CalcAvgSalaryTrigger', 'TR') IS NOT NULL BEGIN DROP TRIGGER dbo.CalcAvgSalaryTrigger; END GO -- Создание триггера для вычисления средней зарплаты после вставки или обновления CREATE TRIGGER CalcAvgSalaryTrigger ON SummaryTable AFTER INSERT, UPDATE AS BEGIN DECLARE @AvgStaffSalary decimal(10,2); SELECT @AvgStaffSalary = AVG(StaffSalary) FROM SummaryTable; PRINT 'Средняя зарплата составляет ' + CAST(@AvgStaffSalary AS varchar(20)); END; GO
SQL
Server:
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
MySQL 9.3.0
MariaDB 11.4
MariaDB 11.8
MariaDB 10
MariaDB 10 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