Oleh: Kresno Aji
MariaDB adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MariaDB, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial.
MariaDB memiliki performa yang bagus, antara lain:
1.Portabilitas. MariaDB dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
2.Perangkat lunak sumber terbuka. MariaDB didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
3.Multi-user. MariaDB dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
4.’Performance tuning’, MariaDB memiliki kecepatan yang luar biasa dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
5.Ragam tipe data. MariaDB memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
6.Perintah dan Fungsi. MariaDB memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
7.Keamanan. MariaDB memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
8.Skalabilitas dan Pembatasan. MariaDB mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
9.Konektivitas. MariaDB dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
10.Pelokalan Bahasa. MariaDB dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
11.Antar Muka. MariaDB memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
12.Klien dan Peralatan. MariaDB dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
13.Struktur tabel. MariaDB memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.1
User dan Manipulasinya
Login MySQL via Konsol
$ mysql -u root -p
Mengetahui user dan host yang ada:
MariaDB [(none)]> select user, host from mysql.user ;
+--------+-----------+
| user | host |
+--------+-----------+
| masaji | % |
| user | % |
| root | 127.0.0.1 |
| root | ::1 |
| pma | localhost |
| root | localhost |
+--------+-----------+
6 rows in set (0.00 sec)
Membuat user baru
$ mysql -u root -p
•MariaDB [(none)]> grant all privileges on *.* to ’user’@’localhost’
-> identified by ’kata_sandi’ with grant option;
•MariaDB [(none)]> grant all privileges on *.* to ’user’@’%’
-> identified by ’kata_sandi’ with grant option;
•MariaDB [(none)]> grant reload,process on *.* TO ’admin’@’localhost’;
•MariaDB [(none)]> grant usage on *.* to ’dummy’@’localhost’;
Cara lain:
•$ mysql –user=root mysql
•MariaDB [(none)]> insert into user
-> values(’localhost’,’monty’,password(’kata_sandi’),
-> ’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
•MariaDB [(none)]> insert into user
-> values(’ -> ’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
•MariaDB [(none)]> insert into user set host=’localhost’, user=’admin’,
-> Reload_priv=’Y’, Process_priv=’Y’;
•MariaDB [(none)]> insert into user (host,user,password)
-> values(’localhost’,’dummy’,”);
•MariaDB [(none)]> flush privileges;
Membuat User Menggunakan Perintah INSERT tanpa menggunakan GRANT
•shell> mysql –user=root mysql
•MariaDB [(none)]> insert into user (host,user,password)
-> values(’localhost’,’custom’,password(’obscure’));
•MariaDB [(none)]> insert into user (host,user,password)
-> values(’whitehouse.gov’,’custom’,password(’obscure’));
•MariaDB [(none)]> insert into user (host,user,password)
-> values(’server.domain’,’custom’,password(’obscure’));
•MariaDB [(none)]> insert into db
-> (host,db,user,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> values(’localhost’,’bankaccount’,’custom’,
-> ’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
•MariaDB [(none)]> insert into db
-> (Host,Db,User,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> values(’whitehouse.gov’,’expenses’,’custom’,
-> ’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
•MariaDB [(none)]> insert into db
-> (host,db,user,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> values(’server.domain’,’customer’,’custom’,
-> ’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
•MariaDB [(none)]> flush privileges;
Jika Anda ingin memberikan nama domain sendiri, Anda bisa menambahkan nama tersebut sesudah tanda %. Misalnya:
MariaDB [(none)]> grant ...
-> on *.*
-> to 'namaku'@'%.domainku.com'
-> identified by 'sandi';
Lakukan hal yang sama untuk melakukan modifikasi tabel user, sebagai berikut:
MariaDB [(none)]> insert into user (Host,User,Password,...)
-> values('%.mydomain.com','myname',PASSWORD('mypass'),...);
MariaDB [(none)]> flush privileges;
Menghapus user
•MariaDB [(none)]> use mysql;
•MariaDB [(none)]> select user, host from mysql.user;
•MariaDB [(none)]> revoke all privileges on *.* from toni@localhost;
•MariaDB [(none)]> delete from mysql.user
-> where user=toni’ and host=’localhost’;
Membuat Database
Kita bisa membuat database dengan menggunakan sintax perintah ’create database’. Misalnya kita akan membuat database dengan nama perpustakaan, maka caranya adalah demikian:
•MariaDB [(none)]> create database kampusdb;
Query OK, 1 row affected (0.01 sec)
Cara lain:
•$ mysqladmin -u root -p create kampusdb ;
Membuat Tabel
Dalam contoh berikut ini, kita akan membuat tabel mahasiswa yang berisikan field sebagai berikut:
•nim, jenis integer, jumlah kolom 4,
•nama, jenis varchar, jumlah kolom 30,
•alamat, jenis varchar, jumlah kolom 255,
•ditentukan nim sebagai primary key.
MariaDB [(none)]> create table mahasiswa (
-> nim int(4) not null,
-> nama varchar(30) not null,
-> alamat varchar(255) not null,
-> primary key (nim));
MariaDB [(none)]> flush privileges;
Hasilnya adalah sebagai berikut:
MariaDB [mti15520726]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mti15520726]> describe mahasiswa;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| nim | int(4) | NO | PRI | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | char(255) | NO | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
Catatan:
Pastikan selalu untuk selalu mengetikkan sintaks perintah:flush privileges;
sesudah melakukan eksekusi perintah di MariaDB, karena hal ini berguna untuk menyimpan hasil perubahan data pada database.
Manipulasi Data
INSERT
Untuk memasukkan data, perintah yang digunakan adalah INSERT. Perhatikan beberapa perbedaan penggunaan INSERT berikut ini.
•MariaDB [(none)]> INSERT INTO mahasiswa VALUES (’1234’, ’Kresno Aji’, ’Wonosari’);
Query OK, 1 row affected (0.05 sec)
flush privileges ;
Query OK, 1 row affected (0.00 sec)
Bila Anda mengetikkan seperti ini:
MariaDB [(none)]> INSERT INTO mahasiswa VALUES ('', 'Budi');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
Perintah tidak bisa dijalankan, karena semua kolom menggunakan prasyarat tidak boleh dikosongkan (NOT NULL).
•Untuk tabel barang yang tidak menyaratkan tidak boleh kosong (NOT NULL), maka perintah berikut ini bisa berjalan dengan baik: MariaDB [(none)]> INSERT INTO barang (computer_desc) VALUES (’Dell Inspiron’);
Query OK, 1 row affected (0.00 sec)
•MariaDB [(none)]> insert into mahasiswa (nim,nama,alamat) values(’1234’,’Kresno Aji’, ’Wonosari’);
MariaDB [(none)]> flush privileges ;
SELECT
SELECT digunakan untuk mengambil data yang telah dimasukkan. Perintah inilah yang akan sering kita gunakan untuk menampilkan halaman web. Karena pada dasarnya, sebuah web adalah sebuah operasi pengambilan data dari database yang kemudian ditampilkan di layar mahasiswa. Untuk pencarian lebih detail dapat digunakan klausa:WHERE,IN,LIMIT,ORDER BY, dan lain sebagainya. Jika nama field terlalu panjang, kita dapat menyederhanakannya denganAS. Berikut beberapa contoh penggunaan perintah SELECT.
•Untuk menampilkan seluruh data, bisa digunakan tanda bintang [*], seperti contoh berikut ini:
MariaDB [kampusdb]> select * from mahasiswa;
+------+------------+----------+
| nim | nama | alamat |
+------+------------+----------+
| 1234 | Kresno Aji | Wonosari |
+------+------------+----------+
1 row in set (0.00 sec)
•Kita juga menampilkan data tabel dengan field-field tertentu atau dengan cara yang bervariasi, sebagai berikut:
MariaDB [kampusdb]> select nim,nama from mahasiswa;
+------+------------+
| nim | nama |
+------+------------+
| 1234 | Kresno Aji |
+------+------------+
1 row in set (0.00 sec)
MariaDB [kampusdb]> select nim,nama,alamat as c from mahasiswa;
+------+------------+----------+
| nim | nama | c |
+------+------------+----------+
| 1234 | Kresno Aji | Wonosari |
+------+------------+----------+
1 row in set (0.01 sec)
MariaDB [kampusdb]> select nim,nama,alamat from mahasiswa;
+------+------------+----------+
| nim | nama | alamat |
+------+------------+----------+
| 1234 | Kresno Aji | Wonosari |
+------+------------+----------+
1 row in set (0.00 sec)
MariaDB [kampusdb]> select nama from mahasiswa where nim = '1237';
+------------------+
| nama |
+------------------+
| M. Syafri Lamato |
+------------------+
1 row in set (0.00 sec)
UPDATE
Perintah UPDATE digunakan untuk mengubah nilai suatu record. Berikut adalah contoh penggunaan UPDATE.
•Untuk menambahkan no Hp pada record pertama / nim = 1234, caranya adalah sebagai berikut:
MariaDB [kampusdb]> update mahasiswa set no_hp = ’081390114878’ where nama = ’Kresno Aji’;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [kampusdb]> select * from mahasiswa ;
+------+------------+----------+--------------+
| nim | nama | alamat | no_hp |
+------+------------+----------+--------------+
| 1234 | Kresno Aji | Wonosari | 081390114878 |
+------+------------+----------+--------------+
1 row in set (0.00 sec)
•Untuk menambahkan alamat pada record dengan value nama = ’Abdullah Ardi’, caranya demikian:
update mahasiswa set alamat = 'Flora' where nama = 'Abdullah Ardi';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [kampusdb]> select * from mahasiswa;
+------+------------------+----------+--------------+
| nim | nama | alamat | no_hp |
+------+------------------+----------+--------------+
| 1234 | Kresno Aji | Wonosari | 081390114878 |
| 1235 | Abdullah Ardi | Flora | 081327693679 |
| 1236 | Subastian Wibowo | | 089197403694 |
| 1237 | M. Syafri Lamato | | 085240564750 |
| 1238 | bayu Mukti | | 085747159555 |
+------+------------------+----------+--------------+
5 rows in set (0.00 sec)
DELETE
Menghapus data dalam tabel
Untuk menghapus satu atau lebih data, kita menggunakan perintah DELETE. Berikut adalah beberapa contoh cara penghapusan record.
MariaDB [kampusdb]> delete from mahasiswa where nim = '1238';
Query OK, 1 row affected (0.04 sec)
MariaDB [kampusdb]> select * from mahasiswa;
+------+------------------+----------+--------------+
| nim | nama | alamat | no_hp |
+------+------------------+----------+--------------+
| 1234 | Kresno Aji | Wonosari | 081390114878 |
| 1235 | Abdullah Ardi | Flora | 081327693679 |
| 1236 | Subastian Wibowo | | 089197403694 |
| 1237 | M. Syafri Lamato | | 085240564750 |
+------+------------------+----------+--------------+
4 rows in set (0.00 sec)
Menghapus semua Records
MariaDB [(none)]> DELETE FROM mahasiswa;
Query OK, 0 rows affected (0.02 sec)
SELECT…LIKE
Klausa LIKE dapat digunakan untuk mencari record jika digabungkan dengan perintah SELECT. Di dalam klausa LIKE biasanya digunakan wildcard (%) yang berguna untuk menyatakan semua karakter, mirip penggunaan wildcard (*) pada MS-DOS Prompt atau UNIX shell.
Ada daua macam, yaitu: LIKE dan NOT LIKE
1.LIKE
Contoh:
MariaDB [kampusdb]> select * from mahasiswa where kota like '%karta' ;
+------+---------------+----------+--------------+------------+
| nim | nama | alamat | no_hp | kota |
+------+---------------+----------+--------------+------------+
| 1234 | Kresno Aji | Wonosari | 081390114878 | Yogyakarta |
| 1235 | Abdullah Ardi | Flora | 081327693679 | Yogyakarta |
+------+---------------+----------+--------------+------------+
2 rows in set (0.00 sec)
2.NOT LIKE
Contoh:
MariaDB [kampusdb]> select * from mahasiswa where alamat not like 'wonosari' ;
+------+------------------+--------+--------------+------------+
| nim | nama | alamat | no_hp | kota |
+------+------------------+--------+--------------+------------+
| 1235 | Abdullah Ardi | Flora | 081327693679 | Yogyakarta |
| 1236 | Subastian Wibowo | | 089197403694 | |
| 1237 | M. Syafri Lamato | | 085240564750 | |
+------+------------------+--------+--------------+------------+
3 rows in set (0.00 sec)
ALTER
Perintah ALTER digunakan untuk merubah, menambah atau menghapus properti tabel. Kita bisa menambah / menghapus / mengganti nama field, nama tabel, menambah / menghapus auto_increment dan primary key, dsb.
•Menambah field
MariaDB [(none)]> ALTER TABLE mahasiswa ADD kota VARCHAR(20) NOT NULL; Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0
•Mengganti field
MariaDB [kampusdb]> alter table mahasiswa change no_hp email varchar (50) not null ;
Query OK, 4 rows affected (0.61 sec)
Records: 4 Duplicates: 0 Warnings: 0
MariaDB [kampusdb]> select * from mahasiswa;
+------+------------------+----------+--------------+------------+
| nim | nama | alamat | email | kota |
+------+------------------+----------+--------------+------------+
| 1234 | Kresno Aji | Wonosari | 081390114878 | Yogyakarta |
| 1235 | Abdullah Ardi | Flora | 081327693679 | Yogyakarta |
| 1236 | Subastian Wibowo | | 089197403694 | |
| 1237 | M. Syafri Lamato | | 085240564750 | |
+------+------------------+----------+--------------+------------+
4 rows in set (0.00 sec)
•Menghapus Field
MariaDB [kampusdb]> select * from mahasiswa;
+------+------------------+----------+--------------+------------+
| nim | nama | alamat | email | kota |
+------+------------------+----------+--------------+------------+
| 1234 | Kresno Aji | Wonosari | 081390114878 | Yogyakarta |
| 1235 | Abdullah Ardi | Flora | 081327693679 | Yogyakarta |
| 1236 | Subastian Wibowo | | 089197403694 | |
| 1237 | M. Syafri Lamato | | 085240564750 | |
+------+------------------+----------+--------------+------------+
4 rows in set (0.00 sec)
MariaDB [kampusdb]> alter table mahasiswa drop email ;
Query OK, 0 rows affected (0.36 sec)
Records: 0 Duplicates: 0 Warnings: 0
MariaDB [kampusdb]> select * from mahasiswa;
+------+------------------+----------+------------+
| nim | nama | alamat | kota |
+------+------------------+----------+------------+
| 1234 | Kresno Aji | Wonosari | Yogyakarta |
| 1235 | Abdullah Ardi | Flora | Yogyakarta |
| 1236 | Subastian Wibowo | | |
| 1237 | M. Syafri Lamato | | |
+------+------------------+----------+------------+
4 rows in set (0.00 sec)
•Menghapus Primary Key
MariaDB [kampusdb]> alter table mahasiswa drop primary key ;
Query OK, 4 rows affected (0.61 sec)
Records: 4 Duplicates: 0 Warnings: 0
•Menambah Primary Key
MariaDB [kampusdb]> alter table mahasiswa add primary key (nim) ;
Query OK, 0 rows affected (0.74 sec)
Records: 0 Duplicates: 0 Warnings: 0
Export / Import & Backup MySQL / MariaDB
Export Database Kamus ke File DBF
mysql –host=... –user=... –password=... -vvf MySQL database name < dump file name
Contoh:
$ mysql -h localhost -u kamus -ppasword -vvf kamusdb < kamus.dbf
Update Database
$ mysql -h [alamat_IP] -u [nama_user] -p[password] nama_database < nama_database.sql
Contoh:
$ mysql -h 192.168.1.1 -u user -ppassword akademi_db < akademi_db.sql
Import CSV to MySQL
MariaDB [(none)]> load data infile ’kamus.csv’ into table eng_ind fields terminated by ’,’;
Export MySQL to CSV
$ mysql -uroot -h ip_server -ppasword nama_database -B -e "select * from
\`nama_tabel\`;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > sms.csv
Contoh:
$ mysql -uroot -h localhost -pb1r0j4t3nk Jateng -B -e "select * from
\`T_SMS_LOGEVENT\`;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > sms.csv
Backup MySQL
mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
Contoh:
$ mysqldump -u root -ptmppassword kampusdb > kampusdb.sql
Restore MySQL ------------- $ mysql -u root -p[root_password] [database_name] < dumpfilename.sql
Contoh:
$ mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
Powered by:
LATEX
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H