- Level
Database
- Level
Tabel
- Membuat tableUntuk membuat table minimal anda harus menentukan namanya dan
tipe kolom yang anda inginkan.
Sintaks yang paling sederhana (tanpa ada
definisi lain) adalah :
CREATE TABLE nama_tbl
(kolom1 tipekolom1(),kolom2 tipekolom2(), …)
Contoh :
Anda ingin membuat table dengan nama profil yang
memiliki kolom nama (bertipe
char, lebar 20), kolom umur
(bertipe integer), kolom jenis_kelamin (bertipe
enum, berisi M dan F).
CREATE
TABLE profil ( nama
CHAR(20),
umur INT NOT NULL,
jenis_kelamin
ENUM(‘F’,’M’)
)
Sedangkan perintah yang agak lengkap dalam membuat sebuah
table adalah dengan menyertakan definisi tertentu. Misalnya perintah seperti
ini :
CREATE TABLE peserta ( No SMALLINT UNSIGNED NOT NULL
AUTO_INCREMENT,
Nama CHAR(30) NOT NULL, BidangStudi ENUM(‘TS’,’WD’) NOT
NULL,
PRIMARY KEY (No),
INDEX (Nama, BidangStudi)
)
Perintah di atas berarti membuat table peserta dengan kolom No sebagai PRIMARY KEY yaitu
indeks table yang unik yang tidak bisa diduplikat dengan atribut AUTO_INCREMENT yaitu
kolom yang otomatis dapat mengurutkan angka yang diisikan padanya. Sedangkan
kolom Nama dan
BidangStudi dijadikan
indeks biasa.
Membuat indeks pada tableMenambahkan indeks pada table yang sudah ada baik yang unik
ataupun yang biasa.
Sintaksnya :
CREATE INDEX nama_index ON nama_tbl
(nama_kolom)
Menghapus tableUntuk menghapus table dalam database tertentu. Jika dilakukan
maka semua isi, indeks dan atribut lain akan terhapus.
Sintaksnya :
DROP
TABLE nama_tbl
Menghapus indeksUntuk menghapus
indeks pada suatu table.
Sintaksnya :
DROP INDEX nama-index ON nama_tbl
Melihat
informasi tableUntuk melihat table apa saja yang
ada di database tertentu.
Sintaksnya :
SHOW TABLES FROM nama_db
Sedangkan untuk melihat deskripsi table atau informasi tentang
kolom gunakan sintaks :
DESC nama_tbl nama_kolom
atau
SHOW COLUMNS FROM
nama_tbl FROM nama_db
Mendapatkan atau menampilkan
informasi dari tableUntuk
menampilkan isi table dengan option-option tertentu. Misalnya untuk menampilkan
seluruh isi table digunakan :
SELECT * FROM nama_tbl
Untuk
menampilkan kolom-kolom tertentu saja :
SELECT kolom1,kolom2,... FROM nama_tbl
Untuk
menampilkan isi suatu kolom dengan kondisi tertentu
SELECT kolom1 FROM nama_tbl WHERE kolom2=isikolom
Modifikasi struktur tableDapat digunakan untuk mengganti nama table atau mengubah
strukturnya seperti manambah kolom atau indeks, menghapus kolom atau indeks,
mengubah tipe kolom dsb. Sintaks umum :
ALTER
TABLE nama_tbl action
Untuk
menambah kolom baru di tempat tertentu dapat menggunakan :
ALTER
TABLE nama_tblADD kolom_baru type()
definisi
Untuk menambah kolom_baru
bertipe integer setelah kolom1
digunakan :
ALTER TABLE nama_tblADD kolom_baru INT NOT NULL AFTER kolom1
Untuk menambah indeks baru pada table tertentu baik yang unik
ataupun yang biasa:
ALTER
TABLE nama_tbl ADD INDEX nama_index (nama_kolom)
ALTER TABLE nama_tbl ADD UNIQUE
nama_indeks (nama_kolom)
ALTER TABLE nama_tbl ADD PRIMARY KEY
nama_indeks (nama_kolom)
Untuk mengubah nama kolom dan definisinya, misalnya mengubah
nama kolom_baru dengan tipe integer menjadi new_kolom dengan tipe char dengan
lebar 30 digunakan:
ALTER
TABLE nama_tblCHANGE kolom_baru new_kolom
CHAR(30) NOT NULL
Untuk menghapus suatu kolom dan seluruh atributnya, misal
menghapus kolom1
:
ALTER
TABLE nama_tbl DROP kolom1
Untuk menghapus indeks baik yang unik ataupun yang biasa
digunakan :
ALTER TABLE nama_tbl DROP nama_indexALTER TABLE nama_tbl DROP PRIMARY KEY
- Modifikasi informasi dalam table.
Untuk menambah record atau baris baru dalam table, sintaksnya
:
INSERT
INTO nama_tbl (nama_kolom) VALUES (isi_kolom)
atau INSERT INTO nama_tbl SET
nama_kolom=isi_kolom
Misalnya untuk menambah dua baris pada table profil
dengan isi nama = deden
& ujang dan isi umur = 17
& 18 adalah :
INSERT INTO profil (nama,umur) VALUES
(deden,17), (ujang,18)
atau
INSERT
INTO profil SET nama=deden, umur=17INSERT INTO profil SET nama=ujang,
umur=18
Untuk memodifikasi record atau baris yang sudah ada yang
bersesuaian dengan suatu kolom. Misalnya untuk mengubah umur deden menjadi 18
pada contoh di atas dapat digunakan sintaks :
UPDATE
profil SET umur=18 WHERE nama=deden
Untuk menghapus record atau
baris tertentu dalam suatu table. Misalnya untuk menghapus baris yang ada nama
ujang digunakan sintaks :
DELETE FROM profil WHERE
nama=ujang
Jika
WHERE tidak disertakan maka semua isi dalam table profil akan terhapus.
- Tipe-tipe data MySQL
MySQL dapat mengetahui
beberapa tipe data antara lain :
- Data Numerik MySQL
dapat menerima masukan berupa angka-angka yang dibagi atas integer (angka
tanpa pecahan) dan floating-point (angka dengan pecahan). MySQL
juga mengerti notasi scientific yaitu integer atau floating-point yang diikuti
tanda ‘e’ atau ‘E’, tanda ‘+’ atau ‘-‘. Misalnya angka 1.34E+12 atau 3.23e-5.
- Data Karakter/StringMerupakan
deretan huruf yang membentuk kata yang diapit oleh tanda petik (‘’) atau tanda
petik ganda (“”).
- Data WaktuMerupakan
data yang berisi tanggal (date) dan jam (time) misalnya “2001-10-15” untuk
tanggal dengan format YYYY-MM-DD dan “12:45:15” untuk jam dengan format hh:mm:ss.
- Data kosong (NULL)NULL
berarti kosong atau tidak diisi data atau bisa juga berarti data yang tidak
jelas, data yang hilang ataupun yang lainnya.
- Tipe-tipe
kolom MySQL
Setiap
table yang dibuat dalam database selalu terdiri atas kolom-kolom. Katika anda
membuatnya dengan perintah CREATE
TABLE, anda harus menentukan tipe masing-masing kolom.
Tiap tipe kolom memiliki karakteristik berikut :
- Jenis harga apa yang dapat
diisikan
- Berapa banyak ruang yang
dapat menampung harga tersebut
- Bagaimana harga dari tipe
tersebut dibandingkan dan disaring
- Apakah tipe tersebut boleh
mengisi dengan NULL atau tidak
- Apakah tipe tersebut boleh
diindeks atau tidak
Secara
garis besar kolom MySQL terbagi menjadi tiga tipe yaitu :
- Tipe kolom Numerik
- Tipe kolom Karakter/String
- Tipe kolom Waktu
Selanjutnya akan
dijelaskan dengan singkat anggota-anggotanya.
- Tipe Numerik
Tipe ini
untuk harga integer dan floating-point. Untuk integer kolom haruslah PRIMARY
KEY atau indeks yang unik jika ia diberi atribut AUTO_INCREMENT (dapat otomatis
mengurutkan angka). Jika diberikan atribut UNSIGNED berarti angka tidak boleh
negatif. Sedangkan atribut ZEROFILL menandakan bahwa angka diawali dengan angka
nol.
- TINYINTBerarti
integer dengan range yang sangat kecil yaitu –27 sampai 27-1
atau 0 sampai 28-1 jika UNSIGNED. Atribut yang dibolehkan adalah
AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau
0 jika NOT NULL dengan peyimpanan 1 byte.
- SMALLINT
Berarti integer dengan range yang kecil yaitu –215
sampai 215-1 atau 0 sampai 216-1 jika UNSIGNED. Atribut
yang dibolehkan adalah AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default
adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 2 byte.
- MEDIUMINTBerarti
integer dengan range yang sangat kecil yaitu –223 sampai 223-1
atau 0 sampai 224-1 jika UNSIGNED. Atribut yang dibolehkan adalah
AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau
0 jika NOT NULL dengan peyimpanan 3 byte.
- INTBerarti
integer dengan range yang normal yaitu –231 sampai 231-1
atau 0 sampai 232-1 jika UNSIGNED. Atribut yang dibolehkan adalah
AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau
0 jika NOT NULL dengan peyimpanan 4 byte.
- BIGINTBerarti
integer dengan range yang sangat kecil yaitu –263 sampai 263-1
atau 0 sampai 264-1 jika UNSIGNED. Atribut yang dibolehkan adalah
AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau
0 jika NOT NULL dengan peyimpanan 8 byte.
- FLOAT
Berarti floating-point dengan range kecil yaitu antara +1.175494351E-38
sampai +3.402823466E+38 serta dengan single presisi. Atribut yang
dibolehkan adalah ZEROFILL. Harga default NULL jika bisa atau 0 jika NOT NULL.
Tempat penyimpanan 4 byte.
- DOUBLE
Berarti floating-point dengan range besar yaitu antara +2.22507385072014E-308
sampai +1.7976931348623157E308 serta dengan double presisi. Atribut
yang dibolehkan adalah ZEROFILL. Harga default NULL jika bisa atau 0 jika NOT
NULL. Tempat penyimpanan 8 byte.
- DECIMAL(M,D) atau
NUMERIC(M,D)Berarti
floating-point yang tersimpan sebagai string (1 byte untuk setiap digit, tanda
desimal, atau tanda ’-‘). Range harga sama seperti DOUBLE. Atribut yang
dibolehkan adalah ZEROFILL. Tempat penyimpanan sebesar M byte. Jika D diisi 0
berarti tidak punya nilai desimal.
- Tipe String
CHAR(M)
Karakter
dengan panjang 0 sampai M byte. Atribut yang dibolehkan adalah BINARY. Harga
default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat pemyimpanan M
byte.
VARCHAR
Variabel
karakter dengan panjang 0 sampai M byte. Atribut yang dibolehkan adalah BINARY.
Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat pemyimpanan
M+1 byte.
TINYTEXT
Teks
berukuran kecil dengan panjang 0 sampai 28-1 byte. Harga default
adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak
panjang harga plus 1 byte.
TEXT
Teks yang
normal dengan panjang 0 sampai 216-1 byte. Harga default adalah NULL
jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga
plus 2 byte.
MEDIUMTEXT
Teks
berukuran sedang dengan panjang 0 sampai 224-1 byte. Harga default
adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak
panjang harga plus 3 byte.
LONGTEXT
Teks
berukuran besar dengan panjang 0 sampai 232-1 byte. Harga default
adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak
panjang harga plus 4 byte.
ENUM(“harga1”,”harga2”,…)
Berarti
kolom hanya boleh diisi dengan salah satu dari harga yang ada. Harga default
adalah NULL jika bisa atau harga1 jika NOT NULL. Tempat penyimpanan adalah 1
byte untuk enumerasi dengan anggota 1 sampai 255 dan 2 byte untuk enumerasi
dengan anggota 256 sampai 65535.
SET(“harga1”,”harga2”,…)
Berarti
kolom boleh dikosongi atau diisi dengan beberapa harga dari daftar harga yang
ada. Harga default adalah NULL jika bisa atau ” “ jika NOT NULL. Tempat
penyimpanan adalah 1 byte untuk set
dengan anggota 1 sampai 8, 2 byte untuk set dengan anggota 9 sampai 16,
3 byte untuk set dengan anggota 17 sampai 24, 4 byte untuk set dengan anggota
25 sampai 32, atau 8 byte untuk set dengan anggota 33 sampai 64.
- Tipe WaktuDATE
Untuk
kolom tanggal dengan format YYYY-MM-DD dan range antara “1000-01-01”
sampai “9999-12-31”. Harga default adalah NULL jika bisa atau “0000-00-00” jika
NOT NULL. Tempat penyimpanan 3 byte.
TIME
Untuk
kolom jam dengan format hh:mm:ss atau -hh:mm:ss untuk harga
negatif. Range harga antara “-838:59:59” sampai “838:59:59”. Harga default
adalah NULL jika bisa atau “00:00:00”
jika NOT NULL. Tempat penyimpanan 3 byte.
DATETIME
Gabungan
antar hari dan jam dengan format YYYY-MM-DD hh:mm:ss dan range antar
“1000-01-01 00:00:00” sampai “9999-12-31 23:59:59”.
Harga default adalah NULL jika bisa atau “0000-00-00 00:00:00”
jika NOT NULL. Tempat penyimpanan 8 byte.
TIMESTAMP
Hampir
sama dengan DATETIME tapi dengan format YYYYMMDDhhmmss dan range antara
19700101000000 sampai suatu saat di tahun 2037. Harga default adalah hari dan
jam saat itu. Tempat penyimpanan 4 byte.
YEARUntuk
kolom tahun denga format YYYY dan range antara 1900 sampai 2155. Harga
default adalah NULL jika bisa atau 0000 jika NOT NULL. Tempat penyimpanan 3
byte.