தொகுதி பாடங்கள் (3/4)
அட்டவணைகள் மற்றும் கட்டுப்பாடுகளை உருவாக்குதல்: DDL
இதுவரை நீங்கள் ஏற்கனவே இருக்கும் (customers,
orders…). DDL ("தரவு வரையறை மொழி") என்பது அறிக்கைகளைக் குறிக்கிறது
** ஸ்கீமாவை உருவாக்கி மாற்றவும்**: அட்டவணைகள், நெடுவரிசைகள், கட்டுப்பாடுகள்,
குறியீடுகள்.
அட்டவணையை உருவாக்கவும்: தொடரியல்
CREATE TABLE nome_tabella (
colonna TIPO [vincoli_colonna],
…,
[vincoli_tabella]
);எடுத்துக்காட்டு: வாடிக்கையாளர்களையும் தயாரிப்புகளையும் இணைக்கும் விருப்பப்பட்டியல்:
CREATE TABLE wishlists (
id SERIAL PRIMARY KEY,
customer_id INTEGER NOT NULL REFERENCES customers(id),
product_id INTEGER NOT NULL REFERENCES products(id),
added_on DATE NOT NULL DEFAULT CURRENT_DATE,
note TEXT,
UNIQUE (customer_id, product_id)
);துண்டு துண்டாக உடைப்போம்.
மிகவும் பொதுவான வகைகள்
| வகை | அது என்ன வைத்திருக்கிறது |
|---|---|
INTEGER / INT | முழு எண்கள் (-2.1B … +2.1B) |
BIGINT | பெரிய முழு எண்கள் |
NUMERIC(p, s) | சரியான தசமங்கள் — பணம், சதவீதங்கள் |
TEXT | மாறி-நீள சரங்கள் |
VARCHAR(n) | அதிகபட்ச நீளம் n |
BOOLEAN | TRUE / FALSE / NULL |
DATE | தேதி மட்டும் |
TIMESTAMP | தேதி + நேரம் (நேர மண்டலம் இல்லை) |
TIMESTAMPTZ | நேர மண்டலத்துடன் தேதி + நேரம் |
SERIAL | தானாக அதிகரிக்கும் வரிசையுடன் INTEGER |
கட்டுப்பாடுகள்
ஒரு கட்டுப்பாடு என்பது PostgreSQL தானாக செயல்படுத்தும் ஒரு விதி: என்றால்
INSERT/UPDATE அதை மீறுகிறது, செயல்பாடு தோல்வியடைகிறது.
PRIMARY KEY -- identifica univocamente la riga, non NULL
NOT NULL -- vieta NULL
UNIQUE -- vieta duplicati su questa colonna
REFERENCES tabella(colonna) -- foreign key
CHECK (espressione_booleana) -- es. CHECK (price > 0)
DEFAULT espressione -- valore di default se non fornitoகட்டுப்பாடுகளை ஒரு நெடுவரிசையில் இன்லைன் அல்லது அட்டவணை நிலை என அறிவிக்கலாம்
கட்டுப்பாடுகள் (புலங்களுக்கு கீழே). ஒரு கலவையின் எடுத்துக்காட்டு UNIQUE:
UNIQUE (customer_id, product_id) -- niente coppia (cliente, prodotto) duplicataதடையைச் சரிபார்க்கவும்
CHECK தனிப்பயன் விதியைச் செயல்படுத்துகிறது:
CREATE TABLE stock_alerts (
product_id INTEGER PRIMARY KEY REFERENCES products(id),
threshold INTEGER NOT NULL CHECK (threshold >= 0),
notify_email TEXT NOT NULL,
active BOOLEAN NOT NULL DEFAULT true
);threshold ≥ 0 ஆக இருக்க வேண்டும்; யாராவது INSERT … threshold = -5 ஐ முயற்சித்தால், அது
ஒரு கட்டுப்பாட்டுப் பிழையுடன் தோல்வியடைகிறது.
கைவிடுதல் மற்றும் மாற்றுதல்
DROP TABLE wishlists; -- elimina la tabella (e i dati!)
DROP TABLE IF EXISTS wishlists; -- senza errore se non esiste
ALTER TABLE customers ADD COLUMN newsletter BOOLEAN NOT NULL DEFAULT false;
ALTER TABLE customers DROP COLUMN newsletter;உங்கள் முறை
பின்வரும் நெடுவரிசைகளுடன் விருப்பப்பட்டியல் அட்டவணையை உருவாக்கவும்: ஐடி (சீரியல் பிரைமரி கீ), customer_id (INTEGER NULL குறிப்புகள் இல்லை வாடிக்கையாளர்கள்(id)), product_id (INTEGER NULL குறிப்புகள் அல்ல (id)), added_on (DATE NUT NULL உடன் DEFAULT CURRENT_DATE). ஜோடியில் ஒரு தனித்துவமான தடையைச் சேர்க்கவும் (customer_id, product_id).
குறிப்பைக் காட்டு
UNIQUE (வாடிக்கையாளர்_ஐடி, தயாரிப்பு_ஐடி) கீழே உள்ள அட்டவணை-நிலை தடையாக உள்ளது.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
பூலியன் வகையின் செய்திமடல் நெடுவரிசையை வாடிக்கையாளர்கள் அட்டவணையில் சேர்க்கவும், பூஜ்யம் அல்ல, இயல்புநிலை தவறு. ஒற்றை ALTER TABLE அறிக்கையைப் பயன்படுத்தவும்.
குறிப்பைக் காட்டு
இயல்புநிலை இல்லாமல், ALTER தோல்வியடையும், ஏனெனில் வரிசைகள் ஏற்கனவே உள்ளன மற்றும் புதிய நெடுவரிசை பூஜ்யமாக இல்லை.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்