TGViewer
Backend Backend @easy_backend · 3.74K subscribers
Post #1621 309
🤔 Какие бывают ограничения в Базе Данных?

Это правила, которые применяются к данным в таблице для обеспечения точности и целостности данных. Эти ограничения помогают управлять данными и предотвращать вставку или обновление неверных данных. Вот основные типы ограничений:

🟠NOT NULL
Обеспечивает, что столбец не может содержать NULL значения. Это ограничение гарантирует, что данные всегда будут присутствовать в этом столбце.
CREATE TABLE employees (
emp_id INT,
name VARCHAR(100) NOT NULL
);


🟠UNIQUE
Обеспечивает, что все значения в столбце или группе столбцов уникальны. Это ограничение предотвращает дублирование данных.
CREATE TABLE employees (
emp_id INT UNIQUE,
email VARCHAR(100) UNIQUE
);


🟠PRIMARY KEY
Сочетает в себе ограничения NOT NULL и UNIQUE. Обеспечивает уникальную идентификацию каждой строки в таблице. В таблице может быть только один первичный ключ.
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);


🟠FOREIGN KEY
Обеспечивает ссылочную целостность между таблицами. Столбец с внешним ключом (или группа столбцов) ссылается на первичный ключ или уникальный ключ в другой таблице.
CREATE TABLE departments (
dept_id INT PRIMARY KEY,
dept_name VARCHAR(100)
);

CREATE TABLE employees (
emp_id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
dept_id INT,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);


🟠CHECK
Обеспечивает, что значения в столбце соответствуют заданному условию. Это ограничение проверяет данные при вставке или обновлении.
CREATE TABLE employees (
emp_id INT,
name VARCHAR(100),
salary DECIMAL(10, 2),
CHECK (salary > 0)
);


🟠DEFAULT
Устанавливает значение по умолчанию для столбца, если при вставке строки значение для этого столбца не указано.
CREATE TABLE employees (
emp_id INT,
name VARCHAR(100),
hire_date DATE DEFAULT CURRENT_DATE
);


🟠INDEX
Создает индекс на один или несколько столбцов таблицы для ускорения поиска данных. Хотя индекс не является ограничением в строгом смысле, он помогает оптимизировать запросы к базе данных.
CREATE INDEX idx_name ON employees(name);


Пример создания таблицы с различными ограничениями
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
dept_id INT,
salary DECIMAL(10, 2) CHECK (salary > 0),
hire_date DATE DEFAULT CURRENT_DATE,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_backend
  1. Oct 4, 2026🤔 Каким образом можно найти "медленный запрос" и проанализировать его в PostgreSQL? 🚩Мет…
  2. Oct 2, 2026🤔 Какие join бывают? В реляционных базах данных, операции объединения (JOIN) позволяют об…
  3. Sep 28, 2026🤔 Что такое CGI? Это стандартный протокол для веб-серверов, который позволяет запускать в…
  4. Sep 27, 2026🤔 Примеры систем CP, AP и CA? В контексте CAP-теоремы(Consistency, Availability, Partitio…
  5. Sep 26, 2026🤔 Что такое инкапсуляция? Это один из основных принципов объектно-ориентированного програ…
  6. Sep 25, 2026🤔 Что такое Docker Compose? Это инструмент, который позволяет определить и управлять мног…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →