Ma'lumotlar bazasi loyihasini to'g'ri tuzish β har qanday dastur uchun asos.
Ma'lumot turlari
-- Sonlar
INT, BIGINT, SMALLINT -- butun sonlar
DECIMAL(10, 2), NUMERIC -- aniq sonlar
FLOAT, REAL, DOUBLE -- haqiqiy sonlar
-- Matn
VARCHAR(255) -- o'zgaruvchan uzunlik
CHAR(10) -- qat'iy uzunlik
TEXT -- cheklanmagan matn
-- Vaqt
DATE -- 2026-06-16
TIME -- 14:30:00
TIMESTAMP -- 2026-06-16 14:30:00
TIMESTAMPTZ -- vaqt mintaqasi bilan
-- Boshqa
BOOLEAN -- TRUE/FALSE
UUID -- universally unique id
JSON, JSONB -- JSON ma'lumot
CREATE TABLE
CREATE TABLE talabalar (
id BIGSERIAL PRIMARY KEY,
ism VARCHAR(100) NOT NULL,
familya VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
telefon VARCHAR(20),
tug'ilgan DATE,
yosh INT CHECK (yosh >= 14 AND yosh <= 100),
shahar VARCHAR(50) DEFAULT 'Toshkent',
kurs_id INT REFERENCES kurslar(id) ON DELETE SET NULL,
faol BOOLEAN DEFAULT TRUE,
yaratildi TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
yangilandi TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE β jadvalni o'zgartirish
-- Ustun qo'shish
ALTER TABLE talabalar ADD COLUMN manzil TEXT;
-- Ustun o'chirish
ALTER TABLE talabalar DROP COLUMN manzil;
-- Ustun turini o'zgartirish
ALTER TABLE talabalar ALTER COLUMN telefon TYPE VARCHAR(30);
-- NOT NULL qo'shish
ALTER TABLE talabalar ALTER COLUMN email SET NOT NULL;
-- Default qiymat
ALTER TABLE talabalar ALTER COLUMN shahar SET DEFAULT 'Toshkent';
Cheklovlar (Constraints)
-- Cheklov qo'shish
ALTER TABLE talabalar
ADD CONSTRAINT chk_yosh CHECK (yosh BETWEEN 14 AND 100);
ALTER TABLE talabalar
ADD CONSTRAINT fk_kurs FOREIGN KEY (kurs_id)
REFERENCES kurslar(id) ON DELETE CASCADE;
Jadval nusxasi
-- Tuzilmani nusxalash
CREATE TABLE talabalar_arxiv AS
SELECT * FROM talabalar WHERE FALSE;
-- Tuzilma va ma'lumotlarni nusxalash
CREATE TABLE talabalar_backup AS
SELECT * FROM talabalar;