M EN GELOLA TABEL
M EM BUAT TABEL
Unt uk m em buat sebuah t abel dalam MySQL, Anda harus m enggunakan pernyat aan CREATE TABLE unt uk m endefinisikan kolom - kolom dalam t abel dan m engkonfigurasi bat asan- bat asan yang sesuai dalam t abel t ersebut . Pernyat aan CREATE TABLE adalah salah sat u pernyat aan SQL yang paling kom pleks dalam MySQL. Dia berisi kom ponen- kom ponen yang banyak dan m enyediakan banyak pilihan unt uk m enent ukan sifat yang sebenarnya dari suat u t abel t ert ent u. Sint aks berikut m erepresent asikan elem en- elem en yang daat digunakan dalam m em bangun pernyat aan CREATE TABLE:
<d e finisi ta b e l>::=
C REATE [TEMPO RARY] TABLE [IF NO T EXISTS] <na m a ta b e l> (<e le m e n ta b e l> [{, < e le m e n ta b e l >}...])
[<o p si ta b e l> [<o p si ta b e l >...]] <e le m e n ta b e l>::=
<d e finisi ko lo m >
| {[C O NSTRAINT <na m a c o nstra int>] PRIMARY KEY (<na m a ko lo m > [{, < na m a ko lo m >}...])}
| {[C O NSTRAINT < na m a c o nstra int >] FO REIG N KEY [<na m a ind e ks>] (<na m a ko lo m > [{, < na m a ko lo m >}...]) <d e finisi re fe re nsi>}
| {[C O NSTRAINT < na m a c o nstra int >] UNIQ UE [INDEX] [<na m a ind e ks>] (<na m a ko lo m > [{, < na m a ko lo m >}...])}
| {{INDEX | KEY} [<na m a ind e ks>] (<na m a ko lo m > [{, < na m a ko lo m >}...])} | {FULLTEXT [INDEX] [<na m a ind e ks >] (<na m a ko lo m > [{, < na m a ko lo m >}...])} <d e finisi ko lo m >::=
<na m a ko lo m > <typ e > [NO T NULL | NULL] [DEFAULT <va lue >] [AUTO _INC REMENT] [PRIMARY KEY] [C O MMENT ‘ <string >’ ] [<d e finisi re fe re nsi >]
<typ e >::=
<tip e d a ta num e rik> | <tip e d a ta string >
| <tip e d a ta ta ng g a l/ w a ktu> <d e finisi re fe re nsi>::=
REFERENC ES <na m a ta b e l> [(<na m a ko lo m > [{, < na m a ko lo m >}...])] [O N DELETE {RESTRIC T | C ASC ADE | SET NULL | NO AC TIO N | SET DEFAULT }] [O N UPDATE {RESTRIC T | C ASC ADE | SET NULL | NO AC TIO N | SET DEFAULT }] [MATC H FULL | MATC H PARTIAL]
<o p si ta b e l>::=
{ENG INE = {BDB | MEMO RY | ISAM | INNO DB | MERG E | MYISAM}} | <o p si ta b e l ta m b a ha n>
Sebagaim ana Anda lihat , banyak elem en unt uk m em buat pernyat aan CREATE TABLE. Dalam kenyat aanya, sint aks yang nam pak di sini t idak seluruhnya dipakai unt uk m em buat pernyat aan CREATE TABLE.
Sekarang kit a lihat lebih dekat pernyat aan CREATE TABEL berikut :
<ta b le d e finitio n>::=
C REATE [TEMPO RARY] TABLE [IF NO T EXISTS] <ta b le na m e > (<ta b le e le m e nt> [{, <ta b le e le m e nt>}...])
[<ta b le o p tio n> [<ta b le o p tio n>...]]
Baris pert am a dari per nyat aan hanya m em erlukan kat a kunci CREATE TABLE diikut i oleh nam a dari t abel baru. Baris ini j uga berisi dua kom ponen pilihan. Pert am a- TEMPORARY- m enandakan bahwa ini adalah t abel t em porer yang digunakan hanya selam a sesi t erkini oleh pengguna t erkini. Sebuah t abel t em porer ada hanya selam a sesi sedang t erbuka at au t abel secara eksplisit t erhapus. Pilihan kedua adalah klausa I F NOT EXI STS. Klausa ini sam a dengan klausa sebelum nya yang pernah Anda lihat dalam pernyat aan CREATE DATABASE.
Elem en t abel adalah obyek individu yang didefinisikan dalam sebuah t abel, m isal kolom at au bat asan PRI MARY KEY. Set iap pernyat aan CREATE TABLE m enyert akan sat u at au lebih elem en t abel. Jik a t erdapat lebih ddari sat u elem en t abel, m ereka
Diktat Laboratorium Sistem Basis Data – MySQL
De p a rtm e nt o f Info rm a tic s Eng ine e ring – UNIKO M G a lih He rm a w a n, S.Ko m
31
dipisahkan dengan m enggunakan t anda kom a. Berapapun j um lah elem en t abel yang ada, m ereka sem ua dit ut up dalam sebuah kum pulan t anda kurung.
Unt uk baris t erakhir m engij inkan Anda unt uk m endefinisikan opsi- opsi t abel secar a individual. Opsi t abel adalah opsi yang dit erapkan pada keseluruhan t abel. Misal, Anda dapat m endefinisikan t ipe t abel yang ingin Anda buat . Sem ua opsi t abel adalah opsional; bagaianapun, Anda dapat m enent ukannya sebanyak yang Anda perlukan. Unt uk m em buat t abel secara m inim al, sint aksnya adalah sebagai berikut :
C REATE TABLE <na m a ta b e l> (<e le m e n ta b e l>)
Karena elem en t abel m em er lukan kom ponen, lihat pada sint aks berikut :
<e le m e n ta b e l>::= <d e finisi ko lo m >
| {[C O NSTRAINT <na m a c o nstra int>] PRIMARY KEY (<na m a ko lo m > [{, < na m a ko lo m >}...])}
| {[C O NSTRAINT < na m a c o nstra int >] FO REIG N KEY [<na m a ind e ks>] (<na m a ko lo m > [{, < na m a ko lo m >}...]) <d e finisi re fe re nsi>}
| {[C O NSTRAINT < na m a c o nstra int >] UNIQ UE [INDEX] [<na m a ind e ks>] (<na m a ko lo m > [{, < na m a ko lo m >}...])}
| {{INDEX | KEY} [<na m a ind e ks>] (<na m a ko lo m > [{, < na m a ko lo m >}...])} | {FULLTEXT [INDEX] [<na m a ind e ks >] (<na m a ko lo m > [{, < na m a ko lo m >}...])}
Elem en t abel dapat m erepresent asikan sat u at au lebih opsi- opsi yang berbeda. Yang paling um um digunakan adalah opsi yang direpresent asikan dalam < definisi kolom > , dim ana m engij inkan Anda unt uk m endefinisikan kolom yang disert akan dalam definisi t abel Anda.
M e m bu a t D e fin isi Kolom
Definisi kolom adalah salah sat u t ipe elem en t abel yang dapat Anda definisikan dalam definisi t abel. Anda harus m em buat definisi kolom unt uk set iap kolom yang ingin anda sert akan dalam t abel Anda. Sint aks berikut ini m enyediakan pada Anda dengan st rukt ur yang sebaiknya Anda gunakan ket ika m em buat definisi kolom :
<d e finisi ko lo m >::=
<na m a ko lo m > <typ e > [NO T NULL | NULL] [DEFAULT <va lue >] [AUTO _INC REMENT] [PRIMARY KEY] [C O MMENT ‘ <string >’ ] [<d e finisi re fe re nsi >]
Sebagaim ana Anda lihat , hanya t erdapat dua elem en yang diperlukan dalam sebah definisi kolom : nam a kolom ( direpresent asikan dengan < nam a kolom > ) dan t ipe dat a ( direpr esent asikan dengan < t ype> ) . Nam a dapat berupa indent ifier yang dapat dit erim a dalam MySQL, dan dat abase dapat berupa t ipe- t ipe dat a yang didukung. Set iap elem en t am bahan dari definisi kolom adalah opsional.
M e n de fin isik a n Tipe D a t a
MySQL m endukung t iga kat egori dari t ipe dat a, sebagaim ana direpresent asikan dalam sint aks berikut :
<typ e >::=
<tip e d a ta num e rik> | <tip e d a ta string >
| <tip e d a ta ta ng g a l/ w a ktu>
Kapanpun Anda m enam bahkan sebuah kolom ke t abel Anda, Anda harus m endefinisikan kolom dengan t ipe dat a yang t erdapat dalam salah sat u dari t iga kat egori ini. Masing- m asing kat egori m em iliki karakt erist ik sendiri- sendiri.
Tipe D a t a N u m e r ik
Tipe dat a ini berhubungan dengan dat a angka.
Anda dapat m em bagi t ipe dat a num erik dalam dua kat egori, sebagaim ana dalam sint aks berikut :
<tip e d a ta num e rik>::=
<tip e d a ta inte g e r> [(<p a nja ng >)] [UNSIG NED] [ZERO FILL]
| <tip e d a ta fra ksio na l> [(<p a nja ng >, <d e sim a l>)] [UNSIG NED] [ZERO FILL]
Unt uk elem en < panj ang> , m engindikasikan j um lah m aksim um dari karakt er yang dit am pilkan unt uk kolom t ert ent u. Anda dapat m enspesifikasikan panj ang dengan
Diktat Laboratorium Sistem Basis Data – MySQL
De p a rtm e nt o f Info rm a tic s Eng ine e ring – UNIKO M G a lih He rm a w a n, S.Ko m
32
angka m ulai dari 1 sam pai 255. Tipe dat a fraksional j uga m enyert akan elem en < desim al> . Nilai di dalam nya m enandakan j um lah desim al yang dit am pilkan unt uk sebuah nilai dalam kolom t ert ent u. Anda dapat m enspesifikasikan j um lah desim al m ulai dar i 0 sam pai 30.
Opsi berikut nya adalah UNSI GNED. Jika opsi ini m engikut i t ipe dat a num erik, t idak ada nilai negat if yang diij inkan berada dalam kolom . Jika Anda m enspesifikasikan ZEROFI LL, nol akan dit am bahkan di awal nilai sehingga nilainya dit am pilkan dengan sej um lah karakt er yan direpresent asikan oleh < panj ang> . Misal, j ika Anda m endefinisikan < panj ang> dengan 4 dan m enspesifikasikan ZEROFI LL, angka 53 akan dit am pikan sebagai 0053.
Tipe dat a int eger m engij inkan Anda m enyim pan seluruh bilangan dalam kolom ( t idak m engandung pecahan at au desim al) . MySQL m endukung t ipe dat a int eger sepert i yang dit am pilkan dalam sint aks berikut :
<tip e d a ta inte g e r>::=
TINYINT | SMALLINT | MEDIUMINT | INT | INTEG ER | BIG INT
Sedangkan unt uk t ipe dat a fraksional, sint aksnya adalah:
<tip e d a ta fra ksio na l>::=
FLO AT | DO UBLE | DO UBLE PREC ISIO N | REAL | DEC IMAL | DEC | NUMERIC | FIXED
Cont oh dalam pem buat an t abel dengan m enggunakan t ipe dat a num erik.
C REATE TABLE Ka ta lo g (
IDPro d uk SMALLINT(4) UNSIG NED ZERO FILL, Jum la h INT UNSIG NED,
Diktat Laboratorium Sistem Basis Data – MySQL
De p a rtm e nt o f Info rm a tic s Eng ine e ring – UNIKO M G a lih He rm a w a n, S.Ko m
33
Be ra t FLO AT(8,4) );
Tipe D a t a St r ing
Tipe dat a st ring m enyediakan fleksibilit as unt uk m enyim pan berbagai m acam t ipe dat a dari bit - bit individual sam pai file- file besar. Tipe dat a st ring secara norm al digunakan unt uk m enyim pan nam a dan t it les dan nilai apapun yang m eliput i huruf dan angka. MySQL m endukung em pat kat egori dari t ipe dat a st ring.
<tip e d a ta string >::= <tip e d a ta ka ra kte r> | <tip e d a ta b ine r> | <tip e d a ta te ks>
| <tip e d a ta list a ta u d a fta r>
Tipe dat a karakt er m ngkin salah sat u yang akan sering Anda gunakan. Sint aksnya adalah sebagai berikut :
<tip e d a ta ka ra kte r>::=
C HAR (<p a nja ng >) [BINARY | ASC II | UNIC O DE] VARC HAR (<p a nja ng >) [BINARY]
Tipe dat a CHAR adalah t ipe dat a fixed- lengt h yang dapat m enyim pan sam pai 255 karakt er. Tanda < panj ang> m enspesifikasik an j um lah karakt er yang disim pan. Meskipun pada keadaan sebenarnya nilainya t erdir i at as j um lah karakt er yang lebih sedikit dari j um lah yang dispesifik asikan, ruang penyim panan akt ualnya adalah t et ap (fixed) sebagaim ana j um lah yang dit ent ukan.
Cont oh:
C REATE TABLE Ka ta lo g (
IDPro d uk SMALLINT, De skrip si VARC HAR(40), Ka te g o ri C HAR(3), Ha rg a DEC IMAL(7,2) );
Kolom Kat egori didefinisikan dengan t ipe dat a CHAR( 3) . Hasilnya, kolom t ersebut akan m enyim pan sebanyak nol sam pai 3 karakt er per nilainya, nam un j um lah penyim panan yang dialokasikan unt uk nilai t ersebut selalu t iga byt e, sat u unt uk set iap karakt er.
Tipe dat a CHAR adalah t ipe dat a yang sesuai digunakan saat Anda m enget ahui berapa karakt er t erbanyak dari suat u nilai dalam kolom yang ada dan j ika nilainya t erdir i at as karakt er alphanum erik. Jika Anda t idak t ahu j um lah karakt er dari set iap nilainya, Anda sebaiknya m enggunakan t ipe dat a VARCHAR. Tipe dat a VARCHAR j uga m engij inkan Anda m enspesifikasikan j um lah at au panj ang m aksim um ; bagaim anapun, kebut uhan penyim panan berdasarkan pada j um lah karakt er yang sebenarnya, bukan pada nilai < panj ang> .
Kem bali pada cont oh sebelum nya. Perhat ikan bahw a kolom Deskripsi dikonfigurasi dengan t ipe dat a VARCHAR( 40) . Art inya bahwa nilainya dapat m em punyai panj ang yang berm acam - m acam , sam pai sepanj ang 40 karakt er. Hasilnya, j um lah penyim panan yang sebenarnya adalah ant ara nol dan 40 byt e, t ergant ung pada nilai akt ualnya. Misal, sebuah nilai “ Buku baru” m em er lukan byt e yang lebih sedikit daripada nilai “ Buku t eknologi inform asi” . Tipe dat a VARCHAR, sebagaim ana t ipe dat a CHAR, dapat m enyim pan sam pai 255 karakt er.
Sebagai t am bahan dari t ipe dat a st ring, MySQL m endukung em pat t ipe dat a biner:
<tip e d a ta b ine r>::=
TINYBLO B | BLO B | MEDIUMBLO B | LO NG BLO B
Tipe dat a biner m endukung penyim panan sej um lah besar dat a, sepert i file gam bar dan suara. Tipe ini sangat berguna ket ika Anda m em perkirakan nilainya akan t um buh besar at au m elebar.
Diktat Laboratorium Sistem Basis Data – MySQL
De p a rtm e nt o f Info rm a tic s Eng ine e ring – UNIKO M G a lih He rm a w a n, S.Ko m
34
Cont oh t abel:
C REATE TABLE Inve nto ri (
IDPro d uk SMALLINT UNSIG NED, Na m a VARC HAR(40),
Fo to BLO B,
Jum la h INT UNSIG NED );
Kolom Fot o dapat m enyim pan dat a biner dengan ukuran sam pai 64 KB. Asum si dalam kasus ini bahwa fot o dapat diam bil sesuai produk dan disim pan dalam ukuran file yang cukup kecil unt uk m enyesuaikan dengan kolom ini. Jika Anda m em perkirakan bahwa fot o dapat berukuran lebih besar, Anda harus m enaikkannya ke t ipe MEDI UMBLOB.
Tipe dat a t eks sam a dengan t ipe dat a biner, sint aksnya:
<tip e d a ta te ks>::=
TINYTEXT | TEXT | MEDIUMTEXT | LO NG TEXT
Tipe dat a t eks j uga m em punyai bat asan ukuran dan keperluan penyim panan yang sam a sebagaim ana t ipe dat a biner.
Cont oh:
C REATE TABLE Ka ta lo g (
IDPro d uk SMALLINT UNSIG NED, Na m a VARC HAR(40),
Do kum e nDe skrip si TEXT C HARAC TER SET la tin1 C O LLATE la tin1_b in );
Sebagaim ana Anda lihat , kolom Dokum enDeskripsi m enyert akan klausa CHARACTER SET dan COLLATE.
Sekarang kit a lihat t ipe dat a list/ daft ar. Sint aksnya adalah:
<tip e d a ta list/ d a fta r>::=
{ENUM | SET} (<nila i> [{, <nila i>}...])
Tipe dat a ENUM m engij inkan Anda unt uk m enspesifikasik an daft ar nilai yang dapat Anda gunakan dalam kolom yang dikonfigurasi dengan t ipe t ersebut . Ket ika Anda m em asukkan sebuah baris dalam t abel, Anda j uga dapat m em asukkan salah sat u nilai yang dit ent ukan unt uk t ipe dat a dalam kolom . Kolom hanya dapat berisi sat u nilai, dan dia harus salah sat u dari yang t erdapat di list/ daft ar. Tipe dat a SET j uga m enspesifikasikan daft ar nilai yang dim asukkan dalam kolom . Tidak sepert i t ipe dat a ENUM, dim ana Anda hanya dapat m enspesifikasikan hanya sat u nilai, t ipe dat a SET m engij inkan Anda m enspesifikasik an banyak nilai dari daft ar.
Cont oh:
C REATE TABLE Pe m b e lia n (
IDPe m b e lia n SMALLINT UNSIG NED, Mo d e lSe p e d a VARC HAR(40),
Wa rna Se p e d a ENUM(‘ m e ra h’ , ‘ b iru’ , ‘ hija u’ , ‘ kuning ’ ), O p siSe p e d a SET(‘ ra k’ , ‘ se nte r’ , ‘ he lm ’ , ‘ g e m b o k’ ) );
Perhat ikan bahw a daft ar nilai m engikut i t ipe dat a. Nilai dit ut up dalam t anda pet ik t unggal dan dipisahkan oleh t anda kom a, dan sem ua nilai t ert ut up dalam t anda
Diktat Laboratorium Sistem Basis Data – MySQL
De p a rtm e nt o f Info rm a tic s Eng ine e ring – UNIKO M G a lih He rm a w a n, S.Ko m
35
kurung. Unt uk t ipe dat a ENUM, Anda dapat m enspesifikasikan sam pai 65.535 nilai. Unt uk t ipe dat a SET, Anda dapat m enspesifikasikan sam pai 64 nilai.
Tipe D a t a Ta ngga l/ W a k t u Sint aksnya:
<tip e d a ta ta ng g a l/ w a ktu>::=
DATE | TIME | DATETIME | YEAR | TIMESTAMP
Tipe dat a t anggal/ wakt u m engij inkan Anda m enspesifikasikan kolom yang berisi dat a spesifik sepert i t anggal dan wakt u. Tipe dat a ini m endukung j angkauan dan form at sepert i nam pak pada t abel berikut :
Jika Anda ingin m enyim pan dat a hanya t anggalnya saj a bukan t ahun, Anda dapat m enggunakan t ipe dat a DATE. Nilai yang Anda m asukkan harus sesuai dengan form at yang didefinisikan oleh t ipe dat a t ersebut . Bagaim anapun, salah sat u t ipe dat a yang m enarik adalah TI MESTAMP, dim ana begit u berbeda dengan t ipe dat a lainnya. Saat Anda m engkonfigurasi sebuah kolom dengan t ipe dat a ini, sebuah baris, ket ika dim asukkan dat a at au updat e, secara ot om at is m enyediakan sebuah nilai berdasarkan w akt u dan t anggal t erkini.
Cont oh:
C REATE TABLE Pe m b e lia nBuku (
IDPe m b e lia n SMALLINT UNSIG NED, IDBuku SMALLINT UNSIG NED, C o p yrig ht YEAR,
Ta ng g a lBe li TIMESTAMP );
Kolom Copyright m engij inkan Anda unt uk m enam bahkan nilai ke kolom yang t erdapat pada range 1901 sam pai 2155; bagaim anapun, Anda dilarang m enam bahkan nilai selain dari t ipe dat a ini. Kolom TanggalBeli secara ot om at is m enyim pan dat a dan w akt u t erkini ket ika baris t ert ent u dim asukkan at au diupdat e, j adi Anda t idak perlu m em asukkan nilai apapun ke kolom ini.
M e n e n t u k a n Sifa t N u ll (N u lla bilit y) da r i Kolom
Sam pai pada poin ini, fokus hanya pada ident ifikasi elem en- elem en yang diperlukan pada pernyat aan CREATE TABLE dan definisi kolom . Hasilnya, definisi kolom t elah m enyert akan hanya nam a kolom dan t ipe dat a yang diberikan pada kolom t ersebut . Kom ponen berikut dari definisi k olom yang dibahasa adalah nullabilit as kolom , dim ana dispesifikasikan m elalui kat a kunci NULL dan NOT NULL.
Nullabilit as kolom m enunj uk pada kem am puan kolom unt uk m enerim a nilai null. Nilai null m engindikasikan bahw a nilai t ersebut t idak dit ent ukan at au t idak diket ahui. Tidak sam a dengan nol at au kosong. Ket ika Anda m enyert akan NOT NULL dalam definisi kolom Anda, Anda m engat akan bahw a kolom t ersebut t idak m engij inkan nilai null. Dengan kat a lain, sebuah nilai spesifik harus selalu disediakan unt uk kolom t ersebut . Sedangkan di lain hal, opsi NULL m engij inkan nilai null. Jika t idak ada dari kedua- duanya yang dispesifikasik an, nilai default nya adalah NULL, dan nilai null diij inkan berada dalam kolom .
Berikut ini cont oh t abel yang m enyert akan dua kolom NOT NULL:
C REATE TABLE Ka ta lo g (
IDPro d uk SMALLINT UNSIG NED NO T NULL, Na m a VARC HAR(40) NO T NULL
Diktat Laboratorium Sistem Basis Data – MySQL
De p a rtm e nt o f Info rm a tic s Eng ine e ring – UNIKO M G a lih He rm a w a n, S.Ko m
36
Anda harus m enyediakan sebuah nilai unt uk kedua kolom , I DProduk dan Nam a. Kapanpun Anda m em asukkan baris- baris dalam t abel at au m engupdat e baris dalam t abel, Anda t idak dapat m enggunakan NULL sebagai nilai unt uk kedua kolom t ersebut .
Secara um um , kapanpun Anda m engkonfigurasi sebuah kolom sebagai NOT NLL, Anda harus m enyediakan sebuah nilai selain dari NULL ke kolom ket ik a m em asukkan at au m em odifikasi baris.
M e n e n t u k a n N ila i D e fa u lt
Sit uasi bisa saj a berubah dim ana Anda m enginginkan sebuah kolom unt uk m enggunakan nilai default ket ika m em asukkan at au m engupdat e suat u baris, j ik a t idak ada nilai apapun yang disediakan. Hal ini sangat berguna ket ika sebuah nilai seringkali berulang- ulang dalam sebuah kolom at au m erupakan nilai yang paling sering digunakan dalam kolom t ersebut . MySQL m engij inkan Anda unt uk m em berikan nilai default m elalui penggunaan klausa DEFAULT. Misal, definisi t abel berikut m enyert akan sebuah kolom yang didefinisikan dengan nilai default ‘Kosong’:
C REATE TABLE Bio g ra fi (
IDPe nulis SMALLINT UNSIG NED NO T NULL, Ta hunLa hir YEAR NO T NULL,
Ko ta Ke la hira n VARC HAR(40) NO T NULL DEFAULT ‘ Ko so ng ’ );
Unt uk kolom Kot aKelahiran dikonfigurasi dengan t ipe dat a VARCHAR dan opsi NOT NULL. Dengan t am bahan, definisi kolom j uga m enyert akan klausa DEFAULT. Dalam klausa t ersebt , kat a kunci DEFALT dispesifikasi, diikut i oleh nilai default yang sebenarnya, dim ana dalam kasus ini adalah Kosong. Jika Anda m em asukkan sebuah baris dalam t abel dan t idak m enspesifikasikan suat u nilai pada kolom Kot aKelahiran, nilai Kosong secara ot om at is dim asukkan ke dalam kolom t ersebut .
Anda j uga dapat m enspesifikasikan nilai default dalam sebuah kolom yang dikonfigurasi dengan sebuah t ipe dat a num erik. Cont oh:
C REATE TABLE Bio g ra fi (
IDPe nulis SMALLINT UNSIG NED NO T NULL, Ta hunLa hir YEAR NO T NULL,
Jum la hBuku SMALLINT NO T NULL DEFAULT 1 );
Perhat ikan bahwa Anda t idak perlu m enut up nilai default t ersebut dalam t anda kut ip t unggal. Tanda pet ik hanya digunakan unt uk nilai default st ring.