Dalammodul ini yang paling penting adalah dengan memperbanyak latihan danmempraktekkan semua yang telah disampaikan. Disini hanya akan diberikanpengenalan tentang sintaks SQL dalam MySQL yang sederhana dan paling seringdigunakan baik untuk penggunaan biasa ataupun untuk administratif.
Berikut adalah beberapa sintaks dasar SQL dalam MySQL
a. Level Database
Membuat database
Untuk membuat database baru, sehingga tidak berlaku jikadatabase sudah ada atau anda tidak memiliki privilege.
Sintaksnya:
CREATE DATABASE nama_db
Menghapus database
Untuk menghapus database beserta seluruh table didalamnya. Perintah ini tidak berlaku jika database tidak ada atau anda tidakmemiliki privilege. Sintaksnya:
DROP DATABASE nama_db
Menggunakan database
Untuk menjadikan database menjadi default dan referensidari table yang nantinya anda gunakan. Perintah ini tidak berlaku jika databasetidak ada atau anda tidak memiliki privilege. Sintaksnya :
USE nama_db
Menampilkan database
Untuk menampilkan daftar yang ada dalam system saat itu. Sintaksnya:
SHOWDATABASES
Tampilannya adalah :
+-----------+
|Database |
+-----------+
|contoh_db |
|mysql |
|test |
|ujian |
+-----------+
4rows in set (0.00 sec)
b. Level Tabel
Membuat table
Untuk membuat table minimal anda harus menentukan namanyadan tipe kolom yang anda inginkan. Sintaks yang paling sederhana (tanpa adadefinisi lain) adalah :
CREATE TABLE nama_tbl
(kolom1 tipekolom1(),kolom2tipekolom2(), )
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). Sintaksnya:
CREATETABLE profil (
namaCHAR(20), umur INT NOT NULL,
jenis_kelaminENUM(F,M) )
Sedangkanperintah yang agak lengkap dalam membuat sebuah table adalah dengan menyertakandefinisi tertentu. Misalnya perintah seperti ini :
CREATE TABLE peserta (
No SMALLINT UNSIGNED NOT NULLAUTO_INCREMENT,
Nama CHAR(30) NOT NULL,
BidangStudi ENUM(TS,WD) NOTNULL,
PRIMARY KEY (No),
INDEX (Nama, BidangStudi) )
Perintahdi atas berarti membuat table peserta dengan kolom No sebagai PRIMARY KEY yaitu indeks table yangunik yang tidak bisa diduplikat dengan atribut AUTO_INCREMENT yaitukolom yang otomatis dapat mengurutkan angka yang diisikan padanya. Sedangkankolom Nama dan BidangStudi dijadikan indeks biasa.
Membuat indeks pada table
Menambahkan indeks pada table yang sudah ada baik yangunik ataupun yang biasa.
Sintaksnya :
CREATE INDEXnama_index ON nama_tbl (nama_kolom)
CREATE UNIQUEINDEX nama_index ON nama_tbl (nama_kolom)
Menghapus table
Untuk menghapus table dalam database tertentu. Jikadilakukan maka semua isi, indeks dan atribut lain akan terhapus. Sintaksnya :
DROPTABLE nama_tbl
Menghapusindeks
Untukmenghapus indeks pada suatu table. Sintaksnya :
DROPINDEX nama-index ON nama_tbl
Melihatinformasi table
Untukmelihat table apa saja yang ada di database tertentu. Sintaksnya :
SHOW TABLES FROM nama_db
Sedangkan untuk melihat deskripsi table atau informasitentang kolom gunakan sintaks :
Untuk menampilkan isi table dengan option-optiontertentu. Misalnya untuk menampilkan seluruh isi table digunakan :
SELECT * FROM nama_tbl
Untuk menampilkan kolom-kolom tertentu saja :
SELECT kolom1,kolom2,... FROMnama_tbl
Untuk menampilkan isi suatu kolom dengan kondisi tertentu
SELECT kolom1 FROM nama_tbl WHERE kolom2=isikolom
Modifikasi struktur table
Dapatdigunakan untuk mengganti nama table atau mengubah strukturnya seperti manambahkolom atau indeks, menghapus kolom atau indeks, mengubah tipe kolom dsb. Sintaks umum :
ALTER TABLE nama_tbl action
Untuk menambah kolom baru di tempat tertentu dapatmenggunakan :
ALTER TABLE nama_tbl
ADD kolom_barutype() definisi
Untuk menambah kolom_baru bertipeinteger setelah kolom1 digunakan :
ALTER TABLEnama_tbl
ADD kolom_baru INT NOT NULLAFTER kolom1
Untuk menambah indeks baru pada table tertentu baik yangunik ataupun yang biasa:
ALTER TABLE nama_tbl ADD INDEX nama_index (nama_kolom)
ALTER TABLEnama_tbl ADD UNIQUE nama_indeks (nama_kolom)
ALTER TABLEnama_tbl ADD PRIMARY KEY nama_indeks (nama_kolom)
Untuk mengubah nama kolom dan definisinya, misalnyamengubah nama kolom_baru dengan tipe integer menjadi new_kolom dengan tipe chardengan lebar 30 digunakan:
ALTER TABLE nama_tbl
CHANGE kolom_barunew_kolom CHAR(30) NOT NULL
Untuk menghapus suatu kolom dan seluruh atributnya, misalmenghapus kolom1 :
ALTER TABLE nama_tbl DROP kolom1
Untuk menghapus indeks baik yang unik ataupun yang biasadigunakan :
ALTER TABLEnama_tbl DROP nama_index
ALTERTABLE nama_tbl DROP PRIMARY KEY
Modifikasi informasi dalam table.
Untukmenambah 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 INSERTINTO profil SET nama=deden, umur=17
INSERT INTO profil SET nama=ujang,umur=18
Untukmemodifikasi record atau baris yang sudah ada yang bersesuaian dengan suatukolom. Misalnya untuk mengubah umur deden menjadi 18 pada contoh di atas dapatdigunakan sintaks :
UPDATEprofil SET umur=18 WHERE nama=deden
Untuk menghapus record atau baris tertentudalam suatu table. Misalnya untuk menghapus baris yang ada nama ujang digunakan sintaks :
DELETEFROM profil WHERE nama=ujang
JikaWHERE tidak disertakan maka semua isi dalam table profil akan terhapus.
2. Tipe-tipe data MySQL
MySQL dapat mengetahui beberapatipe data antara lain :
Data Numerik
MySQL dapat menerima masukan berupa angka-angka yangdibagi atasa integer (angka tanpa pecahan) dan floating-point (angka denganpecahan).
MySQL juga mengerti notasi scientific yaitu integer ataufloating-point yang diikuti tanda e atau E, tanda + atau -. Misalnyaangka 1.34E+12 atau 3.23e-5.
Data Karakter/String
Merupakan deretan huruf yang membentuk kata yang diapitoleh tanda petik () atau tanda petik ganda ().
Data Waktu
Merupakan data yang berisi tanggal (date) dan jam (time)misalnya 2001-10-15 untuk tanggal dengan format YYYY-MM-DD dan12:45:15 untuk jam dengan format hh:mm:ss.
Data kosong (NULL)
NULL berarti kosong atau tidak diisi data atau bisa jugaberarti data yang tidak jelas, data yang hilang ataupun yang lainnya.
2.1Tipe-tipe kolom MySQL
Setiap table yang dibuat dalam database selalu terdiriatas kolom-kolom. Katika anda membuatnya dengan perintah CREATE TABLE, anda harus menentukan tipe masing-masing kolom. Tiap tipekolom memiliki karakteristik berikut :
Jenis harga apayang dapat diisikan
Berapa banyak ruangyang dapat menampung harga tersebut
Bagaimana hargadari tipe tersebut dibandingkan dan disaring
Apakah tipetersebut boleh mengisi dengan NULL atau tidak
Apakah tipetersebut boleh diindeks atau tidak
Secara garis besar kolom MySQL terbagi menjadi tiga tipeyaitu :
Tipe kolom Numerik
Tipe kolom Karakter/String
Tipe kolom Waktu
Selanjutnyaakan dijelaskan dengan singkat anggota-anggotanya.
2.2 Tipe Numerik
Tipeini untuk harga integer dan floating-point. Untuk integer kolom haruslahPRIMARY KEY atau indeks yang unik jika ia diberi atribut AUTO_INCREMENT (dapatotomatis mengurutkan angka). Jika diberikan atribut UNSIGNED berarti angkatidak boleh negatif. Sedangkan atribut ZEROFILL menandakan bahwa angka diawalidengan angka nol.
TINYINT
Berarti integer dengan range yang sangat kecil yaitu 27sampai 27-1 atau 0 sampai 28-1 jika UNSIGNED. Atributyang dibolehkan adalah AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga defaultadalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 1 byte.
SMALLINT
Berarti integer dengan range yang kecil yaitu 215sampai 215-1 atau 0 sampai 216-1 jika UNSIGNED. Atributyang dibolehkan adalah AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga defaultadalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 2 byte.
MEDIUMINT
Berarti integer dengan range yang sangat kecil yaitu 223sampai 223-1 atau 0 sampai 224-1 jika UNSIGNED. Atributyang dibolehkan adalah AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga defaultadalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 3 byte.
INT
Berarti integer dengan range yang normal yaitu 231sampai 231-1 atau 0 sampai 232-1 jika UNSIGNED. Atributyang dibolehkan adalah AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga defaultadalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 4 byte.
BIGINT
Berarti integer dengan range yang sangat kecil yaitu 263sampai 263-1 atau 0 sampai 264-1 jika UNSIGNED. Atributyang dibolehkan adalah AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalahNULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 8 byte.
FLOAT
Berartifloating-point dengan range kecil yaitu antara +1.175494351E-38 sampai +3.402823466E+38serta dengan single presisi. Atribut yang dibolehkan adalah ZEROFILL. Harga default NULL jika bisa atau 0 jika NOT NULL. Tempatpenyimpanan 4 byte.
DOUBLE
Berartifloating-point dengan range besar yaitu antara +2.22507385072014E-308sampai +1.7976931348623157E308 serta dengan double presisi. Atributyang dibolehkan adalah ZEROFILL. Harga defaultNULL 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 (1byte untuk setiap digit, tanda desimal, atau tanda -). Rangeharga sama seperti DOUBLE. Atribut yang dibolehkan adalah ZEROFILL. Tempat penyimpanan sebesar M byte. Jika D diisi 0 berartitidak punya nilai desimal.
2.3 TipeString
CHAR(M)
Karakter dengan panjang 0 sampai M byte. Atributyang dibolehkan adalah BINARY. Hargadefault adalah NULL jika bisa atau jika NOT NULL. Tempatpemyimpanan M byte.
VARCHAR
Variabel karakter dengan panjang 0 sampai M byte. Atributyang dibolehkan adalah BINARY. Hargadefault adalah NULL jika bisa atau jika NOT NULL. Tempatpemyimpanan M+1 byte.
TINYTEXT
Teks berukuran kecil dengan panjang 0 sampai 28-1byte. Harga default adalah NULL jika bisa atau jika NOT NULL. Tempatpenyimpanan sebanyak panjang harga plus 1 byte.
TEXT
Teks yang normal dengan panjang 0 sampai 216-1byte. Harga default adalah NULL jika bisa atau jika NOT NULL. Tempatpenyimpanan sebanyak panjang harga plus 2 byte.
MEDIUMTEXT
Teks berukuran sedang dengan panjang 0 sampai 224-1byte. Harga default adalah NULL jika bisa atau jika NOT NULL. Tempatpenyimpanan sebanyak panjang harga plus 3 byte.
LONGTEXT
Teks berukuran besar dengan panjang 0 sampai 232-1byte. Harga default adalah NULL jika bisa atau jika NOT NULL. Tempatpenyimpanan sebanyak panjang harga plus 4 byte.
ENUM(harga1,harga2, )
Berarti kolom hanya boleh diisi dengan salah satu dariharga yang ada. Harga default adalah NULL jika bisa atau harga1 jika NOT NULL. Tempatpenyimpanan adalah 1 byte untuk enumerasi dengan anggota 1 sampai 255 dan 2byte untuk enumerasi dengan anggota 256 sampai 65535.
SET(harga1,harga2, )
Berarti kolom boleh dikosongi atau diisi dengan beberapaharga 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 setdengan anggota 9 sampai 16, 3 byte untuk set dengan anggota 17 sampai 24, 4byte untuk set dengan anggota 25 sampai 32, atau 8 byte untuk set dengananggota 33 sampai 64.
2.4 TipeWaktu
DATE
Untuk kolom tanggal dengan format YYYY-MM-DD danrange antara 1000-01-01 sampai 9999-12-31. Harga default adalah NULL jikabisa atau 0000-00-00 jika NOT NULL. Tempat penyimpanan 3 byte.
TIME
Untuk kolom jam dengan format hh:mm:ss atau -hh:mm:ssuntuk harga negatif. Range harga antara -838:59:59 sampai 838:59:59. Hargadefault adalah NULL jika bisa atau 00:00:00 jika NOT NULL. Tempatpenyimpanan 3 byte.
DATETIME
Gabungan antar hari dan jam dengan format YYYY-MM-DDhh: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. Tempatpenyimpanan 8 byte.
TIMESTAMP
Hampir sama dengan DATETIME tapi dengan format YYYYMMDDhhmmssdan range antara 19700101000000 sampai suatu saat di tahun 2037. Harga defaultadalah hari dan jam saat itu. Tempat penyimpanan 4 byte.
YEAR
Untuk kolom tahun denga format YYYY dan rangeantara 1900 sampai 2155. Harga default adalah NULL jika bisa atau 0000 jika NOTNULL. Tempatpenyimpanan 3 byte.