LAMPIRAN A PERINTAH PADA MYSQL
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Perintah-Perintah Umum pada MySQL Perintah-perintah yang dibahas di lampiran ini hanya perintah-perintah umum yang sering digunakan saja. Tingkatan hak akses user (user privileges ) mempengaruhi bisa tidaknya seseorang melakukan perintah-perintah tertentu. Bila Anda memiliki akses setingkat admin/root, maka tidak ada kendala untuk menjalankan seluruh perintah yang ada. Tetapi, bila Anda adalah user biasa, maka sebaiknya tanyakanlah kepada Administrator Sistem Anda, hak akses apa saja yang Anda miliki. Perintah -perintah ini disusun secara alfabet.
Beberapa simbol bantuan digunakan dalam penulisan perintah dengan maksud sebagai berikut: ?
Simbol kurung siku “[“ dan “]” digunakan untuk mengapit perintah yang bersifat pilihan (optional). Bila ada lebih dari satu perintah di dalam tanda kurung siku, maka hanya salah satu dari perintah tersebut yang dapat dipilih.
?
Simbol kurung kurawal “{“ dan “}” digunakan untuk mengapit perintah yang bersifat mutlak. Bila ada lebih dari satu perintah di dalam tanda kurung kurawal, maka Anda harus memilih salah satu dari pilihan yang ada.
?
Simbol garis tegak lurus “|” digunakan sebagai pemisah antara pilihan yang ada.
?
Simbol titik yang berulang “,,,,,” menandakan adanya pengulangan perintah sebelumnya.
?
Perintah MySQL ditulis dengan huruf kapital tebal. Sedangkan nama database, tabel dan sebagainya ditulis dengan huruf biasa miring.
ALTER TABLE
Bentuk umum perintah: ALTER [IGNORE] TABLE nama_tabel jenis_tindakan Perintah ini digunakan untuk mengubah struktur tabel maupun sek adar mengganti nama tabel. Pilihan IGNORE digunakan bila terdapat nilai ganda di dalam sebuah tabel baru yang memiliki Primary Key, dan baris atau record tersebut akan dihapus dari tabel tersebut. Jenis tindakan yang dilakukan pada perintah ALTER TABLE ini adalah:
ADD [nama_kolom ] jenis_kolom [ FIRST | AFTER nama_kolom ] Digunakan untuk menambah kolom pada posisi di awal tabel [FIRST] atau setelah posisi kolom tertentu [AFTER]. Secara baku (default) penambahan kolom akan diletakkan pada akhir tabel.
2
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
ADD INDEX [nama_index] (nama_kolom) Digunakan untuk membuat index berdasarkan kolom tertentu. Antarnama kolom ditulis dengan tanda koma sebagai pemisahnya. Tidak bisa membuat index berdasarkan seluruh kolom yang ada di dalam tabel. Bila nama_index tidak ditentukan, maka MySQL akan membuatkan nama_index sesuai dengan urutan pertama nama_kolom. ADD PRIMARY KEY (nama_kolom) Digunakan untuk membuat PRIMARY KEY berdasarkan (beberapa) kolom tertentu. Primary key hanya boleh ada satu di dalam setiap tabel. ADD UNIQUE [nama_index]
(nama_kolom)
Digunakan untuk membuat index yang bersifat unik (unique) berdasarkan (beberapa) kolom tertentu. ALTER [COLUMN] nama_kolom {SET DEFAULT nilai | DROP DEFAULT} Digunakan untuk mengubah nilai default suatu kolom, atau menghapus nilai default tersebut. CHANGE [COLUMN] nama_kolom atribut_kolom_yang_baru Digunakan untuk mengubah nama dan atribut kolom yang lama dengan nama dan atribut kolom yang baru. Bila hanya atribut kolom saja yang diubah, maka Anda harus menyertakan juga nama kolom yang lama. DROP [COLUMN] nama_kolom Digunakan untuk menghapus sebuah kolom. Bila kolom tersebut termasuk dalam sebuah index, maka secara otomatis MySQL akan menghapusnya dari index tersebut. DROP INDEX nama_index Digunakan untuk menghapus sebuah index. DROP PRIMARY KEY Digunakan untuk menghapus Primary Key dari sebuah tabel. MODIFY [COLUMN] atribut_kolom_yang_baru Digunakan untuk mengubah atribut kolom yang sudah ada dengan atribut kolom yang baru. RENAME [AS] nama_tabel_yang_baru Digunakan untuk mengubah nama tabel. pilihan_tabel_lainnya Digunakan untuk menentukan pilihan_tabel_lainnya.
3
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Contoh: ? Menambah kolom baru pada posisi awal tabel mysql> ALTER TABLE siswa ADD nomor_siswa FIRST ;
? Menambah kolom baru dengan posisi setelah kolom tertentu mysql> ALTER TABLE siswa ADD nomor_ktp
AFTER
nama_siswa ;
? Menambah kolom baru pada posisi akhir tabel (default). mysql> ALTER TABLE siswa ADD nomor_siswa ;
? Menambah kolom baru dengan poisi setelah kolom tertentu mysql> ALTER TABLE siswa ADD nomor_ktp
AFTER
nama_siswa ;
? Menambah kolom baru pada posisi awal tabel mysql> ALTER TABLE siswa ADD nomor_siswa FIRST ;
? Menambah kolom baru dengan poisi setelah kolom tertentu mysql> ALTER TABLE siswa ADD nomor_ktp
AFTER
nama_siswa ;
? Mengganti nama kolom pada tabel sekaligus dengan menentukan jenis kolomnya: mysql> ALTER TABLE siswa CHANGE nomor_ktp nomor_sim VARCHAR(15) ;
? Mengganti jenis kolomnya saja, tapi tidak mengganti nama kolomnya. Dalam hal ini nama kolom harus disebutkan kedua-duanya walaupun tidak diganti. mysql> ALTER TABLE siswa CHANGE nomor_ktp nomor_ktp CHAR(15) ;
atau dengan cara lain: mysql> ALTER TABLE siswa MODIFY nomor_ktp CHAR(15) ;
? Mengganti nama Tabel siswa menjadi siswabaru: mysql> ALTER TABLE siswa RENAME siswabaru ;
? Menghapus kolom: mysql> ALTER TABLE siswa DROP COLUMN nomor_sepatu ;
? Menghapus index: mysql> ALTER TABLE siswa DROP INDEX index_sepatu ;
4
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
CREATE DATABASE Bentuk umum perintah: CREATE DATABASE nama_database Perintah ini digunakan untuk membuat sebuah database yang baru. Bila nama database tersebut telah digunakan sebelumnya, maka pesan error akan muncul.
Contoh: ? Membuat database baru dengan nama pasiendb: mysql> CREATE DATABASE pasiendb ;
? Membuat database baru dengan nama dokterdb: mysql> CREATE DATABASE dokterdb ;
CREATE FUNCTION Bentuk umum perintah: CREATE [AGGREGATE] FUNCTION nama_fungsi RETURNS {STRING | REAL | INTEGER} SONAME nama_librari Perintah ini digunakan untuk membuat sebuah fungsi baru yang Anda ciptakan sendiri (User Defined Function, UDF ), dan fungsi tersebut akan didaftarkan ke dalam tabel func pada database mysql. Pilihan setelah perintah RETURNS adalah nilai yang dihasilkan setelah fungsi tersebut dijalankan. Setelah SONAME adalah nama direktori di mana library yang digunakan berada.
CREATE INDEX Bentuk umum perintah: CREATE [UNIQUE] INDEX nama_index ON nama_tabel (nama_kolom) Perintah ini digunakan untuk membuat sebuah index yang baru berdasarkan kriteria pada tabel dan kolom tertentu. Contoh: ? Membuat index baru yang unik dengan nama indeks_siswa: mysql> CREATE UNIQUE INDEX indeks_siswa ON siswa (nama) ;
5
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
? Membuat index baru yang unik dengan nama indeks_siswa dan hanya menggunakan 10 karakter pertam a pada kolom nama. Hal ini baik dilakukan untuk efisiensi. Ingat, membuat file indeks yang kecil lebih baik daripada indeks yang besar. mysql> CREATE UNIQUE INDEX indeks_siswa ON siswa (nama(10)) ;
CREATE TABLE Bentuk umum perintah: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nama_tabel atribut_kolom pilihan_tabel_lainnya
Perintah ini digunakan untuk membuat sebuah tabel yang baru. Bila nama database tersebut telah digunakan sebelumnya, maka pesan error akan muncul, kecuali bila Anda gunakan pilihan TEMPORARY atau IF NOT EXISTS. Pilihan TEMPORARY akan membuat sebuah tabel sementara, yang hanya aktif saat sesi tersebut dijalankan. Sementara itu, tabel aslinya yang bernama sama berubah status menjadi tidak aktif bagi user tersebut (tapi tetap aktif bagi user lainnya) hingga sesi tersebut berakhir atau setelah diberi perintah DROP TABLE untuk file sementara tersebut.
Untuk atribut kolom, Anda sudah mengetahuinya seperti NULL, NOT NULL, DEFAULT, AUTO_INCREMENT, PRIMARY KEY, dan UNIQUE. Silakan lihat kembali bab-bab sebelumnya yang membahas tentang atribut kolom tersebut.
Sedangkan untuk pilihan_tabel_lainnya adalah sebagai berikut: ?
AUTO_INCREMENT = n Di mana n adalah nilai awal. Pilihan ini hanya digunakan untuk jenis tabel MyISAM.
?
AVG_ROW_LENGTH = n Pilihan ini digunakan untuk jenis kolom data BLOB dan TEXT, di mana jenis kolom tersebut dapat menampung data-data multimedia yang berukuran sangat besar. Dengan adanya pilihan ini dapat diperkirakan besar rata-rata record per barisnya, sehingga tidak melebihi kapasitas maksimum file data yang diperkenankan oleh MySQL (yaitu maksimum 4GB file data).
?
CHECKSUM = {0 | 1} Hanya digunakan untuk jenis tabel MyISAM. Bila nilai yang diberikan adalah 1, maka MySQL akan melakukan pengecekan pada setiap data yang ada di dalam sebuah tabel.
?
COMMENT= “keterangan apa saja”
6
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Digunakan untuk memberikan keterangan singkat (maksimum 60 karakter) tentang suatu tabel. ?
DELAY_KEY_WRITE = {0 | 1} Hanya digunakan untuk jenis tabel MyISAM. Bila nilai yang diberikan adalah 1, maka MySQL akan melakukan proses ‘buka-dan-tutup(flushing)’ file index cache hanya sewaktu-waktu saja (defaultnya adalah setiap saat) pada saat terjadi pemasukan data.
?
MAX_ROWS = n Jumlah record maksimum yang direncanakan pada suatu tabel.
?
MIN_ROWS = n Jumlah record minimum yang direncanakan pada suatu tabel.
?
PACK_KEYS = {0 | 1} Hanya digunakan untuk jenis tabel MyISAM dan ISAM. Bila nilai yang diberikan adalah 1, maka MySQL akan melakukan proses kompresi yang lebih tinggi persentasenya dari kondisi umum pada file index.
?
PASSWORD = “password_Anda” Menetapkan kata sandi untuk keterangan pada file tabel. Tidak berlaku untuk umum.
?
TYPE = {ISAM | MYISAM | HEAP} Digunakan untuk menentukan format penyimpanan tabel. Standar yang digunakan adalah format MyISAM. Sedangkan ISAM digunakan untuk MySQL versi lama. HEAP digunakan bersamaan dengan pembuatan file sementara (TEMPORARY), yang disimpan di dalam memori komputer yang akan menghasilkan kecepatan akses lebih tinggi.
Contoh: ? Membuat tabel baru dengan nama pendidikan: mysql> CREATE TABLE pendidikan (id varchar(2), jenjang varchar(10)) ;
? Membuat tabel sementara: mysql> CREATE TEMPORARY TABLE sementara(no_item int(4)) TYPE=HEAP ;
DELETE Bentuk umum perintah: DELETE [LOW_PRIORITY] FROM nama_tabel [WHERE kriteria] [LIMIT batasan_n_baris]
7
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Perintah ini digunakan untuk menghapus record yang ada di dalam sebuah tabel sesuai dengan kriteria yang diberikan. Pilihan LOW_PRIORITY akan menunda proses penghapusan hingga tidak ada seorang userpun yang sedang mengakses tabel tersebut. Pilihan LIMIT n akan melakukan penghapusan secara bertahap sebanyak maksimum n record selama kriteria masih dipenuhi. Bila kriteria (WHERE) tidak diberikan, maka seluruh data yang ada akan dihapus. Hati-hatilah dalam menggunakan perintah ini! Contoh: ? Menghapus Tabel siswa beserta seluruh isinya (kalau ada). Hati -hati dengan perintah ini! mysql> DELETE FROM siswa ;
? Menghapus Tabel siswa dengan kriteria tertentu: mysql> DELETE FROM siswa WHERE nama_siswa = 'amin' ;
? Menghapus dari beberapa tabel dengan kriteria tertentu. Perintah ini hanya bisa digunakan mulai dari MySQL versi 4.0: mysql> DELETE siswa FROM siswa, telepon -> WHERE siswa.siswa_id = telepon.siswa_id ; Atau bisa juga dengan cara: mysql> DELETE FROM siswa USING siswa, telepon -> WHERE siswa.siswa_id = telepon.siswa_id ;
? Menghapus dengan perintah LIMIT. Perintah ini hanya bisa digunakan mulai dari MySQL versi 4.0. Baik digunakan bila perintah tersebut akan menghapus record yang sangat banyak sehingga membutuhkan waktu yang lama. Misalnya menghapus nilai yang sudah lama dan tidak dibutuhkan lagi dari tabel nilai: mysql> DELETE FROM nilai WHERE siswa_id = "19990101" -> ORDER BY tgl_tes LIMIT 1 ;
DESCRIBE atau DESC Bentuk umum perintah: {DESCRIBE | DESC} nama_tabel {nama_kolom | pola}
Perintah ini digunakan untuk menampilkan informasi tentang struktur suatu tabel. Perintah ini sama saja dengan perintah SHOW COLUMNS FROM nama_tabel.
8
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Contoh: ? Menampilkan struktur Tabel siswa ; mysql> DESCRIBE siswa ; mysql> DESC siswa ; mysql> SHOW COLUMNS FROM siswa ;
DROP DATABASE Bentuk umum perintah: DROP DATABASE [IF EXISTS] nama_database
Perintah ini digunakan untuk menghapus sebuah database (beserta seluruh isinya). Hatihati dalam menggunakan perintah ini! Contoh: ? Menghapus Database contoh1db beserta seluruh tabel dan isinya: mysql> DROP DATABASE contoh1db ;
? Menghapus Database contoh1db beserta seluruh tabel dan isinya: mysql> DROP DATABASE IF EXISTS contoh1db ;
DROP FUNCTION
Bentuk umum perintah: DROP FUNCTION nama_fungsi Perintah ini digunakan untuk menghapus sebuah fungsi. Pada saat kita membuat sebuah fungsi dengan perintah CREATE FUNCTION, informasi tentang fungsi tersebut dicatat di dalam Tabel func pada Database mysql. Dengan perintah DROP FUNCTION, maka informasi tersebut akan dihapus dari Tabel func. Contoh: ? Menghapus fungsi hitung_lembur(): mysql> DROP FUNCTION hitung_lembur ;
9
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
DROP INDEX
Bentuk umum perintah: DROP INDEX nama_index ON nama_tabel Perintah ini digunakan untuk menghapus sebuah file index pada suatu tabel. Perintah ini sama saja dengan perintah ALTER TABLE DROP INDEX.
Contoh: ? Menghapus file indeks index_nama dari Tabel siswa: mysql> DROP INDEX index_nama ON tabel_siswa ; ?
Dan sama saja dengan perintah: mysql> ALTER TABLE tabel_siswa DROP INDEX index_nama ;
DROP TABLE Bentuk umum perintah: DROP TABLE [IF EXISTS] nama_tabel [, nama_tabel] … Perintah ini digunakan untuk menghapus sebuah atau beberapa tabel yang berada di dalam sebuah database. Hati-hati dalam menggunakan perintah ini!
Contoh: ? Menghapus Tabel contohku beserta isinya: mysql> DROP TABLE contohku ;
? Menghapus Tabel contohku beserta isinya: mysql> DROP TABLE IF EXISTS contohku ;
10
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
EXPLAIN Bentuk umum perintah: EXPLAIN nama_tabel Atau EXPLAIN SELECT … Perintah ini digunakan untuk menampilkan informasi tentang sebuah tabel, sama dengan perintah SHOW COLUMNS FROM nama_tabel, atau menampilkan informasi tentang pelaksanaan perintah SELECT yang diberikan.
Contoh: ? Menampilkan struktur Tabel siswa ; mysql> EXPLAIN siswa ; +--------------+---------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+------------+-------+ | siswa_id | varchar(10) | | PRI | | | | nama | varchar(50) | | | | | | kelamin | enum('L','P') | | | L | | | tempat_lahir | varchar(50) | YES | | NULL | | | tgl_lahir | date | | | 0000-00-00 | | | nama_ortu | varchar(50) | YES | | NULL | | | alamat1 | varchar(40) | YES | | NULL | | | alamat2 | varchar(40) | YES | | NULL | | | rt_rw | varchar(10) | YES | | NULL | | | kota | varchar(40) | YES | | NULL | | | kodepos | varchar(5) | YES | | NULL | | | telp_rumah | varchar(25) | YES | | NULL | | +--------------+---------------+------+-----+------------+-------+ 12 rows in set (0.40 sec) ?
Dan sama saja dengan perintah: mysql> DESCRIBE siswa ; mysql> DESC siswa ; mysql> SHOW COLUMNS FROM siswa ; +--------------+---------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+------------+-------+ | siswa_id | varchar(10) | | PRI | | | | nama | varchar(50) | | | | | | kelamin | enum('L','P') | | | L | | | tempat_lahir | varchar(50) | YES | | NULL | | | tgl_lahir | date | | | 0000-00-00 | | | nama_ortu | varchar(50) | YES | | NULL | | | alamat1 | varchar(40) | YES | | NULL | | | alamat2 | varchar(40) | YES | | NULL | | | rt_rw | varchar(10) | YES | | NULL | | | kota | varchar(40) | YES | | NULL | | | kodepos | varchar(5) | YES | | NULL | | | telp_rumah | varchar(25) | YES | | NULL | | +--------------+---------------+------+-----+------------+-------+ 12 rows in set (0.40 sec)
11
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
? Menampilkan informasi tentang pelaksanaan perintah SELECT ; mysql> EXPLAIN SELECT siswa_id, nama from siswa ; +-------+------+---------------+------+---------+------+------+-------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+------+---------------+------+---------+------+------+-------+ | siswa | ALL | NULL | NULL | NULL | NULL | 30 | | +-------+------+---------------+------+---------+------+------+-------+ 1 row in set (0.20 sec)
FLUSH Bentuk umum perintah: FLUSH pilihan_flush [, pilihan_flush] …
Perintah ini digunakan untuk membuka dan menutup (atau membaca ulang) beberapa informasi penting di server. Terdiri dari beberapa pilihan sebagai berikut: ?
HOSTS Untuk cache tentang hosts (nama mesin).
?
LOGS Membaca ulang informasi yang tercatat di dalam file log.
?
PRIVILEG ES Membaca ulang status yang terdapat pada grant tables.
?
STATUS Membaca ulang status.
?
TABLES Menutup semua tabel yang terbuka di dalam table cache.
Contoh: ? Memperbarui (update) isi dari grant tables dengan perubahan terakhir: mysql> FLUSH PRIVILEGES ; Query OK, 0 rows affected (0.15 sec)
GRANT Bentuk umum perintah: GRANT jenis_privileges [(daftar_kolom)] … ON {*.* | * | nama_database.* | nama_dbase.nama_tabel l nama_tabel} TO nama_user [, nama_user] … [WITH GRANT OPTION]
12
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Perintah ini digunakan untuk memberikan jenis hak akses tertentu (user privileges) kepada user. Silakan Anda baca kembali pembahasan tentang perintah ini pada Bab 3. ? Memberikan hak akses SELECT, INSERT, UPDATE, dan DELETE kepada user dian, dari mesin local (localhost), dan hanya untuk Database diandb saja. mysql> GRANT SELECT, INSERT, UPDATE, DELETE ? ON diandb.* ? TO dian@localhost ; Query OK, 0 row affected (0.00 sec)
INSERT Bentuk umum perintah: INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] nama_tabel [(nama_kolom), …. ] VALUES [(nilai_kolom), ….] INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] nama_tabel SET nama_kolom=nilai_kolom, …. INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] nama_tabel [(nama_kolom), …. ] SELECT …. Perintah ini digunakan untuk memasukkan data ke dalam tabel. Pilihan LOW_PRIORITY akan menunda pemasukan data hingga tidak ada seorang user pun yang sedang mengakses tabel tersebut. Pilihan DELAYED akan memasukkan data baru ke dalam antrian pemasukan data (tapi tidak langsung memasukkannya ke dalam tabel) hingga saat terjadi pemasukan data berikutnya. Sedangkan pilihan IGNORED akan mengabaikan pemasukan data yang identik bila record tersebut berlawanan dengan aturan unique key.
Contoh: ? Memasukkan data ke Tabel siswa: mysql> INSERT INTO siswa (siswa_id, nama) -> VALUES ('199901001','Ratu') ; mysql> INSERT INTO siswa VALUES ('199901001','Ratu') ;
? Memasukkan data ke Tabel siswa yang datanya sebagian diambil dari tabel lain: mysql> INSERT INTO siswa (siswa_id, nama) -> SELECT siswa_pindahan.siswa_id, siswa_pindahan.nama -> FROM siswa_pindahan WHERE tgl_masuk > "2002-01-02" ;
13
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
KILL Bentuk umum perintah: KILL nomor_proses Perintah ini digunakan untuk menghentikan suatu proses yang sedang berlangsung di server. Untuk menjalankan perintah ini Anda harus memiliki zi in akses PROCESS. nomor_ proses dapat diketahui dengan menggunakan perintah SHOW PROCESSLIST.
Contoh: ? Mengetahui nomor_proses yang akan dihentikan: mysql> SHOW PROCESSLIST ; +----+-------+-----------+---------+---------+------+-------+---------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+-----------+---------+---------+------+-------+---------------------+ | 10 | arbie | localhost | bukudb | Query | 15 | NULL | show processlist | | 13 | munk | localhost | siswadb | Query | 0 | NULL | select * from siswa | | 17 | devil | localhost | | Query | 11 | NULL | | +----+-------+-----------+---------+---------+------+-------+---------------------+ 3 rows in set (0.20 sec)
Kemudian, masukkan nomor_proses yang akan dihentikan (misalnya nomor_proses 2): mysql> KILL 17 ;
LOAD DATA Bentuk umum perintah: LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ‘nama_file.txt’ [IGNORE | REPLACE] INTO TABLE nama_tabel pilihan_impor [IGNORE n baris] [(nama-kolom)] Perintah ini digunakan untuk memasukkan sejumlah data yang berasal dari sebuah file teks data. Dengan cara ini, Anda dapat memasukkan sejumlah data sekaligus dengan lebih cepat.
Pilihan LOW_PRIORITY akan menunda pemasukan data hingga tidak ada seorang user pun yang sedang mengakses tabel tersebut. Pilihan LOCAL menandakan bahwa file teks tersebut dibaca dari mesin user (bukan di server), dan Anda tidak perlu memiliki izin akses FILE. Pilihan ini lebih lambat dibandingkan dengan pilihan tanpa LOCAL, karena server harus membaca dulu file teks yang berada di komputer klien, kemudian memprosesnya di dalam server. Ada waktu perjalanan data antara server dan komputer klien yang harus diperhitungkan juga. Bila pilihan LOCAL tidak digunakan, maka file teks
14
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
tersebut harus berada di dalam server, dan Anda harus memiliki zi in akses FILE. Perhatikan bahwa nama file teks harus diakhiri dengan .TXT.
LOCK TABLES
Bentuk umum perintah: LOCK TABLES nama_tabel [AS nama_alias] {READ | [LOW_PRIORITY] WRITE} Perintah ini digunakan untuk mengunci sebuah (atau beberapa) tabel dengan batasan tertentu. Pilihan READ berarti tabel tersebut hanya bisa dibaca. Pilihan WRITE berarti tabel tersebut tidak dapat ditulisi. Pilihan LOW_PRIORITY berarti kondisi penguncian bisa dilakukan bila tidak ada seorang userpun yang sedang mengakses tabel tersebut.
Contoh: ? Melakukan LOCK TABLES pada Tabel nilai. mysql> LOCK TABLES nilai READ ; mysql> SELECT siswa_id, jadwal_id, nilai -> FROM nilai WHERE siswa_id='19990120' ; mysql> UPDATE nilai SET nilai = 99
WHERE siswa_id = '19990120' ;
mysql> UNLOCK TABLES;
OPTIMIZE TABLE
Bentuk umum perintah: OPTIMIZE TABLE nama_tabel Perintah ini digunakan untuk melakukan optimasi sebuah tabel, berupa pemadatan ruang-ruang kosong akibat dari perintah DELETE, REPLACE dan UPDATE. Terutama bila Anda telah melakukan penghapusan sejumlah data yang besar pada jenis kolom VARCHAR, BLOB dan TEXT yang memiliki panjang kolom bervariasi. OPTIMIZE TABLE sebaiknya dilakukan dengan melakukan LOCK TABLES.
Contoh: ? Melakukan optimasi pada Tabel absensi, jadwal_tes, jenis_tes, nilai, pelajaran, dan siswa yang berada di dalam Database siswadb.
15
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
mysql> LOCK TABLES absensi WRITE, jadwal_tes WRITE, jenis_tes WRITE, -> nilai WRITE, pelajaran WRITE, siswa WRITE ; Query OK, 0 rows affected (0.00 sec) mysql> OPTIMIZE TABLE absensi, jadwal_tes, jenis_tes, nilai, -> pelajaran, siswa ; +--------------------+----------+----------+----------+ | Table | Op | Msg_type | Msg_text | +--------------------+----------+----------+----------+ | siswadb.absensi | optimize | status | OK | | siswadb.jadwal_tes | optimize | status | OK | | siswadb.jenis_tes | optimize | status | OK | | siswadb.nilai | optimize | status | OK | | siswadb.pelajaran | optimize | status | OK | | siswadb.siswa | optimize | status | OK | +--------------------+----------+----------+----------+ 6 rows in set (0.61 sec) mysql> UNLOCK TABLES ; Query OK, 0 rows affected (0.00 sec)
REPLACE Bentuk umum perintah: REPLACE [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] nama_tabel [(nama_kolom), …. ] VALUES [(nilai_kolom), ….] REPLACE [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] nama_tabel SET nama_kolom=nilai_kolom, …. REPLACE [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] nama_tabel [(nama_kolom), …. ] SELECT …. Perintah ini ini hampir sama dengan perintah INSERT, perbedaannya adalah bila terdapat nilai yang sama pada record yang lama dan berlaku aturan unik pada kolom tersebut (index UNIQUE atau PRIMARY KEY pada kolom ters ebut), maka record yang lama akan dihapus lebih dahulu sebelum data baru dimasukkan. Sehingga, terjadi dua proses, yaitu hapus dulu record lama dan isi dengan record baru. Tetapi, bila tidak ada index UNIQUE atau PRIMARY KEY, maka perintah REPLACE sama dengan perintah INSERT.
Contoh: ? Memasukkan data ke Tabel siswa: mysql> REPLACE INTO siswa (siswa_id, nama) -> VALUES ('199901001','Ratu') ; mysql> REPLACE INTO siswa VALUES ('199901001','Ratu') ;
? Memasukkan data ke Tabel siswa yang datanya sebagian diambil dari tabel lain: mysql> REPLACE INTO siswa (siswa_id, nama) -> SELECT siswa_pindahan.siswa_id, siswa_pindahan.nama -> FROM siswa_pindahan WHERE tgl_masuk > "2002-01-02" ;
16
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
REVOKE
Bentuk umum perintah: REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name.*}
FROM user_name [, user_name
...]
Perintah ini digunakan untuk menghapus izin akses seorang user. Revoke pada seorang user tidak berarti menghapus user tersebut secara permanent dari daftar user. Anda harus menggunakan perintah DELETE FROM… untuk menghapus user tersebut secara permanent dari grant tables.
Contoh: ? Untuk menghapus izin akses SELECT dan INSERT dari user dian: mysql> REVOKE SELECT, INSERT ? ON diandb.* ? FROM dian@localhost ; Query OK, 0 row affected (0.05 sec)
? Untuk menghapus seluruh izin akses dari user dian: mysql> REVOKE ALL PRIVILEGES ? ON diandb.* ? FROM dian@localhost ; Query OK, 0 row affected (0.05 sec)
SELECT
Bentuk umum perintah: SELECT pilihan [FROM nama_tabel] [WHERE kriteria] [GROUP BY nama_kolom] [HAVING kondisi] [ORDER BY nama_kolom ] [ ASC | DESC] [LIMIT jumlah] [PROCEDURE nama_prosedur]
Perintah ini digunakan untuk menampilkan data dari satu atau lebih tabel dengan kriteria tertentu, atau bisa saja untuk menampilkan hasil dari suatu perhitungan atau proses yang tidak ada hubungannya sama sekali dengan tabel.
17
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Contoh: mysql> SELECT 10 * 2, 100/5 +--------+-------+ | 10 * 2 | 100/5 | +--------+-------+ | 20 | 20.00 | +--------+-------+ 1 row in set (0.01 sec)
;
mysql> SELECT MAX(nilai), MIN(nilai) FROM nilai ; +------------+------------+ | MAX(nilai) | MIN(nilai) | +------------+------------+ | 96 | 50 | +------------+------------+ 1 row in set (0.07 sec)
mysql> SELECT nama, kelamin, tgl_lahir FROM siswa -> WHERE tgl_lahir < '1999-01-01' LIMIT 3; +---------------+---------+------------+ | nama | kelamin | tgl_lahir | +---------------+---------+------------+ | Ahmad Widjaja | L | 1986-02-04 | | Andrian Syah | L | 1986-03-11 | | Bagus Sumanto | L | 1986-02-12 | +---------------+---------+------------+ 3 row in set (0.02 sec)
Menyimpan hasil query ke dalam sebuah file teks dengan nama sisw a.txt di dalam direktori C:/DATA dan pemisahan antarkolom mengunakan karakter '"," mysql> SELECT * INTO OUTFILE "C:/DATA/siswa.txt" -> FIELDS TERMINATED BY "," FROM siswa ; Query OK, 30 rows affected (0.00 sec)
18
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
SHOW Perintah ini terdiri dari beberapa jenis: ?
SHOW COLUMNS Perintah SHOW COLUMNS akan menampilkan struktur suatu tabel, seperti nama kolom, jenis kolom, lebar kolom , dan sebagainya.
Contoh: mysql> SHOW COLUMNS FROM nilai ; +------------+-----------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-----------------+------+-----+---------+-------+ | siswa_id | varchar(10) | | PRI | | | | jadwal_tes | int(4) unsigned | | PRI | 0 | | | nilai | int(4) unsigned | | | 0 | | +------------+-----------------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
?
SHOW DATABASES Perintah SHOW DATABASES akan menampilkan seluruh database yang ada di dalam server.
Contoh: mysql> SHOW DATABASES ; +---------------+ | DATABASE | +---------------+ | kesiswaandb | | koleksibukudb | | koleksifilmdb | | lamp4d | | latih1db | | latih41db | +---------------+ 6 rows in set (0.00 sec) ?
SHOW GRANTS Perintah SHOW GRANTS FOR akan menampilkan izin akses apa saja yang dimiliki oleh para user.
19
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Contoh: mysql> SHOW GRANTS FOR root@localhost ; +--------------------------------------------------------------------+ | Grants for root@localhost | +--------------------------------------------------------------------+ | GRANTS ALL PRIVILEGES ON *.* TO 'root@localhost' WITH GRANT OPTION | +--------------------------------------------------------------------+ 1 row in set (0.00 sec)
?
SHOW INDEX Perintah SHOW INDEX akan menampilkan informasi file index yang ada pada suatu tabel.
Contoh: mysql> SHOW INDEX FROM siswa ; +-------+------------+-----------+---------------+-------------+-----------+-----+ | Table | Non-unique | Key_name | Seq_in_index | Column_name | Collation | ... | +-------+------------+-----------+---------------+-------------+-----------+-----+ | siswa | 0 | PRIMARY | 1 | siswa_id | A | ... | +-------+------------+-----------+---------------+-------------+-----------+-----+
1 row in set (0.00 sec)
?
SHOW PROCESSLIST Perintah SHOW PROCESSLIST akan menampilkan status proses yang sedang dilakukan oleh user.
Contoh: mysql> SHOW PROCESSLIST ; +----+------+-----------+---------+---------+------+-------+------------------+ | Id | User | Host | Db | Command | Time | State | Info | +----+------+-----------+---------+---------+------+-------+------------------+ | 6 | root | localhost | mysql | Query | 0 | NULL | show processlist | | 7 | badu | localhost | test | Sleep | 12 | | NULL | | 8 | budi | localhost | temandb | Sleep | 0 | | NULL | +----+------+-----------+---------+---------+------+-------+------------------+
3 rows in set (0.00 sec)
?
SHOW STATUS Perintah SHOW STATUS akan menampilkan informasi status server MySQL, seperti: Aborted_clients,
Aborted_connects,
Com_admin_commands, dan sebagainya.
Karena informasi status tersebut begitu panjang, maka tidak bisa ditampilkan secara utuh di halaman cetak ini.
20
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Contoh: mysql> SHOW STATUS ; +-------------------+---------+ | Variable_name | Value | +-------------------+---------+ | Aborted_clents | 0 | | Aborted_connects | 0 | | Bytes_received | 38604 | | Bytes_send | 7045332 | | ..... | ... | | ..... | ... | | Threads_running | 28800 | | Uptime | 23812 | +-------------------+---------+ 131 rows in set (0.03 sec)
?
SHOW TABLE STATUS Perintah SHOW TABLE STATUS akan menampilkan status tabel-tabel yang ada di dalam database yang sedang aktif. Informasi status yang ditampilkan adalah: Name, Type, Row_Format, Rows, Avg_row_length, Data_length, dan sebagainya. Karena informasi status tersebut begitu panjang, maka tidak bisa ditampilkan secara utuh di halaman cetak ini.
Contoh: mysql> USE kesiswaandb ; Database changed mysql> SHOW TABLE STATUS ; +------------+--------+------------+------+----------------+-----+ | Name | Type | Row_format | Rows | Avg_row_length | ... | +------------+--------+------------+------+----------------+-----+ | absensi | MyISAM | Dynamic | 25 | 20 | ... | | jadwal_tes | MyISAM | Dynamic | 24 | 28 | ... | | jenis_tes | MyISAM | Dynamic | 5 | 23 | ... | | nilai | MyISAM | Dynamic | 180 | 24 | ... | | pelajaran | MyISAM | Dynamic | 6 | 20 | ... | | siswa | MyISAM | Dynamic | 30 | 115 | ... | +------------+--------+------------+------+----------------+-----+ 6 rows in set (0.08 sec)
?
SHOW TABLES Perintah SHOW TABLES akan menampilkan seluruh tabel yang ada di dalam sebuah database yang aktif.
Contoh: mysql> USE kesiswaandb ; Database changed
21
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
mysql> SHOW DATABASES ; +-----------------------+ | tables_in_kesiswaandb | +-----------------------+ | absensi | | jadwal_tes | | jenis_tes | | nilai | | pelajaran | | siswa | +-----------------------+ 6 rows in set (0.00 sec) ?
SHOW VARIABLES Perintah SHOW VARIABLES akan menampilkan seluruh variabel sistem yang ada di MySQL. Karena informasi status tersebut begitu panjang, maka tidak bisa ditampilkan secara utuh di halaman cetak ini.
Contoh: mysql> SHOW VARIABLES ; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | ansi_mode | OFF | | back_log | 50 | | base_dir | ... | | ..... | ... | | ..... | ... | | wait_timeout | 28800 | +-----------------------+ 116 rows in set (0.03 sec)
UNLOCK TABLES
Bentuk umum perintah: FLUSH pilihan_flush [, pilihan_flush] …
Perintah ini digunakan untuk membuka penguncian tabel yang telah dilakukan dengan perintah LOCK TABLE.
22
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Contoh: ? Melakukan LOCK TABLES dan UNLOCK TABLES pada tabel nilai. mysql> LOCK TABLES nilai READ ; mysql> SELECT siswa_id, jadwal_id, nilai -> FROM nilai WHERE siswa_id='19990120' ; mysql> UPDATE nilai SET nilai = 99
WHERE siswa_id = '19990120' ;
mysql> UNLOCK TABLES;
UPDATE
Bentuk umum perintah: UPDATE [LOW_PRIORITY] [IGNORE] [INTO] nama_tabel SET nama_kolom = nilai_kolom, …. WHERE kriteria LIMIT jumlah_n Perintah ini digunakan untuk memperbarui atau mengubah record yang sudah ada di dalam tabel. Bila perintah LOW_PRIORITY digunakan, proses pengubahan data akan dilakukan bila tabel tersebut tidak sedang digunakan oleh user lain. Sedangkan bila perintah IGNORE digunakan, maka pada data yang identik (dan dilakukan juga aturan data harus unik) proses update akan tetap dijalankan.
Contoh: ? Mengubah data password pada Tabel user: mysql> UPDATE user SET password=password('xxxxxx') WHERE user='andi' ;
? Mengubah data pada Tabel siswa: mysql> UPDATE siswa SET nama='Ahmadi' WHERE nama='Admadin' ;
USE
Bentuk umum perintah: USE nama_database
Perintah ini digunakan untuk membuka atau mengaktifkan database yang akan digunakan. Tidak perlu menggunakan tanda titik-koma (;) sebagai penutup perintah dan harus dituliskan dalam satu baris perintah saja.
23
Lampiran 1 Perintah pada MySQL
Manajemen Database dengan MySQL
Contoh: ? Mengaktifkan Database temandb: mysql> USE temandb
atau mysql> USE temandb ;
24