Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share code      Blog   Popular   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

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

Stuck with a problem? Got Error? Ask ChatGPT!