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
-- Проверка существования и удаление базы данных New_EmployeeDB, если она существует IF DB_ID('New_EmployeeDB') IS NOT NULL BEGIN DROP DATABASE New_EmployeeDB; END GO -- Создание базы данных CREATE DATABASE New_EmployeeDB; GO -- Переключение на созданную базу данных USE New_EmployeeDB; GO -- Проверка существования и удаление таблицы New_StaffTable, если она существует IF OBJECT_ID('dbo.New_StaffTable', 'U') IS NOT NULL BEGIN DROP TABLE dbo.New_StaffTable; END GO -- Создание таблицы New_StaffTable с полями New_StaffID, New_Name и New_Salary CREATE TABLE New_StaffTable ( New_StaffID int PRIMARY KEY, New_Name varchar(50), New_Salary decimal(10,2) ); GO -- Вставка тестовых данных в таблицу New_StaffTable INSERT INTO New_StaffTable VALUES (1, 'Alice', 5000.00); INSERT INTO New_StaffTable VALUES (2, 'Bob', 6000.00); INSERT INTO New_StaffTable VALUES (3, 'Charlie', 7000.00); INSERT INTO New_StaffTable VALUES (4, 'David', 8000.00); INSERT INTO New_StaffTable VALUES (5, 'Eve', 9000.00); GO -- Проверка существования и удаление таблицы New_ResultTable, если она существует IF OBJECT_ID('dbo.New_ResultTable', 'U') IS NOT NULL BEGIN DROP TABLE dbo.New_ResultTable; END GO -- Создание итоговой таблицы New_ResultTable CREATE TABLE New_ResultTable ( New_StaffID int, New_Name varchar(50), New_Salary decimal(10,2) ); GO -- Проверка существования и удаление процедуры New_GetTopStaff, если она существует IF OBJECT_ID('dbo.New_GetTopStaff', 'P') IS NOT NULL BEGIN DROP PROCEDURE dbo.New_GetTopStaff; END GO -- Создание процедуры для выбора трех сотрудников с максимальной зарплатой CREATE PROCEDURE New_GetTopStaff AS BEGIN -- Очистка итоговой таблицы перед вставкой новых данных DELETE FROM New_ResultTable; -- Вставка трех сотрудников с наивысшей зарплатой INSERT INTO New_ResultTable (New_StaffID, New_Name, New_Salary) SELECT TOP 3 New_StaffID, New_Name, New_Salary FROM New_StaffTable ORDER BY New_Salary DESC; END; GO -- Выполнение процедуры для заполнения итоговой таблицы EXEC New_GetTopStaff; GO -- Генерация XML-документа из итоговой таблицы DECLARE @New_XML xml; SET @New_XML = (SELECT * FROM New_ResultTable FOR XML PATH('Employee'), ROOT('Employees')); GO -- Проверка, является ли первый сотрудник "Ильей" с помощью метода exist IF (SELECT @New_XML.exist('/Employees/Employee[1][New_Name="Ilya"]')) = 1 BEGIN PRINT 'Первый сотрудник - Илья'; END ELSE BEGIN PRINT 'Первый сотрудник - не Илья'; END; GO -- Добавление четвертого сотрудника в итоговую таблицу INSERT INTO New_ResultTable (New_StaffID, New_Name, New_Salary) VALUES (999, 'Ilya', 1000.00); GO -- Проверка существования и удаление триггера New_AvgSalaryTrigger, если он существует IF OBJECT_ID('dbo.New_AvgSalaryTrigger', 'TR') IS NOT NULL BEGIN DROP TRIGGER dbo.New_AvgSalaryTrigger; END GO -- Создание триггера для вычисления средней зарплаты после вставки или обновления CREATE TRIGGER New_AvgSalaryTrigger ON New_ResultTable AFTER INSERT, UPDATE AS BEGIN DECLARE @New_AvgSalary decimal(10,2); SELECT @New_AvgSalary = AVG(New_Salary) FROM New_ResultTable; PRINT 'Средняя зарплата составляет ' + CAST(@New_AvgSalary 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