MySql


MySQL (My Structure Query Language) adalah salah satu database dari sekian banyak database lain seperti Oracle, MS SQL, PostgresSQL dan banyak lagi. Kesemuanya itu mempunyai fungsi dan manfaat yang hampir sama namun dalam pengerjaanya sedikit berbeda tetapi MySQL adalah penggunaan yang paling mudah.

Kenapa MySQL?
MySQL adalah database manajemen sistem (DBMS)
(Database Manajemen System) merupakan salah satu system dalam mengakses database yang menggunakan bahasa SQL, MySQL menggunakan bahasa SQL dan dapat dikatakan sebagai DBMS.

MySQL software open source

Open source artinya memungkinkan untuk semua orang untuk menggunakan dan memodifikasi software. Setiap orang dapat men-download MySQL dari internet dan menggunakannya tanpa membayar apapun. Jika mau, anda bisa mempelajari kode sumber dan menukar apa yang anda inginkan.

Kenapa menggunakan MySQL?

Database MySQL sangat cepat, reliable, dan mudah untuk digunakan, selain itu MySQL telah banyak menangani pembuatan software besar.

Bagaimana MySQL diimplementasikan pada WEB?
Karena dalam praktikum basisdata ini kita juga mempelajari PHP, maka berikut juga dijelaskan secara singkat bagaimana mempresentasikan bentuk hubungan yang dilakukan bahasa pemrograman dengan database
Dalam praktikum database ini kita membuat kesemua hal tersebut dalam sebuah PC, artinya database, webserver, bahasa programan dan web browser dilakukan dengan sebuah PC.

APLIKASI SERVER MYSQL

Didalam MySQL terdapat sebuah database yang ada sejak awal setelah anda menginstall MySQL, nama database tersebut adalah mysql dan pada database tersebut tersimpan nama-nama pengguna yang dapat menggunakan MySQL lengkap dengan opsi otoritas yang dapat dilakukan oleh pengguna tersebut. Secara default user dengan nama root adalah pengguna yang menguasai secara utuh dan dapat membuat user lainnya (termasuk membatasi user – user lain). Untuk dapat menggunakan MySQL anda harus memasukan user dan password yang sama dengan apa yang dideklarasikan dalam database (mysql).
Untuk dapat menjalankan MySQL adan harus menjalankan service atau layanan MySQL.
Berikut cara mengakses MySQL (dilakukan pada DOS (C:\\apache\mysql\bin\)atau mode text).
·   Masuk ke Server MySql
mysql -u root -h localhost -p
Enter password:************
Welcome to the MySQL monitor. Commands end with ; or
\g.
Your MySQL connection id is 2 to server version:
4.0.11a-gamma
Type 'help;' or '\h' for help. Type '\c' to clear the
buffer.
Keterangan :
-h : menunjukkan nama Host (dapat juga dengan alamat IP, ex : 184.36.25.1)
-u : menunjukkan nama User
-p : MySQL akan menanyakan password jika anda menggunakan opsi ini. Jika user yang anda gunakan tidak menggunakan password anda tidak perlu menggunakan opsi –p  ini.
 -p dapat juga digunakan untuk mendeklarasikan nama database yang anda gunakan (ex: mysql -u root - loclhost
-p latihan)
·   Keluar dari MySql
mysql> \q
Bye
BAB III

DATABASE


Database adalah kumpulan dari tabel-tabel, dan tabel merupakan kumpulan dari beberapa Field atau column. Untuk membuat suatu table maka seorang user harus membuat database terlebih dahulu. Dengan mengaktifkan database yang dibuat tersebut.
Ø  Membuat database dalam server
BU : CREATE Database Nm_Database;
Contoh :
mysql> create database Praktikum;
Query OK, 1 row affected (0.11 sec)
Ø  Melihat seluruh daftar database dalam server MySql
BU: SHOW Databases;
mysql> show databases;
+--------------+
| Database     |
+--------------+
| 1adminksl    |
| A1           |
| bahasa       |
| catalog      |
| praktikum    |
| sample       |
| survey       |
| tracking     |
| u            |
+--------------+
9 rows in set (0.27 sec)
Ø  Mengaktifkan/Menggunakan Database
Sebelum pembuatan tabel dan operasi-operasi yang berhubungan
dengan tabel maka database harus di aktifkan/digunakan.
BU : USE Nm_Database
Contoh :
mysql> use praktikum;
Database changed
Ø  Menghapus Database dari Server
BU : Drop Database Nm_Database
Contoh :
mysql> drop database praktikum;
Query OK, 0 rows affected (0.11 sec)

Ø  Aturan penamaan dalam pembuatan database :
1. Jangan menggunakan spasi dan spesial karakter dalam pembuatan
nama database
2. Jangan menggunkan angka pada awal pembuatan nama database


BAB IV
SUB BAHASA STRUCTURE QUERY LANGUAGE (SQL)

Secara umum bahasa SQL dibagi menjadi tiga bagian:
  1. DDL (Data Definition Language) yang digunakan untuk membangun objek-objek dalam database seperti tabel.
  2. DML (Data Manipulation Language) yang digunakan dalam memanipulasi suatu tabel didalam database (menambah, mengedit, mencari dan menghapus)
  3. DCL (Data Control Language) yang digunakan untuk menangani masalah keamanan dalam database server
Ketiga komponen ini bisa digunakan setelah suatu database di aktifkan.
1.      DDL (Data Definition Language)
Terdiri atas : Create, Alter, Drop
Ø  Membuat Tabel
Setelah menciptakan suatu database dan mengaktifkan database tersebut maka dapat dilakukan perintah pembuatan tabel
BU : CREATE TABLE Nm_Tabel (Nm_Kolom1 tipe data([ukuran]),
nm_kolom2 tipe data ([ukuran])….. nm_kolom_n tipe data ([ukuran]));
Untuk bentuk tipe data yang digunakan anda dapat merujuk ke manual
MySQL atau mengunjungi manual di http://mysql.com.
Contoh :
create table berita (tanggal date, berita text);
Ø  Melihat Struktur Tabel
Perintah describe nama_tabel; digunakan untuk melihat struktur table yang telah dibuat. Namun sebelumnya, sudah berada pada database yang mempunyai tabel tersebut.



Contoh :
mysql>describe produk;
+-------+--------------+------+------+----------+------+
| Field | Type         | Null | Key  | Default  |      |
+-------+--------------+------+------+----------+------+
| nama  | varchar(25)  | YES  |      | NULL     |      |
| harga | bigint       | YES  |      | NULL     |      |
+-------+--------------+------+------+----------+------+
2 ROWS IN SET (0.10 SEC)

Ø  Mengubah Struktur Tabel

Ada empat macam perubahan dalam struktur tabel, yaitu :
a. Perubahan nama field/kolom
Perubahan yang terjadi hanya pada nama field/kolom saja. Nama field/kolom lama diganti dengan nama field/kolom yang baru.
Struktur penulisan :

alter table nama_tabel change nama_field_lama nama_field_baru
tipe_data;
Contoh :
mysql>alter table toko change buku nama varchar(25);
b. Perubahan tipe data
Perubahan yang terjadi hanya pada tipe data yang digunakan oleh field/ kolom tertentu. Tipe data baru langsung disebutkan dibelakang nama field/ kolom, tanpa harus menyebutkan tipe data lama.
Struktur penulisan :
Alter table nama_tabel modify nama_field tipe_data_baru;
Contoh :
mysql>alter table toko modify nama longtext;
c. Penambahan field
Struktur tabel akan berubah dengan bertambahnya field/ kolom baru didalamnya.
Struktur penulisan :
Alter table nama_tabel add nama_field tipe_data_baru;
Contoh :
mysql>alter table supermarket add stok int;
d. Penghapusan field
Struktur tabel mengalami perubahan akibat berkurangnya field/kolom tertentu.
Struktur penulisan :
Alter table nama_tabel drop column nama_field;
Contoh :
mysql>alter table supermarket drop column stok;

Ø  Mengganti Nama Tabel

Penggantian nama tabel meliputi nama tabel itu sendiri.
Struktur penulisan :
Alter table nama_tabel_lama rename nama_tabel_baru;
Contoh :
mysql>alter table toko rename supermarket;
Ø  Menghapus Tabel
Tabel dapat saja dihapus karena sudah tidak dibutuhkan lagi,atau terjadi kesalahan.
Struktur penulisan :
Drop table nama_tabel;
Contoh :
mysql>drop table supermarket;
KEKANGAN NILAI PADA DATA

Ø  Menentukan Kunci Primer (Primary Key)
Secara sederhana kunci primer digunakan untuk menyatakan bahwa suatu nilai tidak boleh ada yang sama dan nilai tersebut harus diisi (NOT NULL).
Penetapan kunci primer dibuat pada saat pembuatan tabel:
mysql> create table siswa (NIM varchar(10) not null primary
 key,Nama varchar(25),SEX char(1),Alamat varchar(35));
Ø  Memberikan nilai bawaan (Default)
Jika tidak memberikan suatu nilai dalam kolom tertentu maka oleh system secara otomatis diisi dengan nilai NULL. Oleh karena itu pada saat perancangan table field tersebut defaultnya diisi dengan tetapan yang dikehendaki.
mysql> create table MatKul (KD_MK varchar(10) not null primary
 key,nama_MK varchar(20),SKS int default 0);

2.      DML (Data Manipulation Language)
Terdiri dari SELECT, INSERT, UPDATE dan DELETE
Ø  Memasukkan Data (Insert)
Ada dua cara yang dapat digunakan untuk memasukkan data kedalam tabel, yaitu:
1. insert into nama_tabel values (isi_field_2,…,isi_field_n);
Contoh :
insert into produk values (‘SG 100’,2500);
2. insert into nama_tabel (nama_field_1, nama_field_2,…,nama_ field_n) values 
     (isi_field_1, isi_field_2,…,isi_field_n);
Contoh :
Insert into produk (kode,harga) values (‘SG 100’,25000);
Ø  Menampilkan Data (Select)
Berikut ini perintah untuk menampilkan data :
Struktur Penulisan :
Select [fields] from [nama_tabel]
Where [kondisi]
Order by [nama_field]
Group by [nama_field] asc / desc
Contoh :
Select kode from produk;
Select kode,harga from produk;
Select * from produk;
Note :
Setelah penulisan select, [fields] dapat diganti dengan menyebutkan satu nama field saja atau beberapa field sekaligus yang dipisah dengan tanda koma (,). Penulisan field-field tersebut digunakan untuk memunculkan data dari kolom mana saja yang akan ditampilkan. Jika seluruh kolom akan ditampilkan dapat menggunakan tanda asterik (*) untuk mewakilinya.
Ø  Mengurutkan Tampilan
Klausa ORDER BY digunakan untuk mengurutkan hasil. Jika menginginkan data ditampilkan urut berdasarkan pada urutan terkecil ke besar, dapat menggunakan ASC (ascending). Sedangkan untuk mengurutkan data berdasarkan yang terbesar ke kecil, dapat menggunakan DESC (descending).
mysql> select * from siswa order by NIM desc;
+------------+---------------+---------------+------+
| NIM        | Nama          | alamat        | Sex  |
+------------+---------------+---------------+------+
| 01.05.2004 | Leon Auman    | Jl. depok     | P    |
| 01.05.2003 | Annisa Akhwat | Jl. Mawar     | W    |
| 01.05.2002 | Abu Bakar     | Jl. Tunjung   | P    |
| 01.05.2001 | Laksmi dewi   | Jl. Balapan   | W    |
| 01.05.2000 | Budi R        | Jl. Kaliurang | P    |
+------------+---------------+---------------+------+
5 rows in set (0.11 sec)
Ø  Mengubah Data (Update)
Jika data sudah kadaluarsa, berikut perintah digunakan untuk merubah data.
Struktur penulisan :
Update nama_tabel set nama_field_1=isi_baru_1, nama_field_2= isi_baru_2,…, nama_field_n=isi_baru_n Where kriteria;
Contoh :
Update produk set harga=3000 where nama=’Sikat Gigi’;

OPERATOR RELASIONAL
Operator yang digunakan yntuk perbandingan antara dua buah nilai. Jenis dari operator ini adalah = , >, <, >=, <=, <>
mysql> select * from siswa where sex='P';
+------------+------------+---------------+------+
| NIM        | Nama       | alamat        | Sex  |
+------------+------------+---------------+------+
| 01.05.2000 | Budi R     | Jl. Kaliurang | P    |
| 01.05.2002 | Abu Bakar  | Jl. Tunjung   | P    |
| 01.05.2004 | Leon Auman | Jl. depok     | P    |
+------------+------------+---------------+------+
3 rows in set (0.06 sec)

Ø  Operator BETWEEN dan NOT BETWEEN
Operator between ini untuk menangani operasi “jangkauan”
mysql> select * from siswa where tgl_lhr between '1980-01-01' and '1982-12-29';
+------------+---------------+---------------+------+------------+
| NIM        | Nama          | alamat        | Sex  | Tgl_lhr    |
+------------+---------------+---------------+------+------------+
| 01.05.2000 | Budi R        | Jl. Kaliurang | P    | 1982-03-17 |
| 01.05.2001 | Laksmi dewi   | Jl. Balapan   | W    | 1982-10-21 |
| 01.05.2003 | Annisa Akhwat | Jl. Mawar     | W    | 1980-01-12 |
+------------+---------------+---------------+------+------------+
Ø  Operator IN dan NOT IN
Operator IN digunakan untuk mencocokkan dengan salah satu yang ada pada suatu daftar nilai. Sebagai contoh :
mysql> select nama from siswa where nim in
('01.05.2000','01.05.2004');
+------------+
| nama       |
+------------+
| Budi R     |
| Leon Auman |
+------------+
2 rows in set (0.00 sec)

Ø  Operator LIKE dan NOT LIKE
Operator LIKE atau NOT LIKE sangat bermanfaat dalam mencari suatu data. Operasi ini digunakan dengan menyebutkan tanda wildcard berupa garis bawah (_) atau (%)
<. Tanda garis bawah (_) berarti sebuah karakter apa saja. Contoh a_u cocok dengan
    anu,aku,alu,abu dan tidak cocok untuk andu,ambu ataupun allu
<. Tanda % berarti cocok dengan kata apa saja dan berapapun panjangnya
contoh:
mysql> select nim,nama,alamat from siswa where nama like 'a%';
+------------+---------------+-------------+
| nim        | nama          | alamat      |
+------------+---------------+-------------+
| 01.05.2002 | Abu Bakar     | Jl. Tunjung |
| 01.05.2003 | Annisa Akhwat | Jl. Mawar   |
+------------+---------------+-------------+
2 rows in set (0.00 sec)
FUNGSI AGREGAT
Contoh :
mysql> select avg(nilai) from nilai;
+------------+
| avg(nilai) |
+------------+
| 63.0000    |
+------------+
1 row in set (0.05 sec)

mysql> select count(nama) from siswa;
+-------------+
| count(nama) |
+-------------+
| 5           |
+-------------+
1 row in set (0.00 sec)

mysql> select max(nilai),min(nilai) from nilai;
+------------+------------+
| max(nilai) | min(nilai) |
+------------+------------+
| 100        | 10         |
+------------+------------+
1 row in set (0.05 sec)
mysql> select sum(nilai) from nilai;
+------------+
| sum(nilai) |
+------------+
| 315        |
+------------+
1 row in set (0.05 sec)

Ekspresi Pada Query
Ekspresi pada query memungkinkan untuk mengubah judul kolom keluaran, melakukan perhitungan pada kolom keluaran, dan mengubah tipe data keluaran.
Ø  Memberi nama lain terhadap kolom keluaran
Untuk memberi nama lain terhadap suatu kolom keluaran dengan klausa AS.
mysql> select nim,nilai*10 as Nilai_MHS from nilai;
+------------+-----------+
| nim        | Nilai_MHS |
+------------+-----------+
| 01.05.2000 | 900       |
| 01.05.2001 | 400       |
| 01.05.2002 | 750       |
| 01.05.2003 | 100       |
| 01.05.2004 | 1000      |
+------------+-----------+
5 rows in set (0.00 sec)
Ø  Menambah teks dalam baris keluaran
mysql> select 'No Mahasiswa ',nim,' Nilainya ',nilai from
 nilai;
+---------------+------------+------------+-------+
| No Mahasiswa  | nim        | Nilainya   | nilai |
+---------------+------------+------------+-------+
| No Mahasiswa  | 01.05.2000 | Nilainya   | 90    |
| No Mahasiswa  | 01.05.2001 | Nilainya   | 40    |
| No Mahasiswa  | 01.05.2002 | Nilainya   | 75    |
| No Mahasiswa  | 01.05.2003 | Nilainya   | 10    |
| No Mahasiswa  | 01.05.2004 | Nilainya   | 100   |
+---------------+------------+------------+-------+
Ø  Ekpresi berkondisi
BU : CASE nilai_ekspresi WHEN nilai_ekspresi THEN nilai_ekspresi ELSE nilai_ekspresi END
mysql> select nim,nama,case sex when 'P' then 'Pria' else 'Wanita' end as sex from siswa;
+------------+---------------+--------+
| nim        | nama          | sex    |
+------------+---------------+--------+
| 01.05.2000 | Budi R        | Pria   |
| 01.05.2001 | Laksmi dewi   | Wanita |
| 01.05.2002 | Abu Bakar     | Pria   |
| 01.05.2003 | Annisa Akhwat | Wanita |
| 01.05.2004 | Leon Auman    | Pria   |
+------------+---------------+--------+
5 rows in set (0.06 sec)
Ø  Ekspresi tentang Waktu
Pernyataan berikut akan menampilkan identitas sisa yang tanggal lahirnya lebih dari tanggal 29 desember 1980
mysql> select nim,nama,tgl_lhr from siswa where tgl_lhr>date '1980- 12-29';




+------------+-------------+------------+
| nim        | nama        | tgl_lhr    |
+------------+-------------+------------+
| 01.05.2000 | Budi R      | 1982-03-17 |
| 01.05.2001 | Laksmi dewi | 1982-10-21 |
| 01.05.2004 | Leon Auman  | 1983-01-19 |
+------------+-------------+------------+
3 rows in set (0.00 sec)

mysql> select time '23:12:00'-time '05:00:00';
+---------------------------------+
| time '23:12:00'-time '05:00:00' |
+---------------------------------+
| 18                              |
+---------------------------------+
1 row in set (0.06 sec)

FUNGSI NILAI
CURRENT_DATE : Menghasilkan tanggal sekarang
CURRENT_TIME : Menghasilkan Waktu sekarang
mysql> select current_date as Tgl_Sekarang;
+--------------+
| Tgl_Sekarang |
+--------------+
| 2003-10-08   |
+--------------+
1 row in set (0.06 sec)

mysql> select current_time as Waktu_Sekarang;
+----------------+
| Waktu_Sekarang |
+----------------+
| 06:45:14 |
+----------------+
1 row in set (0.06 sec)
QUERY ANTAR TABEL
Query yang akan dibahas pada bagian ini melibatkan lebih dari satu tabel
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| NIM     | varchar(10) |      | PRI |         |       |
| Nama    | varchar(25) | YES  |     | NULL    |       |
| alamat  | varchar(35) | YES  |     | NULL    |       |
| Sex     | char(1)     | YES  |     | P       |       |
| Tgl_lhr | date        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
Struktur dari table Siswa
+------------+---------------+---------------+------+------------+
| NIM        | Nama          | alamat        | Sex  | Tgl_lhr    |
+------------+---------------+---------------+------+------------+
| 01.05.2000 | Budi R        | Jl. Kaliurang | P    | 1982-03-17 |
| 01.05.2001 | Laksmi dewi   | Jl. Balapan   | W    | 1982-10-21 |
| 01.05.2002 | Abu Bakar     | Jl. Tunjung   | P    | 1977-12-29 |
| 01.05.2003 | Annisa Akhwat | Jl. Mawar     | W    | 1980-01-12 |
| 01.05.2004 | Leon Auman    | Jl. depok     | P    | 1983-01-19 |
+------------+---------------+---------------+------+------------+
Isi dari table Siswa
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| NIM   | varchar(10) |      | PRI |         |       |
| Nilai | int(11)     | YES  |     | 0       |       |
+-------+-------------+------+-----+---------+-------+
Struktur dari table Siswa
+------------+-------+
| NIM        | Nilai |
+------------+-------+
| 01.05.2000 | 90    |
| 01.05.2001 | 40    |
| 01.05.2002 | 75    |
| 01.05.2003 | 10    |
| 01.05.2004 | 100   |
+------------+-------+
Isi dari table Siswa

MySQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih guna mendapatkan informasi yang diinginkan. Proses yang dilakukan dengan nama JOIN.
Dalam penggabungan dari beberapa tabel (join) ada beberapa hal yang perlu diperhatian, antara lain :
  1. Setiap kolom disebutkan dengan bentuk,
  2. tabel-tabel yang dilibatkan dalam queri perlu disebutkan dalam Klausa FORM dengan antar tabel dipisah oleh koma.
  3. Kondisi dalam WHERE menetukan macam join yang terbentuk

Contoh:
mysql> select siswa.nim,nama,nilai from nilai,siswa where nilai.nim=siswa.nim;
+------------+---------------+-------+
| nim        | nama          | nilai |
+------------+---------------+-------+
| 01.05.2000 | Budi R        | 90    |
| 01.05.2001 | Laksmi dewi   | 40    |
| 01.05.2002 | Abu Bakar     | 75    |
| 01.05.2003 | Annisa Akhwat | 10    |
| 01.05.2004 | Leon Auman    | 100   |
+------------+---------------+-------+
Macam-macam bentuk Penggabungan (Join)
1. CROSS JOIN
Cross Join merupakan bentuk penggabungan yang paling sederhana,  tanpa ada kondisi.
BU : SELECT field1,field2 FROM Tabel1 CROSS JOIN tabel2;

2. INNER JOIN
Hampir sama dengan cross join tetapi diikuti dengan kondisi
BU : SELECT Field FROM tabel1 INNER JOIN tabel 2 ON kondisi
mysql> select * from siswa inner join nilai on siswa.nim=nilai.nim;
+------------+---------------+---------------+------+------------+------------+-------+
| NIM        | Nama          | alamat        | Sex  | Tgl_lhr    | NIM        |Nilai  |
+------------+---------------+---------------+------+------------+------------+-------+
| 01.05.2000 | Budi R        | Jl. Kaliurang | P    | 1982-03-17 | 01.05.2000 | 90    |
| 01.05.2001 | Laksmi dewi   | Jl. Balapan   | W    | 1982-10-21 | 01.05.2001 | 40    |
| 01.05.2002 | Abu Bakar     | Jl. Tunjung   | P    | 1977-12-29 | 01.05.2002 | 75    |
| 01.05.2003 | Annisa Akhwat | Jl. Mawar     | W    | 1980-01-12 | 01.05.2003 | 10    |
| 01.05.2004 | Leon Auman    | Jl. depok     | P    | 1983-01-19 | 01.05.2004 | 100   |
+------------+---------------+---------------+------+------------+------------+-------+
3. STRAIGHT JOIN
Straight Join identik dengan inner join tetapi tidak mengenal klausa where
BU : SELECT field FROM Tabel1 SATRIGHT JOIN tabel2
4. LEFT (OUTER) JOIN
Akan menampilkan tabel disebelah kanannya (dalam hal ini table nilai) dengan NULL jika tidak terdapat hubungan antara table disebelah kiri (dalam hal ini tabel siswa)
BU : SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi
Contoh :
mysql> select siswa.nim,nama,nilai from siswa left join
nilai on siswa.nim=nilai.nim;
+------------+---------------+-------+
| nim        | nama          | nilai |
+------------+---------------+-------+
| 01.05.2000 | Budi R        | 90    |
| 01.05.2001 | Laksmi dewi   | 40    |
| 01.05.2002 | Abu Bakar     | 75    |
| 01.05.2003 | Annisa Akhwat | 10    |
| 01.05.2004 | Leon Auman    | 100   |
+------------+---------------+-------+
5. RIGHT/OUTER JOIN
Kebalikan dari LEFT JOIN, jika idak menemukan hubungan dengan tabel disebelah kiri maka akan ditampilkan NULL
BU : SELECT field FROM tabel1 RIGHT JOIN tabel2 ON kondisi
Contoh :
mysql> select siswa.nim,nama,nilai from siswa right join nilai on siswa.nim=nilai.nim;
+------------+---------------+-------+
| nim        | nama          | nilai |
+------------+---------------+-------+
| 01.05.2000 | Budi R        | 90    |
| 01.05.2001 | Laksmi dewi   | 40    |
| 01.05.2002 | Abu Bakar     | 75    |
| 01.05.2003 | Annisa Akhwat | 10    |
| 01.05.2004 | Leon Auman    | 100   |
| NULL       | NULL          | 68    |
+------------+---------------+-------+
6 rows in set (0.06 sec)
Menghapus Data (Delete)
Jika terdapat kesalahan data atau data sudah tidak digunakan lagi, hapus dengan perintah delete.
Struktur penulisan :
Delete from nama_tabel where kriteria;
Contoh :
Delete from produk where nama=’Sikat Gigi’,

USER DAN HAK AKSES USER
Sebagai seorang adminitrator database user ROOT mempunyai hak dalam membuat user dan memberikan hak-hak akses terhapad user baru tersebut.
Untuk Melihat struktur dari table user
mysql>describe user;
Perintah membuat User Baru
Nama User = User1, Host di Local dan password=user1
mysql> use mysql;
Database changed
mysql> insert into user (host,user,password)
values (‘Localhost','User1',password('user'));
Query OK, 1 row affected (0.39 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.22 sec)
Keterangan :
Host :   Localhost – user hanya dapat mengakses MySQL hanya di komputer local /
server saja
IP Address – User hanya dapat mengakses MySQL di komputer dengan alamat IP yang telah didefinisikan
% - User dapat mengakses MySQL dari komputer manapun

User : Nama atau ID yang digunakan untuk Login
Password : Digunakan untuk keamanan server database
Dan Password di enkripsi untuk keamanan user.
Flush Privileges : Wajib diberikan untuk menetapkan user dalam
server dan digunakan selain pembuatan user baru juga dalam
mengedit user maupun menghapus user dari server
Setiap User mempunyai 14 Hak Akses, yaitu :
Ø  Pemberian Hak Akses pada saat pembuatan user
mysql> insert into user (host,user,password,select_priv) values ('Localhost',
'User1',password('user1'),'Y');
Query OK, 1 row affected (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.05 sec)
Ø  Melihat daftar user yang terdaftar di server
mysql> select * from User;
Ø  Mengubah nama host dari localhost ke no IP 192.168.1.1 dari user1
mysql> update user set host='192.168.1.1' where
user='User1';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.05 sec)


Ø  Mengubah Nama user dari User1 ke User2
mysql> update user set user='User2' where
user='User1';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.05 sec)
Ø  Mengubah Password dari User2
mysql> update user set password=password('User2') where
user='User2';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
Ø  Mengubah dan menambah hak akses dari user2
mysql> update user set Insert_Priv='Y' where
user='User2';
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Ø  Menghapus User2 dari Server
mysql> delete from user where user='User2';
Query OK, 1 row affected (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.05 sec)
3. DCL (Data Control Language)
Terdiri atas (GRANT dan REVOKE)
DCL merupakan kontrol keamanan terhadap database dan tabelnya., yaitu
mengatur hak akses dan cara mencabut hak akses, agar tabel-tabel tertentu hanya
bisa diakses oleh orang-orang yang dikehendaki.
a. GRANT
Grant digunakan untuk mengizinkan seorang user mengakses tabel
dalam database tertentu. Pemberian hak akses ini dengan clausa
GRANT.
28
BU : GRANT hak_akses ON Nm_Tabel TO Pemakai
Keterangan :
Hak Akses adalah hak-hak yang diberikan server administrator
kepada user, antara lain : ALTER, CREATE, DELETE, DROP,
UPDATE, INSERT, FILE, PROCESS, RELOAD,
REFERENCES,LOAD, SHUTDOWN DAN USAGE
Nm_Tabel adalah nama-nama tabel yang akan akan diakses atau
pemberian hak kepada user.
Pemakai adalah nama user yang akan diberi hak, dengan ketentuan
nama pemakai diikuti nama dari host diawalai tanda @
Contoh :
Dberikan semua hak akses semua tabel dalam database praktikum
terhadap user User1 di localhost
mysql> grant all privileges on praktikum.* to
User1@localhost;
Query OK, 0 rows affected (0.06 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.11 sec)
Dberikan hak akses insert dan select dalam database praktikum
dengan tabel siswa terhadap user User1 di localhost
mysql> grant select,insert on praktikum.siswa to
User1@localhost;
Query OK, 0 rows affected (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
b. REVOKE
REVOKE digunakan untuk Mencabut hak akses seorang user
mengakses tabel dalam database tertentu. Pencabutan hak akses ini
dengan clausa REVOKE.
BU : REVOKE hak_akses ON Nm_Tabel FROM Pemakai
Keterangan :
Hak Akses adalah hak-hak yang diberikan server administrator
kepada user, antara lain : ALTER, CREATE, DELETE, DROP,
UPDATE, INSERT, FILE, PROCESS, RELOAD,
REFERENCES,LOAD, SHUTDOWN DAN USAGE
Nm_Tabel adalah nama-nama tabel yang akan akan diakses atau
pemberian hak kepada user.
Pemakai adalah nama user yang akan diberi hak, dengan ketentuan
nama pemakai diikuti nama dari host diawalai tanda @
Contoh :
Dicabut semua hak akses semua tabel dalam database praktikum
terhadap user User1 di localhost
mysql> REVOKE all privileges on praktikum.* From
User1@localhost;
Query OK, 0 rows affected (0.06 sec)
mysql> flush privileges;
30
Query OK, 0 rows affected (0.11 sec)
Dicabut hak akses insert dan select dalam database praktikum dengan
tabel siswa terhadap user User1 di localhost
mysql> REVOKE select,insert on praktikum.siswa FROM
User1@localhost;
Query OK, 0 rows affected (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

Untuk Materi mysql kali ini baru sedikit, semoga bermanfaat dan saya harap ketika teman-teman temui kesalahan berkenan memberikan kritik dan saran ataupun komentar. terima kasih

Cari Blog Ini

Memuat...