Anda di halaman 1dari 26

PERINTAH DASAR MYSQL

BAGIAN 2
Mengisi Data
Achdiat L Cijawara No 22 Bandung 1971-05-09 41510
Didin L Cimarame 11 Bogor 1976-01-24 52155
uth ! Ci"a#ung 2$1 Bogor 1972-06-2$ 52$14
%udarmaji L Ciherang No 24 Bandung 19&0-02-05 42571
'homa( L !a(ar )inggu No 11 *a+arta 19&1-11-20 1547&
Tampilkan isi table karyawan
m#(,-. (e-ect / 0rom +ar#awan 1
Tampilkan noid, nama, gender, alamat, kota, kodepos
m#(,-. (e-ect noid2 nama2 gender2 a-amat2 +ode"o( 0rom +ar#awan 1
Tampilkan noid, nama, gender, alamat, kota, kodepos berdasarkan nama
m#(,-. (e-ect noid2 nama2 gender2 a-amat2 +ode"o( 0rom +ar#awan order 3# nama 1
Tampilkan noid, nama, gender, tgl lahir berdasarkan noid
m#(,-. (e-ect noid2 nama2 gender2 tg--ahir 0rom +ar#awan order 3# noid 1
Tampilkan nama, alamat, kota, kode pos bagi karyawan laki - laki
m#(,-. (e-ect nama2 a-amat2 +ota2 +ode"o( 0rom +ar#awan where gender45L65 1
Tampilkan nama, gender, tgl lahir, kota untuk karyawan yang berdomisili di Bogor
diurutkan berdasarkan nama
m#(,-. (e-ect nama2 gender2 tg--ahir2 +ota 0rom +ar#awan where +ota 4 7Bogor5 order 3#
nama 1
Tambahkan data tabel karyawan
Data 8
9u3aedah ! !ejaten 'imur No 1A *a+arta 197&-12-05 15$11
)a+mum L %u+amaju No 12$ 'anggerang 1979-05-$0 $6411
Budiman L %u+maja#a No 2: Ci3inong 1974-06-19 2$14$
Car-a ! %um3awa 12 Bandung 19&2-09-06 91122
Darmadi L )argonda 110; De"o+ 197&-11-05 17566
<i=ien ! 6erinci No 12$ De"o+ 197&-04-21 17$54
>airu? ! 6am3oja a#a 12 De"o+ 1975-02-25 17&55
Deden L Ci3erem No 25 Bandung 19&0-0&-16 5$261
Ubah isi tabel karyawan alamat menjadi Cibeureum no 25 bagi karyawan bernama
Deden
m#(,-. u"date +ar#awan
. (et a-amat4 5Ci3eureum no 255
. where nama4 5Deden5 1
Ubahlah isi karyawan gender menjadi ! bagi karyawan bernama "#hdiat
m#(,-. u"date +ar#awan
. (et gender4 7L65
. where nama4 5Achdiat5 1
Buatlah tabel karyawan2 dengan $ield % $ield yang dengan tabel karyawan
Menghapus database
!erintah
D@! DA'ABA%: data3a(e
Contoh
m#(,-. D@! DA'ABA%: "rodu+ 1
'am"i-an
Mengubah Data
!erintah
A!DA': ta3-e %:' +o-om4"engu3ahanBdata
CD:: criteria
Contoh
m#(,-. A!DA': +ar#awan
. %:' a-amat4 7Cireme a#a No 2$5
. CD:: nama 4 7Ami5
. 1
'am"i-an 1
Da0tar data3a(e #ang ada
!erintah dro" data3a(e
Data3a(e "rodu+ (udah diha"u(
ecord nid452 +o-om a-amat (udah 3eru3ah
Menampilkan Data &ada !olom tertentu
6ita han#a mem3utuh+an data "ada +o-om noid2 nama2 gender2 a-amat dan +ota2 ma+a
"erintahn#a 8
m#(,-. %:L:C' nid2 nama2 gender2 a-amat2 +ota >@) +ar#awan
. 1
'am"i-an 8
Menampilkan data se#ara berurutan
6ita ingin menam"i-+an data (ecara 3erurutan 3erda(ar+an nama2
!erintahn#a
m#(,-. %:L:C' nid2 nama2 gender2 a-amat2 +ota
. >@) +ar#awan @D: BE nama
. 1
'am"i-an
Menampilkan Data Dengan !riteria Tertentu
!erintah
%:L:C' +o-om12 +o-om22 F >@) ta3-e CD:: criteria
m#(,-. %:L:C' nid2 nama2 gender2 a-amat2 +ota
. >@) +ar#awan CD:: nid4$
. 1
'am"i-an
Menghapus Data
!erintah
D:L:': >@) ta3-e CD:: +riteria
Contoh
m#(,-. D:L:': >@) +ar#awan CD:: nid42
. 1
'am"i-an
Data nid 4 22 (udah diha"u(
&engisian Data 'e#ara Massal
6ita da"at mengguna+an 0a(i-ita( te+( do+umen untu+ mema(u+an data +e da-am ta3e-
aG Buat 0i-e data mengguna+an Note!ad 8
Nama 0i-e inputdata2.txt
Nu-- Achdiat L Cijawara No 22 Bandung 1971-05-09 41510
Nu-- Didin L Cimarame 11 Bogor 1976-01-24 52155
Nu-- uth ! Ci"a#ung 2$1 Bogor 1972-06-2$ 52$14
Nu-- %udarmaji L Ciherang No 24 Bandung 19&0-02-05 42571
Nu-- 'homa( L !a(ar )inggu No 11 *a+arta 19&1-11-20 1547&
Nu-- 9u3aedah ! !ejaten 'imur No 1A *a+arta 197&-12-05 15$11
Nu-- )a+mum L %u+amaju No 12$ 'anggerang 1979-05-$0 $6411
Nu-- Budiman L %u+maja#a No 2: Ci3inong 1974-06-19 2$14$
Nu-- Car-a ! %um3awa 12H Bandung 19&2-09-06 91122
Nu-- Darmadi L )argonda 110; De"o+ 197&-11-05 17566
Nu-- <i=ien ! 6erinci No 12$ De"o+ 197&-04-21 17$54
Nu-- >airu? ! 6am3oja a#a 12 De"o+ 1975-02-25 17&55
Nu-- Deden L Ci3erem No 25 Bandung 19&0-0&-16 5$261
3G Buat 0i-e data da-am 0ormat (cri"t %IL da-am 0i-e te+(
Nama 0i-e inputdata1b.sql
Jn(ert into +ar#awan
Knama2 gender2 a-amat2 +ota2 +ode"o(L
<a-ue(
K7Amir525L525Cijawara No 21525Bandung5251971-0$-12525415105L2
K7Bunga525!525Cimarame No 1%525Bogor5251976-01-0&525521555L2
K7Cimi525!525Ci"a#ung No $1525Bogor5251972-06-2$52552$145L2
K7Darmaji525L525Ciherang No 2A525Bandung52519&0-02-05525425715L2
K5:mita525!525!a(ar )inggu No 11525*a+arta52519&1-11-205251547&5L2
K5>athin525L525!ejaten Barat No 12525*a+arta525197&-10-1552515$115L2
K7;ugun525L525%u+amaju No 15D525'anggerang5251979-05-$0525$6411L2
K5Darun525L525%u+maja#a No 21525Ci3inong5251974-06-195252$14$5L2
K7Jma(525!525%um3awa 'imur No $525Ci3inong52519&2-05-16525911$25L2
K7*unaedi525L525)argonda 10A525De"o+525197&-11-05 725175665L2
K76ami-525L5256erinci 7 No 2525De"o+5251970-0&-2052517$54L2
K7L#-a525!5256am3oja a#a 12525De"o+5251975-02-2552517&555L2
K7)aman525L525Ci3erem a#a 12525Bandung52519&0-0&-165255$2695L 1
cG Buat 0i-e data dengan nama karyawan.txt
Nu-- Aaaaaa L Cijawara No 22 Bandung 1971-05-09 41510
Nu-- B33333 L Cimarame 11 Bogor 1976-01-24 52155
Nu-- Cccccc ! Ci"a#ung 2$1 Bogor 1972-06-2$ 52$14
Nu-- Dddddd L Ciherang No 24 Bandung 19&0-02-05 42571
Nu-- :eeeee L !a(ar )inggu No 11 *a+arta 19&1-11-20 1547&
Nu-- >00000 ! !ejaten 'imur No 1A *a+arta 197&-12-05 15$11
Nu-- ;ggggg L %u+amaju No 12$ 'anggerang 1979-05-$0 $6411
Nu-- Dhhhhh L %u+maja#a No 2: Ci3inong 1974-06-19 2$14$
Nu-- Jiiiii ! %um3awa 12H Bandung 19&2-09-06 91122
Nu-- *jjjjj L )argonda 110; De"o+ 197&-11-05 17566
Nu-- 6+++++ ! 6erinci No 12$ De"o+ 197&-04-21 17$54
Nu-- L----- ! 6am3oja a#a 12 De"o+ 1975-02-25 17&55
Nu-- )mmmmm L Ci3erem No 25 Bandung 19&0-0&-16 5$261
() &erintah oad Data
Bentu+ umum
L@AD DA'A ML@CALN JN>JL: 7-o+a(i dan nama 0i-e te+(5
JN'@ 'ABL: namaBta3e-
Contoh
>i-e te+( 8 in"utdata2GtOt
'a3e- 8 +ar#awan
!ada "rom"t m#(,- +eti+an "erintah -oad data
m#(,-. L@AD DA'A L@CAL JN>JL: 708Pin"utdata2GtOt5
. JN'@ 'ABL: +ar#awan 1
2) &erintah '#rip '* dalam $ile teks
!rintah ini di-a+u+an dari (#(tem "rom"t
>i-e 8 in"utdata13G(,-
'a3e- 8 +ar#awan
Bentu+ "erintah
Mysql h server u user p data3a(e < namaB0i-eG(,-
Di-a+u+an "ada root window(
Contoh 8
m#(,- Qh -oca-ho(t Q u root Q " Latihan1 R S08Pin"utdata13G(,-T
)a(u+an "a((word dan a+ti0+an +em3a-i )#%IL
*i+a ha(i- dita3e- 3er3eda da-am ha- i(i +o-om2 -a+u+an "er3ai+i +e(a-ahan dengan
0a(i-ita( A!DA': dan %:'
%e"erti
m#(,-. u"date +ar#awan
. (et gender 45L65
. where gender 4 7L5 1
Da(i- 8
m#(,-. u"date +ar#awan
. (et gender 45!5
. where gender 4 7!5 1
Da(i- 8
Anda cet dengan "erintah 8
m#(,-. (e-ect nama2 gender2 a-amat2 +ota 0rom +ar#awan where +ota 45Bandung5 1
Da(i- 8
Menyalin isi tabel ke tabel lainnya
Da-am )#(,- tida+ terda"at 0a(i-ita( +o"i ta3-e(
Buat (tru+tur ta3e- "egawai
Buat ta3e- "egawai dengan (tru+tur 0i-e (ama dengan ta3e- +ar#awan
!erintah
)#(,- . Jn(ert into "egawai
. (e-ect / 0rom +ar#awan
Menghapus Tabel
!erintah
D@! 'ABL: ta3e-
Contoh 8
m#(,-. dro" ta3-e +ar#awan 1
!eluar dari My'*
!erintah
IAJ' atai :UJ' atau P,
m#(,-. P,
PERIN!" #!$!R $%&
1G bungrizal
!n''(ta
!pril )* 2+12 , +2-22 !M
erlebih dahulu install !pp$erv atau My$%&. .e/udian buka
My$%& 0(//and &ine 0lient. Masukan passw(rd yan' sesuai
saat instalasi* apabila tidak /en''unakan passw(rd /aka
lan'sun' dienter.
Perintah /elihat database -
sh(w databases1
Perintah /e/buat database -
0reate database na/adatabase1 ke/udian enter
0(nt(h - 2reate kuliah1
Perintah /en''unakan database yan' telah dibuat -
3se na/adatabase1
0(nt(h - 2reate kuliah1
Perintah /e/buat table -
0reate table na/atabel 4na/a5ield1 type4len'th6*na/a5ield2
type4len'th6*pri/ary key4na/a5ield1661
0(nt(h - 2reate table /ahasiswa4np/ 2har476* na/a8/ahasiswa
var2har42+6*u/ur int426*ala/at text* pri/ary key4np/661
2reate table /ata8kuliah4k(de8/atkul 2har496* na/a8/atkul
var2har4:+6* pri/ary key4k(de8/atkul661
2reate table krs4np/ 2har476* k(de8/atkul 2har496* se/ester int426*
tahun8a;aran 2har41+6* pri/ary key 4np/*k(de8/atkul*se/ester661
Perintah /elihat table apa sa;a yan' ada pada database -
$h(w tables1
Perintah /elihat deskripsi table</elihat k(l(/ apa sa;a beserta
type* len'th yan' ada pada table -
#es2 na/atabel1
0(nt(h - des2 /ahasiswa1
Perintah /ena/bah 5ield pada table -
!lter table na/atabel add na/a5ield type4len'th61 ke/udian enter
0(nt(h - alter table /ahasiswa add ;enis8kela/in int4161
Perintah /en'hapus table -
dr(p table na/atabel1
2(nt(h - dr(p table /ahasiswa1
Perintah /en''anti na/a 5ield pada table -
!lter table na/atabel 2han'e na/a5ield8la/a na/a5ield8baru
type4len'th61
0(nt(h - alter table /ahasiswa 2han'e na/a8/ahasiswa
na/e8student var2har42+61
Perintah /en'ubah ukuran 4len'th6 dari suatu 5ield -
!lter table na/atabel /(di5y na/a5ield type4len'th6 n(t null1
0(nt(h - alter table /ahasiswa /(di5y na/e8student var2har4:+61
Perintah /en'hapus 5ield pada table -
!lter table na/atabel dr(p na/a5ield1
0(nt(h - alter table /ahasiswa dr(p ;enis8kela/in1
Perintah /en'input satu data pada table lan'sun' untuk se/ua
5ield -
Insert int( na/atabel values4=data1>*>data!>61
0(nt(h - insert int( /ahasiswa values4=?1!++@+2:>*>Aiwid
.B>*>2+>*>Cen'kulu>61
Perintah /en'input beberapa data pada table lan'sun' untuk
se/ua 5ield -
Insert int( na/atabel values 4=data1>*>data!>6*4=data2>*>dataC>61
0(nt(h - insert int( /ahasiswa values4=!1D++)+1+>*>$anity
.B>*>2:>*>Cen'kulu>6*4=?1!++@+2:>*>Aiwid .B>*>2+>*>Cen'kulu>61
Perintah /en'input data pada table hanya untuk 5ield tertentu -
Insert int( na/atabel 4na/a5ield6 values4=data16*4=data2>61
0(nt(h - insert int( /ahasiswa 4np/6 values4=D1!++)+1+>6*
4=?i!++@+2:>61
Perintah /elihat isi table keseluruhan -
$ele2t E 5r(/ na/atabel1
0(nt(h - sele2t E 5r(/ /ahasiswa1
Perintah /ena/pilkan isi table hanya untuk 5ield tertentu sa;a -
$ele2t na/a5ield 5r(/ na/atabel1
0(nt(h - sele2t np/ 5r(/ /ahasiswa1
Perintah isi<data len'kap table pada baris tertentu sa;a -
$ele2t E 5r(/ na/atabel where na/a5ield8keyF>data>1
0(nt(h - sele2t E 5r(/ /ahasiswa where np/F>?1!++@+2:>1
Perintah /en'ubah isi dari 5ield yan' diin'inkan -
3pdate na/atabel set na/a5ieldF>data8baru> where
na/a5ield8keyF>data8baru>1
0(nt(h - update /ahasiswa set na/e8studentF>$anity !5syawida
.B> where np/F>!1D++)+1+>1
Perintah /en'hapus baris yan' diin'inkan-
#elete 5r(/ na/atabel where na/a5ield8keyF>data>1
0(nt(h - delete 5r(/ /ahasiswa where np/F>?1!++@+2:>1
Perintah /en''abun'kan beberapa tabel-
!lter table na/atabel1 add 5(rei'n key4na/a5ield8key6 re5eren2es
na/atabel24na/a5ield8key61
0(nt(h - alter table /ahasiswa add 5(rei'n key4np/6 re5eren2es
krs4np/61
!lter table /ata8kuliah add 5(rei'n key4k(de8/atkul6 re5eren2es
krs4k(de8/atkul61
Perintah /e/an''il beberapa data dari beberapa tabel -
$ele2t na/a5ield1*na/a5ield2*na/a5ield: 5r(/ na/atabel1 inner
;(in na/atabel2 where
na/atabel1.na/a5ield8keyFna/atabel2.na/a5ield8key1
0(nt(h - sele2t a.np/*a.na/a*b.na/a8/atkul*2.se/ester 5r(/
/ahasiswa a inner ;(in /ata8kuliah b inner ;(in krs 2 where
a.np/F2.np/ and b.k(de8/atkulF2.k(de8/atkul1
Perintah /e/an''il isi tabel yan' dikel(/p(kkan berdasarkan
5ield tertentu-
$ele2t E 5r(/ na/atabel 'r(up by na/a5ield1
0(nt(h - sele2t E 5r(/ /ahasiswa 'r(up by np/1
Perintah /e/an''il isi tabel yan' diurutkan se2ara as2endin'
des2endin'
$ele2t E 5r(/ na/atabel (rder by na/a5ield1
$ele2t E 5r(/ na/atabel (rder by na/a5ield des21
0(nt(h - sele2t E 5r(/ /ahasiswa (rder by np/ des21
Perintah /en2ari nilai /aksi/u/ pada suatu 5ield pada tabel
tertentu -
$ele2t /ax4na/a5ield6 5r(/ na/atabel1
0(nt(h - sele2t /ax4u/ur6 5r(/ /ahasiswa1
Perintah /en2ari nilai /ini/u/ pada suatu 5ield pada tabel
tertentu -
$ele2t /in4na/a5ield6 5r(/ na/atabel1
0(nt(h - sele2t /in4u/ur6 5r(/ /ahasiswa1
Perintah /en2ari banyaknya re2(rd<data dala/ sebuah 5ield pada
sebuah tabel -
$ele2t 2(unt4na/a5ield6 5r(/ na/atabel1
0(nt(h - sele2t 2(unt4np/6 5r(/ /ahasiswa1
Perintah /en;u/lahkan isi dari 5ield-
$ele2t su/4na/a5ield6 5r(/ na/atabel1
0(nt(h - sele2t su/4u/ur6 5r(/ /ahasiswa1
Perintah /en2ari rata2 nilai isi dari suatu 5ield -
$ele2t av'4na/a5ield6 5r(/ na/atabel1
0(nt(h - sele2t av' 4u/ur6 5r(/ /ahasiswa1
Perintah /enentukan standard deviasi isi dari suatu 5ield-
$ele2t std4na/5ield6 5r(/ na/atabel1
0(nt(h - sele2t std4u/ur6 5r(/ /ahasiswa1
Foreign Key Di MySQL
Dalam relational basis data, terdapat istilah kunci utama (primary key)
dan kunci tamu (foreign key). Tujuan utama dari adanya kedua istilah
tersebut adalah pengidentifikasian tiap table dan kejelasan hubungan
antara 2 atau lebih table. Primary key adalah satu atau beberapa
kolom pada table yang mengidentifikasikan tiap kolom dan baris pada
table tersebut. Sedangkan oreign !ey adalah satu atau beberapa
kolom pada table yang merupakan primary key pada table satu namun
diletakan pada table dimana tablenya berelasi dengan table dirinya.
Pada gambar diatas, nim pada table mhs adalah primary key.
Sedangkan primary key pada table matkul adalah id"matkul. #alu
id"matkul menempel pada table mhs yang kita sebut sebagai foreign
key.
$iasanya saya menyebut table yang berisi foreign key sebagai table
anak karena table tersebut mengait pada table lain. Sedangkan table
yang terkait saya sebut sebagai table induk. Pada contoh table di atas,
mhs sebagai table anak sedangkan matkul sebagai table induk.
%ontoh isi dari kedua table tersebut dapat dilihat diba&ah ini.
Table mhs
'im 'ama (lamat )d"matkul
*+*+,-.. (diputra (rtupida $ekasi )*2/
*+*+,-/. 0ermansyah $andung )222
*+*+,-/1 $udianto 'ugroho Semarang )***
*+*+,-/- Silan $ekasi )///
Table 2atkul
)d"matkul 'm"matkul 3ml"sks
)*2/ Pemrograman 4eb /
)*** Pemrograman % /
)222 Pemrograman 3a5a /
)/// Pemrograman 66P /
Saya langsung praktikan pada mys7l. $erikut adalah codenya 8
%9:(T: T($#: ) '6T :;)STS matkul(
id_matkul CHAR(5) NOT NULL PRIMARY KEY,
nm_matkul VARCHAR(!) NOT NULL,
"ml_#k# INT() NOT NULL
)$

CREATE TA8LE lF NOT EXl5T5 mhs(
nim CHAR(8) NOT NULL PRlMARY lEY,
nama VARCHAR(50) NOT NULL,
alamat VARCHAR(60) NOT NULL,
id_matkul CHAR(5),
FORElCN lEY(id_matkul) REFERENCE5 matkul(id_matkul)
);
lN5ERT lNTO mhs VALUE5
(J0J07633,Adiputra Artupida,'8ekasi,'lFJ23),
(J0J07634,Hermansyah,'8andung,'lF222),
(J0J07635,8udianto Nugroho,'5emarang,'lFJJJ),
(J0J07636,5ilan,'8ekasi,'lF333);
lN5ERT lNTO matkul VALUE5
(lFJ23,Pemrograman Web,3),
(lFJJJ,Pemrograman C,3),
(lF222,Pemrograman java,3),
(lF333,Pemrograman OOP,3);
Perhatikan baris kode pada table mhs,
69:)<' !:=(id"matkul) 9::9:NCE% matkul(id_matkul)
)tulah cara mendefinikan foreign key pada mys7l. )d"matkul
didefinisikan sebagai foreign key yang mereferensikan(mengacu) pada
table matkul pada kolom id"matkul.
=ang ingin saya fokus bicarakan pada artikel ini adalah bagaimana bila
data matkul misalnya data dengan id"matkul>?)*2/? dihapus@ (pakah
data mahasis&a yang mengambil id"matkul akan dihapus juga atau
akan dibiarkan apa adanya@
D:#:T: 962 matkul 40:9: id"matkul>?)*2/?
2aka pasti terjadi error
Cannot delete or update a parent row: a foreign key constaint fails
(test.mhs,CON5TRAlNT mhs_ibfk_3 FORElCN lEY (id_matkul)
REFERENCE5 matkul (id_matkul))
2aksudnya adalah tidak dapat menghapus atau mengupdate kolom
pada table induk karena bereferensi pada table mhs.
#alu bagaimana solusinya@
Pada 2=SA#, kita harus menambahkan perintah 6' D:#:T: BopsiC dan
6' DPD(T: BopsiCpada table yang mereferensikan foreign key. 6psi
pada perintah tersebut jelasnya diba&ah ini.
*. 9:ST9)%T, 3ika tabel anak berisi nilai dalam kolom yang mengkait
yang nilainya sama dengan di kolom terkait pada tabel induk, baris
dalam tabel induk tidak bisa dihapus, dan nilai di kolom terkait tidak
dapat diupdate. )ni adalah opsi default jika klausa 6' D:#:T: atau 6'
DPD(T: tidak dispesifikasikan.
2. %(S%(D:, $arisEbaris dalam tabel anak yang berisi nilaiEnilai yang
juga terdapat dalam kolom terkait dari tabel induk dihapus ketika
barisbaris yang berkaitan dihapus dari tabel induk. $arisEbaris dalam
tabel anak yang berisi nilaiEnilai yang juga terdapat dalam kolom
terkait dari tabel induk diupdate ketika nilaiEnilai yang berkaitan
diupdate dalam tabel induk.
/. S:T 'D##, 'ilaiEnilai dalam kolom yang mengkait dari tabel anak
diset ke 'D## saat barisEbaris dengan data terkait dalam tabel induk
dihapus dari tabel induk atau ketika data terkait dalam tabel induk
diupdate. Dntuk menggunakan opsi ini, semua kolomEkolom yang
mengkait dalam tabel anak harus mengijinkan nilai 'D##.
.. '6 (%T)6' Tidak ada aksi yang diambil dalam tabel anak ketika
barisEbaris dihapus dari tabel induk atau nilaiEnilai dalam kolom terkait
dalam tabel induk diupdate.
1. S:T D:(D#T 'ilaiEnilai dalam kolomEkolom yang mengkait dari
tabel anak diset ke nilai default mereka ketika barisEbaris dihapus dari
tabel induk atau kolom terkait dari tabel induk diupdate.
!etika kita mendefinisikan foreign key dengan
69:)<' !:=(id"matkul) 9::9:'%:S matkul(id"matkul)
2aka perintah 6' D:#:T: dan 6' DPD(T: nya berE6psi 9:ST9)%T
karena defaultnya dari references foreign key, yang artinya tidak boleh
dihapus atau diupdate. )tulah yang menyebabkan error bila kita
mendelete atau mengapdate table induk.
%oba sekarang kita ubah struktur table dari mhs dengan merubah
references foreign key dengan opsi 6' D:#:T: dan 6' DPD(T:
%(S%(D:.
!arena kita menggunakan 6PS) %(S%(D: pada 6' D:#:T: dan 6'
DPD(T: nya maka bila kita menghapus salah satu kolom pada table
induk maka table anak pun akan terhapus juga. Terlihat bah&a data
mahasis&a yang bernama (diputra (rtupida dihapus karena (diputra
(rtupida mengambil matkul dengan id F)*2/? dimana id tersebut telah
dihapus pada table matkul.
=ang lainnya silakan impro5e sendiri. Saran kalau kita ingin
merelasikan foreign key biasakan menggunakan perintah 6' DPD(T:
dan 6' D:#:T: dengan 6PS) yang disesuaikan dengan kebutuhan.
Dalam artikel ini, saya akan coba bahas dalam blog ini mengenai
bagaimana cara mengubah struktur tabel menggunakan query SQL.
Meskipun untuk mengubah struktur tabel, khususnya pada MySQL ini,
dapat kita lakukan dengan mudah menggunakan tool atau interface
seperti PhpMyAdmin atau a!icat atau yang lain, namun" se#enak kita
lupakan tool$tool tersebut. Mengapa demikian% yap". kita mungkin
tidak akan menduga, ketika di suatu saat kita dipaksa tidak boleh
menggunakan tool seperti di atas dan mau tidak mau harus
menggunakan SQL command untuk mengatur administrasi database.
&oleh sa#a kita menggunakan tool, namun basic commandsnya #angan
sampai diabaikan. &ukan begitu mbak 'lis% (salah satu member
saya) *ebetulan beliau ini sedang bingung karena ada tugas dari
dosennya. Mudah$mudahan dari postingan artikel ini men#adi tidak
bingung lagi
+*" lan#ut"
Ada beberapa proses yang termasuk dalam pengubahan struktur
dalam tabel, yaitu ,
menambah field baru dalam suatu tabel,
mengubah nama field,
mengubah tipe data field,
membuat primary key
mengubah properti field,
menghapus primary key,
ah.. akan kita bahas satu persatu proses di atas. Mmm" tapi
enaknya kita buat dalam studi kasus sa#a ya.
Andaikan kita sebelumnya telah memiliki tabel dengan struktur
sebagai berikut,
!ie- source print %
&'CREATE TA(LE m)#
*'(
'nim +a,-)a,(.),
/'nama +a,-)a,(!),
5't0lla)i, +a,-)a,(&!)
1')
.rus" nantinya kita akan ubah struktur tabel yang telah kita miliki di
atas.
Menambah Field Baru
Sebagai contoh misalkan kita akan menambahkan field baru dengan
nama /asalSekolah0 bertipe 1archar(23) sebagai field terakhir dari
tabel, perintah SQL nya adalah
!ie- source print %
&'ALTER TA(LE m)# A22 a#al%3k4la) VARCHAR(*!)$
Anda #uga dapat menyisipkan field /asalSekolah0 tersebut sebagai field
pertama dalam tabel /mhs0 dengan perintah SQL sbb,
!ie- source print %
&'ALTER TA(LE m)# A22 a#al%3k4la) VARCHAR(*!) 5IR%T$
&agaimana bila kita ingin field /asalSekolah0 ini diletakkan setelah field
/nama0% 4ampang sekali caranya, cukup berikan perintah berikut ini
!ie- source print %
&'ALTER TA(LE m)# A22 a#al%3k4la) VARCHAR(*!) A5TER nama$
Mengubah Nama Field
Sebagai contoh misalkan kita akan mengubah nama field /nama0
men#adi /namaMhs0. Perhatikan perintah SQL berikut ini
!ie- source print %
&'ALTER TA(LE m)# CHAN6E nama namaM)# VARCHAR(.)$
Mengubah Tipe Data Field
Sebagai contoh misalkan kita akan mengubah tipe data dari field
/tgllahir0 men#adi DA.', maka perintah SQL nya,
!ie- source print %
&'ALTER TA(LE m)# CHAN6E t0lla)i, t0lla)i, 2ATE$
5atatan,
Perhatikan perintah di atas bah-a field /tgllahir0 ditulis 2 kali. 6al ini
dilakukan apabila tidak ada perubahan nama field.
Membuat Primary Key
Misalkan kita akan membuat field /nim0 sebagai kunci atau primary key
nya. Maka perintahnya adalah,
!ie- source print %
&'ALTER TA(LE m)# A22 PRIMARY KEY (nim)$
&agaimana bila kita ingin lebih dari satu field sebagai kuncinya
sekaligus% 7a" mudah sa#a tinggal berikan perintah SQL seperti ini
!ie- source print %
&'ALTER TA(LE namata73l A22 PRIMARY KEY (8i3ld&, 8i3ld*, ''')$
Mengubah Properti Field
7ang dimaksud mengubah properti field, misalnya kita menambahkan
auto increment pada suatu field atau kita mengatur suatu field tidak
boleh 8LL (berisi data kosong). Sebagai contoh misalnya kita akan
memberikan auto increment pada field /nim0 (meskipun 9M
menggunakan auto increment itu tidak boleh). 9ngat ya" untuk auto
increment ini hanya dapat diberikan pada field yang bertipe 9.'4':
sa#a. +leh karena itu ketika akan memberikan auto increment, maka
sekaligus kita ubah tipe data /nim0 men#adi 9.'4':. Satu lagi yang
penting bah-a field yang akan diberikan auto increment haruslah
berupa kunci (key). +leh karena itu kita sebelumnya harus sudah
memilih /nim0 sebagai kunci nya. &erikut ini adalah perintah SQL untuk
memberikan auto increment pada /nim0 dengan asumsi field ini sudah
men#adi kunci.
!ie- source print %
&'ALTER TA(LE m)# CHAN6E nim nim INT AUTO_INCREMENT$
Sedangkan berikut ini perintah SQL untuk menghapus auto increment
dari yang sudah kita set di atas
!ie- source print %
&'ALTER TA(LE m)# CHAN6E nim nim INT$
*emudian, bagaimana bila kita ingin supaya suatu field tidak boleh
kosong (8LL) datanya atau dengan kata lain, data untuk field
tersebut harus terisi% Mudah sa#a, kita hanya tambahkan properti +.
8LL pada field yang kita inginkan. Misalkan kita set supaya field
/tgllahir0 tidak boleh kosong, perintah SQL nya adalah,
!ie- source print %
&'ALTER TA(LE m)# CHAN6E t0lla)i, t0lla)i, 2ATE NOT NULL$
*ebalikannya, bagaimana bila kita ingin mengembalikan /tgllahir0 ini
memperbolehkan data kosong% 7a.. cukup ubah dari +. 8LL
men#adi 8LL.
!ie- source print %
&'ALTER TA(LE m)# CHAN6E t0lla)i, t0lla)i, 2ATE NULL$
Menghapus Primary Key
Mmm.. untuk menghapus primary key, kita hanya bisa menghapus
semuanya (tidak satu persatu) apabila terdapat lebih dari satu primary
key. Adapun perintah untuk menghapus primary key yang ada dalam
tabel /mhs0 adalah,
!ie- source print %
&'ALTER TA(LE m)# 2ROP PRIMARY KEY$
+*" mudah$mudahan artikel ini berguna bagi Anda, khususnya mbak
'lis ya Sudah tidak bingung kan mbak%
SQL DASAR
2embuat database baru.
2embuat table baru.
4 Type column
4 )ndeGes dan !eys
2anipulasi data.
4 )nserting
4 9etrie5ing
4 Dpdateing
4 Deleting
2engubah table.
1. Membuat Database Baru
2enampilkan database
m9#:l; %HO< 2ATA(A%E%$
2embuat database
m9#:l; CREATE 2ATA(A%E [Nama databasemu]$
2enggunakan database
m9#:l; U%E [Nama databasemu]$
2enghapus database
m9#:l; 2ROP 2ATA(A%E [Nama databasemu]$
2. Membuat Table Baru
2enampilkan table
m9#:l; %HO< TA(LE% 5ROM [Nama databasemu]$
2embuat table
m9#:l; CREATE TA(LE [Nama tablemu] ( [nama column] [type
column],[...])$
%ontohnya8
m9#:l; CREATE TA(LE anggota ( ID int(100), Nama
varchar(2))$
2enampilkan column
m9#:l; %HO< COLUMN% 5ROM [Nama tablemu]$
2enghapus table
m9#:l; 2ROP TA(LE [Nama tablemu]$
Type column yang umum digunakan dalam 2ySA#8
Type String
4 char
4 5archar
4 teGt
4 blob
Type 'umeric
4 int
4 tinyint
4 int Herofill
4 int not null
4 float
4 double
4 decimal
2enambahkan )ndeGing dan !eys kedalam Table8
m9#:l; ALTER TA(LE [Nama tablemu] A22 IN2E= ([Nama column
yang ingin diberi!an inde"])$
%ontohnya8
m9#:l; ALTER TA(LE anggota A22 IN2E= (Nama)$
m9#:l; CREATE TA(LE [Nama tablemu] ( [nama column] [type
column],[...],PRIMARY KEY ([nama column yang ingin
diberi!an !ey]))$
%ontohnya8
m9#:l; CREATE TA(LE anggota ( ID int(100), Nama
varchar(2)#PRIMARY KEY (ID))$
3. Man!ulas Data
2emasukan data
m9#:l; IN%ERT INTO [Nama tablemu] ([Nama column]) VALUE%
([Isi$Nilai column])$
%ontohnya8
m9#:l; IN%ERT INTO anggota (ID# Nama) VALUE% (1#%&ustian%)$
2engupdate data
m9#:l; UP2ATE [Nama tablemu] %ET [Nama column]>[Isi$Nilai
column]<HERE ['ondisi yang data diingin!an]$
%ontohnya8
m9#:l; UP2ATE anggota %ET Nama>(&ustian% <HERE ID>1$
2enghapus data
m9#:l; 2ELETE 5ROM [Nama tablemu] <HERE ['ondisi yang data
diingin!an]$
%ontohnya8
m9#:l; 2ELETE 5ROM anggota <HERE ID>1$
". Men#uba$ Table
2engganti nama table
m9#:l; ALTER TA(LE [Nama tablemu] RENAME [Nama yang baru]$
%ontohnya8
m9#:l; ALTER TA(LE anggota RENAME anggota!u$
2enambah column ke dalam table
m9#:l; ALTER TA(LE [Nama tablemu] A22 [nama column] [type
column],[...]$
%ontohnya8
m9#:l; ALTER TA(LE anggota A22 Nama char(100)$
2enghapus column
m9#:l; ALTER TA(LE [Nama tablemu] 2ROP [nama column]$
%ontohnya8
m9#:l; ALTER TA(LE anggota 2ROP Nama$
2engganti nama dan type column
m9#:l; ALTER TA(LE [Nama tablemu] CHAN6E [nama
column] [Nama column yang baru] [type column], [...]$
%ontohnya8
m9#:l; ALTER TA(LE anggota CHAN6E Nama
)sername varchar(2)$
Demikian sebagian mengenai 2ySA# masih banyak lagi artikel yang
akan aku tulis di =usian$log ini diantaranya 6perator Di Dalam 2ySA#,
Auery 2ySA# dan masih banyak lagi. Semoga itu semua dapat
membantu kalian untuk belajar 2ySA# dengan mudah.