Мазмунга өтүү

Чектөөлөр жана маалымат бүтүндүгү

Сабактын башталышы

Чектөөлөр жана маалымат бүтүндүгү

Жаман маалымат эч качан кире албашы үчүн базанын өзү сактай турган эрежелер

Негизги идея: Чектөө (constraint) - бул таблицага тиркелген эреже, ага ар бир сап баш ийиши керек. База аны ар бир INSERT жана UPDATE учурунда текшерет жана аны бузган нерсенин баарын четке кагат. Тиркеменин кодуна ишенүүнүн ордуна, кепилдикти схеманын өзүнө түшүрөсүз, ал жерде ал бардык кардарлар, скрипттер жана кол менен түзөтүүлөр үчүн иштейт.
Аягында сиз төмөнкүлөрдү жасай аласыз:
  • NOT NULL аркылуу калтырылган маанилерге тыюу салуу,
  • UNIQUE аркылуу кайталанууларга тыюу салуу,
  • CHECK аркылуу бизнес-эрежелерди коюу,
  • DEFAULT аркылуу акылга сыярлык демейки маанилерди коюу,
  • FOREIGN KEY жана анын ON DELETE / ON UPDATE аракеттери менен таблицаларды шайкештирүү.

1. Биздин үлгү схема: кичине дүкөн

Төмөндөгү ар бир бөлүм бир эле кичинекей онлайн-дүкөн базасына кайрылат. categories таблицасы товарларды топтойт, products товарларды сактайт, customers - сатып алуучуларды, ал эми orders сатып алууларды жазат. Аларды бир жолу түзөлү:

CREATE TABLE categories (
    category_id INT PRIMARY KEY,
    name        VARCHAR(50) NOT NULL UNIQUE
);

CREATE TABLE products (
    product_id  INT PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    price       DECIMAL(8,2) NOT NULL CHECK (price > 0),
    stock       INT NOT NULL DEFAULT 0 CHECK (stock >= 0),
    category_id INT,
    CONSTRAINT fk_cat FOREIGN KEY (category_id)
        REFERENCES categories(category_id)
        ON DELETE SET NULL ON UPDATE CASCADE
);

CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    email       VARCHAR(120) NOT NULL UNIQUE,
    country     CHAR(2) NOT NULL DEFAULT 'US'
);

CREATE TABLE orders (
    order_id    INT PRIMARY KEY,
    customer_id INT NOT NULL,
    total       DECIMAL(10,2) NOT NULL DEFAULT 0,
    CONSTRAINT fk_cust FOREIGN KEY (customer_id)
        REFERENCES customers(customer_id)
        ON DELETE CASCADE ON UPDATE CASCADE
);

Ушул бир CREATE TABLE блогу биз изилдей турган бардык чектөө түрлөрүн колдонот: PRIMARY KEY, NOT NULL, UNIQUE, CHECK, DEFAULT жана FOREIGN KEY. Аларды бирден карайлы.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө