Tutorial Singkat MySQL Menggunakan AppServ versi 2.5.5 for Windows
Setelah Proses Instalasi AppServ selesai, secara default AppServ akan menyediakan bundel beberapa program untuk membangun sebuah server web dan Database server (Dekstop). Untuk melihat versi yang disediakan kita bisa lihat di Internet Explore dan buka alamat http://localhost/
Memulai Menggunakan MySQL Untuk menggunakan MySQL maka kita harus login ke server MySQL, walaupun itu berada pada komputer lokal/dekstop. Untuk login ikuti langkap berikut : - Buka Command Promp Start Run ketik cmd kemudian klik Enter - Pindah ke direktory instalasi, secara defaul bertempat di C:\appserv\mysql\bin - Karena secara default MySQL pada appserv sudah dijadikan sebuah service maka kita tinggal menggunakannya, jika service belum atau tidak dijalankan maka ketik C:\AppServ\mysql\bin>mysqld --install //menjadikan mysql sbg sebuah service C:\AppServ\mysql\bin>net start mysql // menjalankan service mysql
-
Login ke MySQL C:\AppServ\mysql\bin>mysql -u root -p Enter password:
-
Tampilan jika login berhasil Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 to server version: 5.0.16-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
M a n a gem en Us er Secara default dalam instalasi MySQL akan menciptakan sebuah user dengan nama root, Root adalah sebuah super user yang memiliki kemampuan untuk membuat, mengubah dan menghapus database dan melakukan administrasi database dengan tanpa batas. Oleh karena itu dalam melakukan administrasi database perlu dibuat user-user baru yang disesuaikan priveledge atau hak yang akan diberikan kepada user baru. Secara default pula root basis data tidak memiliki password, oleh karena itu Sebelum membuat user baru dan melakukan administrasi database, sebaiknya root diberikan password terlebih dahulu. Perintah SQL untuk memberikan / mensetting password root adalah : mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd'); mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');
Tutorial MySQL, perintah SQL
1
atau menggunakan mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = ‘root'; mysql> FLUSH PRIVILEGES;
Nama User max 16 karakter Format Membuat sebuah user CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
misal : Create USER ahmad; Kemudian dilakukan pengesetan Password SET PASSWORD FOR 'ahmad'@'% = PASSWORD('newpass');
Atau dengan perintah UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='ahmad' AND Host='%; FLUSH PRIVILEGES;
Menghapus User DROP USER ahmad;
Host bisa localhost atau % Localhost = lokal/dekstop % = Any host
Memberikan Grant Memberikan Grant artinya memberikan hak akses kepada seorang user, Jadi sebelum diberikan hak, seorang user tidak bisa melakukan administrasi database. Apabila seorang user melakukan request maka yang muncul adalah mysql> use mysql ERROR 1044 (42000): Access denied for user 'ahmad'@'localhost' to database 'mysql'
Misalkan seorang user dengan nama 'ahmad' akan diberikan hak SELECT, DELETE, INSERT, UPDATE, maka perintah SQL yang diberikan adalah Grant yang pertama memberikan GRANT SELECT,INSERT,UPDATE,DELETE,CREATE hak SELECT, INSERT, UPDATE, -> ON library.* DELETE,CREATE pada basis data -> TO 'ahmad'@'localhost' library kepada user 'ahmad' -> IDENTIFIED BY 'newpass'; hanya melalui localhost Query OK, 0 rows affected (0.02 sec) atau GRANT SELECT,INSERT,UPDATE,DELETE,CREATE -> ON library.* -> TO 'ahmad'@'mipa.uns.ac.id' -> IDENTIFIED BY 'newpass';
Grant yang pertama memberikan hak SELECT, INSERT, UPDATE, DELETE,CREATE pada basis data library kepada user 'ahmad' hanya melalui mipa.uns.ac.id
mysql> use mysql ERROR 1044 (42000): Access denied for user 'ahmad'@'localhost' to database 'mysql' mysql> use libary ERROR 1044 (42000): Access denied for user 'ahmad'@'localhost' to database 'libary mysql> use library; Database changed
Tutorial MySQL, perintah SQL
2
Dalam pemberian priveledge haruslah selektif, hak apa yang akan diberikan kepada seorang user apakah yang berhubungan dengan hak aksed terhadap data saja atau diberikan hak untuk mengubah struktur sebuah basisdata. Jika hak yang diberikan adalah semuanya maka perintah SQL yang digunakan adalah mysql> GRANT ALL PRIVILEGES ON *.* TO 'ahmad'@'localhost' IDENTIFIED BY 'newpwd' WITH GRANT OPTION;
Perintah diatas memberikan hak ahmad sebagai seorang SUPER USER ( memiliki account sebagai super user ),
Sebagai Alternatifnya kita bisa melakukan insert ke table user pada Database mysql mysql> INSERT INTO user -> VALUES('localhost','ahmad',PASSWORD('newpass), -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> FLUSH PRIVILEGES;
Creating and Deleting Databases 1) Membuat sebuah database, misalkan mebuat basis data perpustakaan / library mysql> CREATE database libary; Query OK, 1 row affected (0.00 sec)
2) menghapus Sebuah database mysql> DROP database libary; Query OK, 0 rows affected (0.00 sec)
3) Setelah kita membuat sebuah Database, selanjutnya kita menggunakan perintah USE untuk bekerja pada basis data yang telah dibuat mysql> use library; Database changed
4) Cara yang lain selain perintah USE adalah, login langsung mengarah ke database tertentu mysql -h host -u user -p library;
5) Membuat Sebuah tabel dengan perintah create pada SQL mysql> CREATE TABLE books ( -> title CHAR(50), -> author CHAR(50), -> publisher CHAR(50), -> pages INT, -> year DATETIME, -> isbn char(13)); Query OK, 0 rows affected (0.20 sec)
Tutorial MySQL, perintah SQL
3
6) Untuk melihat apakah tabel yang kita buat sudah terbentuk atau belum, maka kita bisa memeriksanya dengan menggunakan mysql> show tables; +-------------------+ | Tables_in_library | +-------------------+ | books | +-------------------+ 1 row in set (0.16 sec) lakukan untuk tabel yang lain
7) Perintah yang digunakan untuk melihat struktur dari tabel yang kita buat adalah sebagai berikut : mysql> desc books; +-----------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+----------+------+-----+---------+-------+ | title | char(50) | YES | | NULL | | | author | char(50) | YES | | NULL | | | publisher | char(50) | YES | | NULL | | | pages | int(11) | YES | | NULL | | | year | datetime | YES | | NULL | | | isbn | char(13) | YES | | NULL | | +-----------+----------+------+-----+---------+-------+ 6 rows in set (0.03 sec)
8) Perintah untuk Memasukkan data ke dalam Tabel digunakan perintah INSERT, berikut contoh dari perintah insert : mysql> INSERT INTO books (Title,Author,Publisher, Pages,Year,isbn) values (' Definitif Guide SQLite,' Michael Owens', ' Apress,'Klaten',2006','1-59059-673-0'); Query OK, 1 row affected, 1 warning (0.06 sec)
Coba masukkan data-data berikut Title Author
Publisher
Pages
Year
isbn
Definitif Guide SQLite
Michael Owens
Apress
500
2006
1-59059-673-0
Web Hacking
Stuart McClure
Andi Offset
472
2000
979-731-036-1
Desainer Web
Wahana
Andi Offset
252
2007
979-731-796-x
Abdul kadir
Andi Offset
212
2000
979-533-731-9
Ramon A
Schaum
249
2000
1-59059-673-1
Konsep basis Data Fundamental of Database
MENGENAL PERINTAH SELECT •
Kemudian dengan perintah SELECT kita bisa melihat data yang telah dimasukkan;
•
SELECT ALL mysql> select * from books; +------------------------+---------------+-----------+-------+-------+--------| title
| author
| publisher | pages | year
| isbn
+------------------------+---------------+-----------+-------+-------+--------| Definitif Guide SQLite | Michael Owens | Apress
|
500 | 20060 | 1-59059-
+------------------------+---------------+-----------+-------+-------+--------1 row in set (0.00 sec)
Tutorial MySQL, perintah SQL
4
•
SELECT pada kolom Tertentu mysql> select title from books; +------------------------+ | title | +------------------------+ | Definitif Guide SQLite | +------------------------+ 1 row in set (0.01 sec)
•
SELECT dengan kondisional dengan menggunakan WHERE mysql> select * from books where publisher ='apress'; +------------------------+---------------+-----------+-------+-------+--------| title
| author
| publisher | pages | year
| isbn
+------------------------+---------------+-----------+-------+-------+--------| Definitif Guide SQLite | Michael Owens | Apress
|
500 | 20060 | 1-59059-
+------------------------+---------------+-----------+-------+-------+--------1 row in set (0.00 sec)
•
Mengambil beberapa kolom tertentu dari tabel mysql> SELECT name, birth FROM pet; +----------+------------+ | name | birth | +----------+------------+ | Fluffy | 1993-02-04 | | Claws | 1994-03-17 | | Buffy | 1989-05-13 | | Fang | 1990-08-27 | | Bowser | 1989-08-31 | | Chirpy | 1998-09-11 | | Whistler | 1997-12-09 | | Slim | 1996-04-29 | | Puffball | 1999-03-30 | +----------+------------+
•
Menghindari hasil keluaran yang sama digunakan Perintah SELECT DISTINCT mysql> SELECT owner FROM pet; +--------+ | owner | +--------+ | Harold | | Gwen | | Harold | | Benny | | Diane | | Gwen | | Gwen | | Benny | | Diane | +--------+
•
mysql> SELECT DISTINCT owner FROM pet; +--------+ | owner | +--------+ | Benny | | Diane | | Gwen | | Harold | +--------+
Tutorial MySQL, perintah SQL
5
•
Mengurutkan data berdasarkan kolom tertentu, misalkan mysql> SELECT name, birth FROM pet ORDER BY birth; +----------+------------+ | name | birth | +----------+------------+ | Buffy | 1989-05-13 | | Bowser | 1989-08-31 | | Fang | 1990-08-27 | | Fluffy | 1993-02-04 | | Claws | 1994-03-17 | | Slim | 1996-04-29 | | Whistler | 1997-12-09 | | Chirpy | 1998-09-11 | | Puffball | 1999-03-30 | +----------+------------+
•
Sedangkan untuk mengurutkan data dari yang terbesar ke data yang terkecil digunakan perintah DESC dalam query yang digunakan. Sedangkan secara defaul ASC tidak perlu dicantumkan dalam query. mysql> SELECT name, birth FROM pet ORDER BY birth DESC; +----------+------------+ | name | birth | +----------+------------+ | Puffball | 1999-03-30 | | Chirpy | 1998-09-11 | | Whistler | 1997-12-09 | | Slim | 1996-04-29 | | Claws | 1994-03-17 | | Fluffy | 1993-02-04 | | Fang | 1990-08-27 | | Bowser | 1989-08-31 | | Buffy | 1989-05-13 | +----------+------------+
•
Mengurutkan data dari usia, merupakan penerapan dari perintah diatas mysql> SELECT name, birth, CURDATE(),(YEAR(CURDATE())-YEAR(birth)) (RIGHT(CURDATE(),5)
•
Mencari selisih dari kolom yang bertipe date mysql> SELECT name, birth, death, (YEAR(death)-YEAR(birth)) - (RIGHT(death,5)
Tutorial MySQL, perintah SQL
6
•
Mendapatkan kolom baru berupa kolom bulan dari data yang bertipe DATE mysql> SELECT name, birth, MONTH(birth) FROM pet; +----------+------------+--------------+ | name | birth | MONTH(birth) | +----------+------------+--------------+ | Fluffy | 1993-02-04 | 2 | | Claws | 1994-03-17 | 3 | | Buffy | 1989-05-13 | 5 | | Fang | 1990-08-27 | 8 | | Bowser | 1989-08-31 | 8 | | Chirpy | 1998-09-11 | 9 | | Whistler | 1997-12-09 | 12 | | Slim | 1996-04-29 | 4 | | Puffball | 1999-03-30 | 3 | +----------+------------+--------------+
•
Mendari data yang berhubungan dengan bulan tertentu, misal yang ulang tahunnya bulan mei. SELECT name, birth FROM pet WHERE MONTH(birth) = 5; +-------+------------+ | name | birth | +-------+------------+ | Buffy | 1989-05-13 | +-------+------------+
•
Pattern Matching Mencari data yang memiliki kemiripan Kemiripan data berada di depan kata, misal data yang dimulai dengan huruf d, maka pertintah SQLnya adalah : SELECT * FROM pet WHERE name LIKE 'b%'; +--------+--------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +--------+--------+---------+------+------------+------------+ | Buffy | Harold | dog | f | 1989-05-13 | NULL | | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+ Atau yang berakhiran dengan huruf 'fy' •
mysql> SELECT * FROM pet WHERE name LIKE '%fy'; +--------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +--------+--------+---------+------+------------+-------+ | Fluffy | Harold | cat | f | 1993-02-04 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +--------+--------+---------+------+------------+-------+
•
atau yang mengandung huruf tetentu, misalkan huruf 'w' mysql> SELECT * FROM pet WHERE name LIKE '%w%'; +----------+-------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +----------+-------+---------+------+------------+------------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+
Tutorial MySQL, perintah SQL
7
•
Menghitung jumlah kolom mysql> SELECT COUNT(*) FROM pet; +----------+ | COUNT(*) | +----------+ | 9 | +----------+
•
Menghitung jumlah kolom data yang sama, misal binatang yang dimiliki seseorang dalam tabel. mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner; +--------+----------+ | owner | COUNT(*) | +--------+----------+ | Benny | 2 | | Diane | 2 | | Gwen | 3 | | Harold | 2 | +--------+----------+
•
Mengetahui versi mysql> SELECT VERSION(), CURRENT_DATE; +-------------+--------------+ | VERSION() | CURRENT_DATE | +-------------+--------------+ | 5.0.2-alpha | 2007-03-05 | +-------------+--------------+ 1 row in set (0.58 sec)
Tutorial MySQL, perintah SQL
8