M a’lumotlar bazasini yaratish:
CR E A T E TABLE
operatori
C R E A T E TA BLE operatori joriy m a ’lumotlar bazasida berilgan
n om bilan jadval yaratadi. Agar m a ’lumotlar bazasi aktivlashm agan
bo ‘lsa yoki berilgan jadval nom i mavjud bo'lsa, buyruqni bajarishda
xatolik haqida ogohlantiradi.
Sintaksisi:
C R E A T E [T E M P O R A R Y ] TA BLE [IF N O T EXISTS]
jadval nom i [(ustunlarni aniqlash,...)]
[jadval opsiyasi] [select ifoda]
M ySQ L 3.22 va u n d a n keyingi versiyalarida jadval nom ini
m a ’lum otlar_bazasi_nom i.jadval_nom i kabi ko‘rsatadi. Yozuvning
bu ko‘rinishi ko'rsatilgan m a iu m o tla r bazasi joriy yoki joriymasli-
giga bog‘liq emas.
M ySQL 3.23-versiyasida vaqtinchalik jadval yaratish uchun
T E M P O R A R Y kalit so'zi ishlatiladi. Vaqtinchalik jadval bog'lanish
y akunlanganda avtomatik tarzda o'chiriladi, uning nom i esa beril
gan bog'lanish davomida haqiqiy hisoblanadi. Bu shuni anglatadiki,
ikkita turli bog'lanishda mavjud jadval xuddi shunday nom li jadval
bilan yoki bir xil nomli vaqtinchalik jadvallar bir-biri bilan konf-
liktsiz ishlatilishi m u m k in (yoki mavjud jadval vaqtinchalik j a d
val o'chirilguncha yashirin bo'lib turadi). M ySQL 4.0.2-versiyasida
vaqtinchalik jadvallarni yaratish uchun C R E A T E T E M P O R A R Y
TABLES vakolatiga ega bo'lish zarur.
M ySQ L 3.23 va und a n keyingi versiyalarida ko'rsatilgan jadval
mavjud bo'lsa, xato bermasligi uchun IF N O T EX ISTS kalit so'zi
ishlatiladi. Bu holda jadval strukturalarining bir xilligi tekshirilm ay-
di.
H a r bir jadval m a ’lumotlar bazasi katalogida aniqlangan fayllar
to 'plam i singari tasvirlanadi.
u s tu n la rni_ a n iq la sh
parametri
jadvalda
qanday
ustun-
lar bo'lishi kerakligini belgilaydi. Jadvalning h ar bir ustuni bo'sh
b o iis h i ( N U L L ), odatga ko'ra qiymatga ega bo'lishi, kalitli yoki
a v to in k r e m e n t( A U T O _ lN C R E M E N T ) bo'lishi m u m k in . Bundan
tashqari, h ar bir ustun uchun unda saqlanadigan m a ’lumotlar tipini
ko'rsatish kerak. Agar N U L L ham , N O T N U L L h am ko'rsatilmasa,
u holda ustun N U L L ko'rsatilgandek, interpretatsiya qilinadi.
Agar maydon avtoinkrem ent sifatida belgilansa, u holda jadvalga
m a ’lumot kiritilganda va bu niaydonga bo'sh qiymat ( N U L L , yoki
hech narsa yozilmaganda) yoki 0 kiritilganda u n in g qiymati h ar gal
1 ta qiymatga oshiriladi. Jadvalda avtoinkrement maydon faqatgina
bitta bo'lishi m u m k in , shuning uchun uni indekslash shart emas.
A vtoinkrem ent ketma-ketligi 1 dan boshlanadi.
Qoidaga ko'ra ustun lar quyidagicha beriladi (ustu n larn i_ an iq -
lash):
u s tu n _ n o m i tipi [N O T N U L L | N U L L ]
[ D E F A U L T odatga ko'ra qiymati]
[ A U T O I N C R E M EN T ] [P R IM A R Y KEY]
[reference_definition]
Ustun tipi (ustunlarni aniqlash p a ra m etrin in g ustun nom i tipi)
quyidagilardan birortasini qabul qilishi m u m k in :
• butun: INT[(length)] [ U N S I G N E D ) [ZEROF1LL]
• haqiqiy: REAL[(length,decimals)] [ U N S IG N E D ] [Z E R O -
FILL]
• belgili: C H A R (length ) [BINARY] va VA R C H A R (length) [BI
NARY]
• katta obyektlar bilan ishlash uchun: BLOB
• matnli: T E X T
• sana va vaqt: DATE va T I M E
Maydon (ustun) uzunligi kiritilayotgan qiymatda jam i nechta
raqam (belgi) qatnashishi kerakligini aniqlaydi. dec qatnashgan may-
donlarda esa bu o ‘nlik kasrlarda n u q tad a n so‘ng, ya’ni kasr qismi
nechta raqam dan iborat bo‘lishi kerakligini bildiradi. Bu sonlar faqat
gina u stu n n in g maksimal uzunligini hisoblash uchun ishlatiladi.
ustu n la rn i aniqlashda ustu n la r soni va tipi bilan birga chegara-
lash va tekshirish uchun kalitli va indeksli u s tu n la r ro‘yxatini ham
berish m um k in :
P R IM A R Y KEY ( i n d e k s l a n g a n u s t u n n o m i , ...)
yoki
K E Y [indeks nomi] (indekslangan u stun nomi,...)
yoki
I N D E X [indeks nomi] (indekslangan u stu n nomi,...)
yoki
U N I Q U E
[IN D E X ]
[ in d e k s n o m i ]
(in d e k slangan_ustun_
nomi,...)
yoki
F U L L T E X T [IN D E X ] [indeks_nomi] (in d e kslangan_ustun_
nomi,...)
yoki
[ C O N S T R A I N T symbol]
F O R E I G N K E Y [indeks nomi] (indekslangan ustun nomi,...)
[reference_definition]
yoki
C H E C K (expr)
F O R E I G N KEY, C H E C K va R E F E R E N C E S lar ayni vaqtda
M ySQLda hech qanday vazifani bajarmaydi. U lar boshqa SQ L-
serverlar bilan ham korlik qilish uchun qo‘shilgan. Shuning uchun
ularga to ‘xtalmaymiz.
Ko‘p hollarda ustunga kiritilgan qiymatlar bir-biridan farq qilishi
m um kin . Agar ustun uchun U N I Q U E cheklanish o'rnatilsa, bu u s
tunga mavjud qiymatni kiritishga urinish rad etiladi. Bu cheklanish
bo ‘sh emas ( N O T N U L L ) deb e ’lon qilingan ustunlarga q o ‘llanishi
m um kin .
Masalan,
Do'stlaringiz bilan baham: |