← К оглавлению занятия

💻 Примеры

⚡ Кратко: примеры

  • Создание таблицы Employees с ограничениями.
  • Вставка 5 строк через INSERT INTO.
  • Копирование таблицы через CREATE TABLE ... AS SELECT.
  • Обновление зарплаты через UPDATE.

💻 Примеры

Создание таблицы Employees

CREATE TABLE Employees (
    EmployeeID INT AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    BirthDate DATE,
    HireDate DATE DEFAULT CURRENT_DATE,
    Salary DECIMAL(10, 2) CHECK (Salary > 0),
    Email VARCHAR(100) UNIQUE
);

Вставка данных

INSERT INTO Employees (FirstName, LastName, BirthDate, Salary, Email)
VALUES ('Alice', 'Green', '1985-05-15', 55000.00, 'alice.green@example.com'),
       ('Bob', 'Smith', '1990-08-22', 60000.00, 'bob.smith@example.com'),
       ('Charlie', 'Johnson', '1988-02-10', 52000.00, 'charlie.johnson@example.com'),
       ('Diana', 'Williams', '1992-11-01', 58000.00, 'diana.williams@example.com'),
       ('Edward', 'Brown', '1987-09-30', 61000.00, 'edward.brown@example.com');

Попытка вставить данные с нарушением ограничений

-- Ошибка: дублирующий Email
INSERT INTO Employees (FirstName, LastName, Salary, Email)
VALUES ('Frank', 'White', 50000.00, 'alice.green@example.com');

-- Ошибка: Salary не проходит CHECK
INSERT INTO Employees (FirstName, LastName, Salary, Email)
VALUES ('Grace', 'Black', -1000.00, 'grace.black@example.com');

-- Ошибка: NOT NULL на FirstName
INSERT INTO Employees (LastName, Salary, Email)
VALUES ('Gray', 50000.00, 'gray@example.com');

Копирование таблицы

CREATE TABLE Employees_short AS
SELECT * FROM Employees
LIMIT 2;

Обновление данных

-- Обновить зарплату одного сотрудника
UPDATE Employees
SET Salary = 65000
WHERE EmployeeID = 1;

-- Увеличить зарплату сотрудников, нанятых с 2024 года, на 10%
UPDATE Employees
SET Salary = Salary * 1.10
WHERE HireDate >= '2024-01-01';

Проверка созданной таблицы

DESCRIBE Employees;
SELECT * FROM Employees;