Skip to content
GitHub

SQL: Data Definition Language (DDL) and Constraints

Data Definition Language (DDL) and Constraints

Section titled “Data Definition Language (DDL) and Constraints”

DDL ဆိုတာက database object တွေဖြစ်တဲ့ table၊ database တွေကို တည်ဆောက်ခြင်း၊ ပြင်ဆင်ခြင်း၊ ဖျက်သိမ်းခြင်းတို့အတွက် အသုံးပြုတဲ့ SQL command တွေ ဖြစ်ပါတယ်။ ဒါ့အပြင် data တွေရဲ့ မှန်ကန်တိကျမှုကို အာမခံဖို့အတွက် constraints (ကန့်သတ်ချက်များ) သတ်မှတ်ပုံကိုလည်း လေ့လာသွားပါမယ်။

CREATE statement ကို database object အသစ်များဖြစ်တဲ့ database, table, view, နှင့် index တို့ကို အစမှစ၍ (from scratch) တည်ဆောက်ရန် အသုံးပြုပါတယ်။

Database အသစ်ဆောက်ခြင်း

Section titled “Database အသစ်ဆောက်ခြင်း”

CREATE DATABASE - table, view နှင့် အခြား object တွေထည့်ဖို့အတွက် container တစ်လုံးလိုဖြစ်တဲ့ database အလွတ်တစ်ခုကို ဖန်တီးပေးပါတယ်။

CREATE DATABASE University;

Table အသစ်ဆောက်ခြင်း

Section titled “Table အသစ်ဆောက်ခြင်း”

CREATE TABLE - table အသစ်တစ်ခုနှင့် column တွေကို သတ်မှတ်ဖို့အတွက် အခြေခံအကျဆုံး DDL command ဖြစ်ပါတယ်။ table တစ်ခုတည်ဆောက်တဲ့အခါ column တစ်ခုချင်းစီရဲ့ နာမည်နှင့် data အမျိုးအစား (data type) ကိုအတိအကျ သတ်မှတ်ပေးရပါမယ်။

အသုံးများသော Data အမျိုးအစားများ

Section titled “အသုံးများသော Data အမျိုးအစားများ”

အောက်ပါ data အမျိုးအစားတွေကို ယခင် module မှာအသေးစိတ် လေ့လာနိုင်ပါတယ်။

Data Typeရှင်းလင်းချက်ဥပမာ
INT or INTEGERကိန်းပြည့်များ။101
VARCHAR(n)n အရေအတွက်အထိရှိနိုင်တဲ့ စာသားများ။VARCHAR(50) for a name
DECIMAL(p, s)ငွေကြေးအတွက် အထူးသင့်တော်တဲ့ ကိန်းသေဒဿမကိန်း။ p=စုစုပေါင်းဂဏန်း, s=ဒဿမနောက်ကဂဏန်း။DECIMAL(10, 2) for $99999999.99
DATEနေ့စွဲ (YYYY-MM-DD) ကို သိမ်းဆည်းရန်။‘2025-07-25’
TIMESTAMPနေ့စွဲနှင့် အချိန်ကို သိမ်းဆည်းရန်။‘2025-07-25 17:01:42’
BOOLEANTRUE သို့မဟုတ် FALSE တန်ဖိုး သိမ်းဆည်းရန်။TRUE

Constraints ဆိုတာက data တွေရဲ့ တိကျမှန်ကန်မှုကို အာမခံဖို့အတွက် column တွေအပေါ် သတ်မှတ်ထားတဲ့ စည်းမျဉ်းတွေဖြစ်ပါတယ်။

Constraintရှင်းလင်းချက်
NOT NULLColumn တစ်ခုမှာ NULL ဖြစ်နေလို့မရအောင် ကန့်သတ်ပေးပါတယ်။
UNIQUEColumn တစ်ခုထဲက တန်ဖိုးအားလုံး တစ်ခုနှင့်တစ်ခု မတူညီစေရန် (unique ဖြစ်စေရန်) အာမခံပေးပါတယ်။
PRIMARY KEYTable တစ်ခုထဲက record တစ်ခုချင်းစီကို တိတိကျကျခွဲခြားနိုင်ရန်အတွက် အဓိကအသုံးပြုသော key ဖြစ်ပါတယ်။ Table တစ်ခုမှာ Primary Key တစ်ခုပဲ ရှိနိုင်ပါတယ်။
FOREIGN KEYတခြား table တစ်ခုရဲ့ PRIMARY KEY ကို ရည်ညွှန်း(refer)ခြင်းဖြင့် table နှစ်ခုအကြား ဆက်စပ်မှု (relationship) ကို တည်ဆောက်ပေးပါတယ်။
CHECKColumn ထဲက တန်ဖိုးအားလုံးက သတ်မှတ်ထားတဲ့ အခြေအနေ (condition) တစ်ခုဖြင့် ကိုက်ညီအောင် စစ်ဆေးပေးပါတယ်။
DEFAULTRecord အသစ်ထည့်သွင်းရာမှာ တန်ဖိုးသတ်မှတ်မပေးပါက အလိုအလျောက်ထည့်သွင်းပေးမယ့် တန်ဖိုးဖြစ်ပါတယ်။

ဥပမာ - Data type တွေ၊ constraint တွေပါတဲ့ Students table တစ်ခု တည်ဆောက်ကြည့်ရအောင်။

CREATE TABLE Students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Email VARCHAR(100) UNIQUE NOT NULL,
EnrollmentDate DATE DEFAULT CURRENT_DATE,
GPA DECIMAL(3, 2) CHECK (GPA >= 0.0 AND GPA <= 4.0)
);

Table တစ်ခုကို တည်ဆောက်ပြီးနောက် ပြင်ဆင်လိုပါက ဖျက်ပြီးပြန်ဆောက်စရာမလိုပါဘူး။ ရှိပြီးသား table တစ်ခုရဲ့ တည်ဆောက်ပုံကို ALTER TABLE statement ဖြင့် ပြင်ဆင်နိုင်ပါတယ်။

Column အသစ်ထည့်ခြင်း

Section titled “Column အသစ်ထည့်ခြင်း”
ALTER TABLE Students
ADD COLUMN Major VARCHAR(50);

Column တစ်ခုကို ဖျက်ခြင်း

Section titled “Column တစ်ခုကို ဖျက်ခြင်း”
ALTER TABLE Students
DROP COLUMN Major;

Column တစ်ခုရဲ့ Data Type ကို ပြင်ဆင်ခြင်း

Section titled “Column တစ်ခုရဲ့ Data Type ကို ပြင်ဆင်ခြင်း”

(မှတ်ချက် - SQL dialect များပေါ်မူတည်၍ syntax အနည်းငယ်ကွာခြားနိုင်ပါတယ်။ ဥပမာ- MODIFY COLUMN vs ALTER COLUMN)

-- LastName column ရဲ့ length ကို တိုးကြည့်ရအောင်။
ALTER TABLE Students
MODIFY COLUMN LastName VARCHAR(75);

Drop command ကို Database object တစ်ခုလုံးအား ၎င်းရဲ့ တည်ဆောက်ပုံ၊ အတွင်းရှိ data အားလုံး နှင့် သက်ဆိုင်ရာ index များ၊ constraint များ အပါအဝင် အပြီးတိုင် ဖျက်သိမ်းရန် အသုံးပြုပါတယ်။

Table တစ်ခုကို ဖျက်သိမ်းခြင်း

Section titled “Table တစ်ခုကို ဖျက်သိမ်းခြင်း”
DROP TABLE Students;

Database တစ်ခုကို ဖျက်သိမ်းခြင်း

Section titled “Database တစ်ခုကို ဖျက်သိမ်းခြင်း”
DROP DATABASE University;