Friday, May 13, 2016

AMS (Account Management Statement) di MYSQL

AMS sendiri berisikan perintah – perintah yang dapat digunakan untuk melakukan pengelolaan account di MySQL yang diantaranya terdiri dari pembuatan user dan pemberian hak akses.

PENGELOLAAN USER ACCOUNT
Di dalam MySQL, data dari user tersimpan di dalam tabel user yang ada di dalam database mysql, sehingga bila ingin melakukan pengelolaan account, maka user yang harus digunakan adalah user yang mempunyai akses ke tabel user tersebut (bisa menggunakan user root terlebih dahulu).

1) Pembuatan User baru
Untuk membuat user account baru bisa menggunakan perintah di bawah ini : 

CREATE USER 'newuser'@'host' IDENTIFIED BY 'password';

Keterangan
newuser : nama dari user baru yang akan di buat
host : nama komputer atau alamat IP dari user baru yang akan dibuat
password : password dari user baru, bila tidak ingin diberi password hilangkan
perintah IDENTIFIED BY 'password';

2) Menampilkan Daftar User Account
Untuk menampilkan user yang ada di MySQL gunakan perintah di bawah ini :

SELECT user, host, password FROM mysql.user;

Sedangkan bila ingin mengetahun user yang sekarang sedang anda gunakan bisa mencoba menggunakan perintah di bawah ini :

SELECT CURRENT_USER();

3) Login Ke MySQL
Setelah berhasil membuat user baru, sekarang logout dari user yang sedang anda gunakan dengan menggunakan perintah di bawah ini :

EXIT;

Setelah berhasil logout, coba login ke MySQL dengan menggunakan user yang telah dibuat dengan menggunakan perintah di bawah ini :

MYSQL -u namauser -ppassword -h host

4) Penggantian / Pemberian Password
Bila ingin memberikan / mengganti password dari user yang sedang digunakan
(CURRENT_USER), silahkan gunakan perintah di bawah ini :

SET PASSWORD = PASSWORD('PasswordBaru');

Sedangkan bila ingin memberikan / mengganti passwword dari user yang tidak sedang digunakan, bisa menggunakan perintah di bawah ini :

SET PASSWORD FOR 'NamaUser'@'Host' = PASSWORD('PasswordBaru');

5) Penggantian Nama User
Bila ingin merubah nama dari user yang sudah dibuat, bisa menggunakan perintah di bawah ini :

RENAME USER 'NamaUserLama'@'host' TO 'NamaUserBaru'@'host';

6) Penghapusan User
Bila ingin menghapus user yang telah ada, bisa menggunakan perintah di bawah ini :

DROP USER 'NamaUserYangAkanDihapus'@'host';

Transaction Control Language (TCL) di MySQL

Transaction Control Language (TCL) adalah salah satu bagian dari Structured Query Language (SQL) yang digunakan untuk mengatur perubahan yang dilakukan melalui perintah yang masuk dalam kategori Data Manipulation Language (DML) seperti, insert into, delete from, update set.dan lain - lain. Di dalam dokumentasi MySQL, TCL masuk dalam bagian Transactional and Locking Statement.

perintah – perintah TCL yang ada di Transactional and Locking Statement :

START TRANSACTION / BEGIN;
Digunakan untuk memulai proses transaksi

COMMIT;
Mengakhiri transaksi dengan menerapkan perubahan yang telah dilakukan secara permanen

ROLLBACK;
Mengakhiri transaksi dengan membatalkan perubahan yang telah dilakukan.
Ada kalanya pada sebuah transaksi yang komplek, kita ingin membatalkan transaksi tetapi tidak semuanya, melainkan hanya bagian tertentu saja. Untuk melakukan hal itu kita perlu menggunakan perintah di bawah ini :
SAVEPOINT NamaSavePoint
Digunakan untuk membuat savepoint
ROLLBACK TO SAVEPOINT NamaSavePoint
Digunakan mengembalikan kondisi saat dibuat savepoint
RELEASE SAVEPOINT NamaSavePoint
Digunakan untuk menghapus savepoint

SET autocommit
Melakukan pengaturan autocommit (aktif / non aktif)




SubQUERY di MYSQL

Fasilitas SubQuery mulai ada pada MySQL 4. Sub Query adalah query nested atau sebuah query yang ada di dalam query lainnya. Sub query merupakan pernyataan SELECT yang merupakan bagian dari pernyataan INSERT, SELECT. Sub query digunakan untuk menangani masalah dalam query yang kompleks bahkan kita tidak tahu nilai berapa yang akan di select atau di insert. Beberapa kegunaan dari Sub Query adalah :
1) Menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui.
2) Meng-copy data dari satu tabel ke tabel lain
3) Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
4) Menghapus baris dari satu tabel berdasarkan baris dari tabel lain

A. Perbandingan dengan menggunakan Sub Query
Adalah SubQuery dengan menggunakan operator perbandingan (= > < >= <= <> != <=>).

B. Sub Query dengan menggunakan ANY, SOME atau IN
Perintah ANY atau SOME yang diikuti dengan operator perbandingan memiliki arti menampilkan nilai yang sesuai dengan apapun yang dihasilkan oleh SubQuery. Sedangkan IN digunakan untuk menampilkan nilai yang ada di salah satu hasil SubQuery.

C. Sub Query dengan menggunakan ALL
Perintah ALL digunakan untuk melakukan perbandingan dengan SubQuery. Kondisi dengan ALL menghasilkan nilai benar jika perbandingan menghasilkan nilai benar untuk setiap nilai dalam SubQuery.

D. Sub Query dengan menggunakan EXIST atau NOT EXISTS
Perintah EXISTS disini berguna untuk mengatur penampilan hasil query, query utama akan dijalankan jika sub query bernilai TRUE (ada hasilnya), jika hasilnya kosong maka query utama tidak akan dijalankan. Lawan dari perintah EXISTS adalah NOT EXISTS.

E. Sub Query di dalam klausa FROM
SubQuery tidak hanya bisa diletakkan setelah klusa WHERE, akan tetapi bisa juga diletakkan di dalam klausa FROM.

F. Sub Query untuk mengupdate Record
SubQuery juga bisa digunakan dalam proses updating data yang menggunakan perintah SELECT, UPDATE ataupun DELETE.


PENGGUNAAN FUNGSI TANGGAL DAN WAKTU DI MYSQL

1) Tanggal Sekarang
SELECT NOW(), CURDATE(), CURTIME();
NOW() = Menampilkan tanggal dan waktu sekarang
CURDATE() = Menampilkan tanggal sekarang
CURTIME() =Menampilkan waktu sekarang

2) Mengatur format
SELECT DATE_FORMAT(NOW(), '%d/%m/%Y') as tanggal1, DATE_FORMAT(NOW(), '%M %D, %Y') as tanggal2;

berikut ini adalah format tanggal yang ada di mysql:
%a = Abbreviated weekday name (Sun..Sat) 
%b = Abbreviated month name (Jan..Dec) 
%c = Month, numeric (0..12) 
%D = Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) 
%d = Day of the month, numeric (00..31) 
%e = Day of the month, numeric (0..31) 
%f = Microseconds (000000..999999) 
%H = Hour (00..23) %h Hour (01..12) 
%I = Hour (01..12) %i Minutes, numeric (00..59) 
%j = Day of year (001..366) %k Hour (0..23) 
%l = Hour (1..12) 
%M = Month name (January..December) 
%m = Month, numeric (00..12) 
%p = AM or PM 
%r = Time, 12-hour (hh:mm:ss followed by AM or PM) 
%S = Seconds (00..59) 
%s = Seconds (00..59) 
%T = Time, 24-hour (hh:mm:ss) 
%U = Week (00..53), where Sunday is the first day of the week; WEEK() mode 0
%u = Week (00..53), where Monday is the first day of the week; WEEK() mode 1 
%V = Week (01..53), where Sunday is the first day of the week; WEEK() mode 2; used with %X 
%v = Week (01..53), where Monday is the first day of the week; WEEK() mode 3; used with %x 
%W = Weekday name (Sunday..Saturday) 
%w = Day of the week (0=Sunday..6=Saturday) 
%X = Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%x = Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v 
%Y = Year, numeric, four digits 
%y = Year, numeric (two digits) 
%% = A literal “%” character 
%x = x, for any “x” not listed above