Mohon tunggu...
Kresno Aji
Kresno Aji Mohon Tunggu... Freelancer - Linux & LaTeX Specialist

Baru saja menyelesaikan S2.\r\nSuatu keinginan untuk menulis di bidang sosial budaya, terutama budaya Jawa. Analisa politik ditulis dalam bahasa Inggris.

Selanjutnya

Tutup

Inovasi

Menggunakan MySQL / Mariadb dengan Sintax Command

11 Mei 2016   18:18 Diperbarui: 11 Mei 2016   18:27 10799
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

Oleh: Kresno Aji            

kresno.aji@gmail.com            

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

HALAMAN :
Mohon tunggu...

Lihat Konten Inovasi Selengkapnya
Lihat Inovasi Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun