Cara Mengkoneksikan PHP dengan MySQL

Wah nggak terasa dah lebih 1 bulan blog ini nggak kunjung update.karna kemaren lagi sakit-sakitan jadinya blog ini nggak ke urus..ibarat orang kayak nya ni blog dah lapar banget..hahhahaa..langung kepokok bahasan aja deh..sesuai judul diatas,pada poting kali ini saya akan menuliskan sedikit tutorial tentang Cara Koneksi Antara PHP dengan MySQL.
dikampus saya juga lagi belajar program ini..siapa tahu aja ada para pembaca yang butuh dengan tutorial ini..
Ok..sebelum kita melaui ketahap koneksi..pembaca harus menyiapkan satu database dulu..kalo pembuatannya databasenya itu terserah pembaca aja..mau dari mysql yang versi berapa juga sama kok..untuk nama database atau table nya..itu sesuai dengan keinginan pembaca..disini saya menggunakan database dengan nama "sosa" dan untuk tabelnya saya beri nama "Jual_Voucher" nah, setelah database dan table sudah jadi, sekarang kita tinggal melakukan koneksinya.
Nah sekarang buka aplikasi tempat dimana kita akan meletakkan script php nantinya..itu juga terserah pembaca,mau pke notepad,macromedia gimana mudahnya aja..hehehhe
Setelah itu pembaca tinggal mengcopy script berikut :


<?
$link=mysql_connect(" localhost" ," root" ," " );
$db=mysql_select_db(" sosa" ,$link);
$query=" select * from jual_voucher order by no" ;
$hasil=mysql_query($query,$link);
$banyak=mysql_num_rows($hasil);
if ($banyak>0)
{
echo
" <p align=center> data yang ada dalam tabel sebanyak $banyak record <center>" ;

echo" <table border=1 cellpading=2 p align=center >
<tr bgcolor=silver>
<td align=center>kode barang</td>
<td align=center>Nama Barang</td>
<td align=center>Tanggal Masuk</td>
<td align=center>Harga</td>
<td align=center>stok</td>
</tr>" ;

while($data=mysql_fetch_row($hasil))
{

echo" <tr>
<td align=center>$data[0]</td>
<td align=center>$data[1]</td>
<td align=center>$data[2]</td>
<td align=center>$data[3])</td>
<td align=center>$data[4]</td>
</tr>" ;
}
echo " </table>" ;
}
else

echo" Tidak ada data dalam tabel" ;
mysql_close($link);
?>

Untuk lebih paham tentang script diatas, berikut keterangannya

a. mysql_connect (namaserver,username,password) printah ini digunakan untuk melakukan koneksi ke database server.Fungsi ini menghasilkan suatu pengenal link (link identifier) yang digunakan untuk perintah berikutnya.
b. Mysql_select_db printah ini digunakan untuk memilih database apa yang akan diproses.
c. Mysql_query perintah ini digunakan untuk mengeksekusi perintah SQL yang ada di parameter query.fungsi ini akan menghasilkan suatu petunjuk kehasil eksekusi (result)
d. Mysql_num_rows(link result) perintah ini digunakan untuk menampilkan berapa data yang akan dihasilkan dari eksekusi query(result)
e. Mysql_fetch_row(link result) berfungsi untuk mengambil satu baris data dari proses eksekusi query, perintah ini menghasilkan array yang dimulai dengan index 0.
f. Mysql_close (link identifier) berfungsi untuk menutup koneksi sesuai dengan link identifiernya..


--------------------------------------   Semoga bermanfaat    --------------------------------
Pengertian Procedure Mysql

Pengertian Procedure Mysql

Pada postingan ini saya akan membahas sedikit tentang procedure � procedure yang digunakan dalam membangun suatu basis data atau yang sering disebutkan dengan database dengan menggunakan bahasa pemrograman mysql.untuk lebih memahami apa yang dimaksud dengan procedure..berikut pengertian singkat mengenai procedure

Pengertian Procedure.
Procedure Adalah program yang disimpan dalam database seperti halnya data. Hal ini sebenanya cukup tidak umum, karena kita mengharapkan yang disimpan dalam database adalah data bukannya program.

A. Pembahasan tentang Stored Procedure :
  1. Adanya dukungan Stored Procedure akan membuat program anda lebih ringkas dan mudah untuk dikembangkan.
  2. Dengan stored procedure : algoritma yang lama dimasukkan ke dalam stored procedure di SQL server, disimpan di server (misal dengan nama DoProsesStock). Pada program, cukup ditulis perintah SQL : Exec DoProsesStock StartDate, EndDate . Selanjutnya, SQL Server akan mengeksekusi perintah proses yang anda inginkan. satu kali perubahan proses, akan berlaku untuk semua user yang terhubung ke database, bahkan saat program masih berjalan di tiap komputer user (program tidak perlu dimatikan dulu).
  3. Stored procedure akan menyederhanakan perintah SELECT * FROM table yang memang rumit, misal untuk laporan. Perintahnya dan algoritma nya sama dengan yang nomor 1. Bayangkan bila anda harus membuat perintah SELECT dari sebuah tabel, tapi juga diikuti kondisi2 tertentu yang biasanya berhubungan dengan data dari tabel lain.
  4. Stored procedure akan membantu anda dalam membuat laporan yang sifatnya analisa data, yang biasanya memerlukan banyak sekali tabel2 pembantu. Bagaimana bisa? Stored procedure, dapat membuat tabel temporary yang disimpan sementara di dalam memori server selama proses berlangsung, atau bisa juga selama program connect.
  5. Stored procedure mengefisienkan proses, sehingga semua daya hanya akan dipusatkan di komputer server saja. Komputer client dapat berupa pentium 233 MMX, tapi dapat melakukan serangkaian proses yang rumit dan tetap tidak lambat. Karena bukan client yang berpikir, tetapi server yang melakukan pekerjaan, jadi client hanya akan mendapatkan data jadinya saja.
Pembuatan Stored Procedure :
Anda dapat membuat stored procedure dengan program SQl Browser apa saja. bahkan cukup dengan sebuah TMemo, ADOConnection dan ADOQuery, anda sudah dapat membuat form untuk membuat stored procedure, tapi yang paling mudah digunakan adalah Query Analizer dari MS SQL Server. Syntax yang digunakan adalah :
CREATE PROCEDURE nama_stored_procedurenya @parameter1 tipe_data, @parameter2 2 tipe_data AS isi procedurenya.

Penjelasan.
  1. Nama stored_procedure tidak boleh sama dengan nama fungsi internal, misal CREATE PROCEDURE SUM, tidak boleh ada spasi, tapi bisa menggunakan karakter _
  2. Untuk membuat stored procedure gunakan perintah CREATE, untuk mengedit gunakan ALTER , untuk menghapus gunakan DROP, perintah CREATE, ALTER, DROP dapat digunakan juga untuk membuat TABLE, VIEW, TRIGGER, FUNCTION, misal CREATE VIEW, ALTER FUNCTION,dsb
  3. SQL Server mengenali parameter/variabel karena ada tanda @, contoh : @nama_barang char(50), @tanggal datetime, dsb
  4. Untuk deklarasi parameter di Stored Procedure gunakan DECLARE, contoh : DECLARE @StartDate datetime, @EndDate datetime, dst..
  5. Untuk memasukkan nilai ke sebuah parameter, gunakan SET atau SELECT, contoh : SET @nama='Itanium' SET @Web='Klik-kanan' (perintah SET hanya bisa untuk 1 variabel saja)
  6. SELECT @nama='Itanium', @Web='Klik-kanan' (perintah SELECT bisa digunakan untuk banyak variabel)
  7. Untuk mengambil nilai dari sebuah field dari tabel ke dalam variabel dapat juga menggunakan SET / SELECT , misal : SET @nama= SELECT nama FROM user WHERE login='Itanium') selalu gunakan anda(),perintah ini valid bila data yang ditemukan hanya 1, bila lebih, maka varibale @nama tidak akan ada nilai nya.
  8. Untuk mengambil data dalam jumlah banyak, misal seperti array atau StringList, gunakan temporary tabel.untuk pembahasan lebih lengkap, tunggu posting berikut nya.
Contoh pembuatan Stored Procedure. Kita akan membuat sebuah Stored procedure yang berfungsi untuk menggantikan perintah SELECT yang rumit, misal untuk laporan stok barang.

Dalam contoh ini ada 3 tabel yang digunakan.
  1. Barang (IDBarang, NamaBarang, IDSatuan)
  2. Satuan (IDSatuan, Satuan)
  3. StockBarang (Tanggal, IDBarang, SAwal,Masuk,Keluar,SAkhir).
Laporan yang diminta adalah untuk menampilkan stock sesuai dengan periode tertentu (bisa per hari, bisa juga per minggu, tergantung inputan StartDate dan EndDate).
SQL untuk pembuatan Stored Procedure nya :

CREATE PROCEDURE LapStockBarang1 @StartDate varchar(10), @EndDate varchar(10) AS DECLARE @tgl1 datetime, @tgl2 datetime 
**(variabel StartDate tidak bisa langsung datetime karena perintah EXEC LapStockBarang dalam bentuk string) CREATE TABLE #TStock (IDBarang varchar(5), SAwal real, Masuk real, Keluar real)
CREATE TABLE #TStock2 (IDBarang varchar(5), SAwal real, Masuk real, Keluar real, SAkhir real)

** buat temporary table , tanda # menandai bahwa tabel ini hanya akan ada saat proses stored procedure. SELECT @tgl1= CONVERT (datetime,@StartDate,103), @tgl2=CONVERT(datetime,@EndDate,103).

** convert varchar(string) ke tipe datetime, gunakan perintah CONVERT(tipe,variabel,format). Format 103 adalah format dd/mm/yyyy
INSERT INTO #TStock (IDBarang, SAwal)
SELECT (IDBarang, SAwal)
FROM StockBarang 
WHERE tanggal= @tgl1

** masukkan saldo awal pada tanggal bulan itu
INSERT INTO #TStock (IDBarang, Masuk, Keluar)
SELECT IDBarang, SUM(Masuk), SUM(Keluar)
FROM StockBarang
WHERE tanggal BETWEEN @tgl1 AND @tgl2
GROUP BY IDBarang.

** masukkan JUMLAH dari masuk dan keluar
INSERT INTO #TStock2 (IDBarang, SAwal, Masuk, Keluar)
SELECT IDBarang, SUM(SAwal), SUM(Masuk), SUM(Keluar)
FROM #TStock
GROUP BY IDBarang.

** sekarang gabungkan data2 nya
UPDATE #TStock2 SET SAkhir= SAwal + Masuk - Keluar
SELECT t.*, b.NamaBarang, s.Satuan
FROM #TStock2 AS t, Barang AS b, Satuan AS s
WHERE t.IDBarang=b.IDBarang
ND b.IDSatuan=s.IDSatuan
ORDER BY b.IDBarang
Nah perintah di program cukup seperti ini :
EXEC LapStockbarang '01/01/2005', '31/01/2005'

Fungsi yang digunakan di MySql

Fungsi yang digunakan di MySql

Fungsi adalah merupakan fasilitas yang disediakan oleh database secara umum untuk memanipulasi data yang kompleks, seperti mencari jumlah data, mencari rata-rata nilai yang ada dalam suatu tabel dan lain-lain. Dengan adanya Fungsi memungkinkan kita memanfaatkan server untuk melakukan pemrosesan, �Server Side Processing�. Data langsung diproses di dalam server.


Secara anatomi suatu Fungsi terdiri atas nama Fungsi diikuti dengan parameter (argumen) Fungsi yang diapit tanda kurung. Berikut adalah bentuk umum penulisan Fungsi dalam Mysql:
Nama Fungsi([argumen_1 [,argumen_2 [,...]]])
argumen_1, argumen_2,... adalah argumen atau parameter yang dibutuhkan oleh Fungsi. Berikut ini adalah panduan dalam menuliskan Fungsi dalam Mysql:
� Fungsi dapat ditulis dalam huruf kecil ataupun huruf besar. 
� Tidak ada spasi antara nama Fungsi dengan tanda kurung pembuka. 
� Jika dibutuhkan lebih dari satu argumen maka setiap argumen dipisahkan oleh tanda koma (,). 
Fungsi dalam Mysql dapat dikelompokkan menjadi:
� Fungsi sistem 
� Fungsi karakter 
� Fungsi agregat 
� Fungsi aritmetik 
� Fungsi tanggal 
� Fungsi logika 



Fungsi Sistem 
Fungsi sistem adalah kelompok Fungsi yang memberikan informasi tentang pemakaian server database. Kelompok Fungsi ini terdiri dari:
� DATABASE() 
Fungsi ini digunakan untuk memberikan informasi database apa yang sedang digunakan oleh pemakai.
� LAST_INSERT_ID() 
� Digunakan untuk menampilkan informasi data yang telah dihasilkan (di-generate) oleh Mysql pada kolom yang menggunakan tipe data AUTO INCREMENT.
� SESSION_USER() 



� Fungsi yang digunakan untuk manampilkan informasi pemakai yang sedang melakukan akses ke dalam server Mysql. Kadang digunakan oleh pemakai untuk mengetahui siapa yang sedang login ke dalam database yang sedang ditinggalkan oleh pemakainya, atau kadang juga kita ingin mengetahui pada saat ini kita sedang memakai account user milik siapa.
� SYSTEM_USER() 
Fungsi ini sama dengan Fungsi SESSION_USER().
� USER() 
Fungsi ini sama dengan Fungsi SESSION_USER() dan SYSTEM_USER().
� SHOW DATABASE 
� Fungsi ini dapat digunakan untuk melihat database yang sudah ada dalam Mysql. 
� USE NAMADATABASE 
� Apabila seorang pemakai telah berada di dalam lingkungan Mysql, pemakai tersebut dapat memilih database mana yang akan dikelola. Untuk keperluan tersebut pemakai dapat menggunakan perintah use diikuti nama database yang akan dikelola. NAMADATABASE adalah nama dari database yang ada pada Mysql.
� SHOW TABLES 
Fungsi ini digunakan untuk melihat tabel apa saja yang ada di dalam suatu database.
� DESCRIBE NAMATABEL 
Fungsi ini digunakan untuk melihat struktur tabel yang ada dalam suatu database. NAMATABEL adalah tabel yang ingin dilihat strukturnya seperti field-field dan tipe data yang ada dalam tabel tersebut.
� VERSION()Fungsi yang digunakan untuk mengetahui versi dari server Mysql yang sedang digunakan.



Fungsi Karakter
Fungsi Karakter � Fungsi yang digunakan untuk melakukan manipulasi data karakter (string). Mysql menyediakan banyak Fungsi built-in untuk melakukan manipulasi teks, diantanya adalah:
� LOWER(x) � Fungsi ini akan mengkonversi semua karakter dalam string menjadi huruf kecil semuanya. 

Contoh: 
Select LOWER(�LowerCase�)
Hasil:
lowercase

� UPPER(x) � Fungsi ini digunakan untuk mengkonversi semua karakter dalam string menjadi huruf besar semuanya. 

Contoh: 
Select UPPER(�LowerCase�)
Hasil:
LOWERCASE

� ASCII(x) � Digunakan untuk menghasilkan kode ASCII untuk karakter pertama dalam suatu string. x adalah karakter atau string. 

Contoh: 
Select ASCII(�a�);
Select ASCII(�Teks�);
Hasil:
65
84

� CONCAT(x,y,z,�) � Fungsi ini digunakan untuk menggabungkan beberapa string yang menjadi satu string. akan tetapi apabila ada nilai NULL dalam parameter, maka hasil dari CONCAT adalah NULL. 
Contoh: 
select concat(�satu�,�dua�,�tiga�);
select concat(�satu�,null,�tiga�);
Hasil:
satuduatiga
null

� SUBSTRING(x,m,n) � Digunakan untuk mendapatkan karakter sebanyak n karakter pada string x dimulai dari karakter yang ke m. Jika m bilangan negatif maka proses pengambilan karakter dimulai dari sebelah kanan string. 

Contoh: 
Select substring(�database�,2,3);
Select substring(�database�,-4,3);
Hasil:
ata
bas

� LENGTH(x) � Fungsi ini digunakan untuk mendapatkan panjang string

Contoh: 
Select length(�database�);

Hasil:
8


� LPAD/RPAD(x,y,z) � Fungsi ini digunakan untuk menambahkan string z ke string x disebelah kiri atau kanan string x dan jumlah karakter string z menjadi sebanyak y, proses penambahan dilakukan apabila jumlah karakter x lebih kecil dari y. 

Contoh: 
Select lpad(�base�,8,�da�);
Select rpad(�base�,8,�da�);

Hasil:
dadabase
basedada

� TRIM([[BOTH atau LEADING atau TRAILING][x][FROM]y) � Fungsi Trim digunakan untuk membuang karakter x baik di depan atau di belakang atau kedua sisi string y.

Contoh: 
Select trim(leading from � database�);
Select trim(trailing from � database �);
Select trim(both from � database �);
Select trim(both �d� from �database�);
Select trim(� database �);
Hasil:
Contoh: 
database
database
database
atabase
database

semoga bermanfaat dan jangan lupa tinggalkan komentar anda
Pengertian Dasar Mysql

Pengertian Dasar Mysql

MySQL adalah suatu perangkat lunak database relasi (Relational Database Management System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya. MySQL AB menyebut produknya sebagai database open source terpopuler di dunia.


Berdasarkan riset dinyatakan bahwa bahwa di platform Web, dan baik untuk kategori open source maupun umum, MySQL adalah database yang paling banyak dipakai. Menurut perusahaan pengembangnya, MySQL telah terpasang di sekitar 3 juta komputer. Puluhan hingga ratusan ribu situs mengandalkan MySQL bekerja siang malam memompa data bagi para pengunjungnya. 

Fitur MySQL
Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi penggunanya, maka di seri 3.23 dan 4.0-lah terjadi banyak peningkatan dari sisi teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi. Seri 3.23. Di seri 3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona baru yang potensial. Seri 4.x. Di seri yang baru berjalan hingga 4.0 tahap alfa ini, pengembang MySQL berjanji akan menjadikan MySQL satu derajat lebih tinggi lagi. Fitur-fitur yang sejak dulu diminta akan dikabulkan, seperti subselek (di 4.1), union (4.0), foreign key constraint (4.0 atau 4.1�meski InnoDB sudah menyediakan ini di 3.23.x), stored procedure (4.1), view (4.2), cursor (4.1 atau 4.2), trigger (4.1). MySQL AB tetap berdedikasi mengembangkan dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler. 

Keunggulan MySQL 
Penyebab utama MySQL begitu popular di kalangan Web adalah karena ia memang cocok bekerja di lingkungan tersebut. Pertama, MySQL tersedia di berbagai platform Linux dan berbagai varian Unix. Sesuatu yang tidak dimiliki Access, misalnya�padahal Access amat popular di platform Windows. Banyak server Web berbasiskan Unix, ini menjadikan Access otomatis tidak dapat dipakai karena ia pun tidak memiliki kemampuan client-server/networking. 

Kedua, fitur-fitur yang dimiliki MySQL memang yang biasanya banyak dibutuhkan dalam aplikasi Web. Misalnya, klausa LIMIT SQL-nya, praktis untuk melakukan paging. Atau jenis indeks field FULLTEXT, untuk full text searching. Atau sebutlah kekayaaan fungsi-fungsi builtinnya, mulai dari memformat dan memanipulasi tanggal, mengolah string, regex, enkripsi dan hashing. Yang terakhir misalnya, praktis untuk melakukan penyimpanan password anggota situs. 

Ketiga, MySQL memiliki overhead koneksi yang rendah. Soal kecepatan melakukan transaksi atau kinerja di kondisi load tinggi mungkin bisa diperdebatkan dengan berbagai benchmark berbeda, tapi kalau soal yang satu ini MySQL-lah juaranya. Karakteristik ini membuat MySQL cocok bekerja dengan aplikasi CGI, di mana di setiap request skrip akan melakukan koneksi, mengirimkan satu atau lebih perintah SQL, lalu memutuskan koneksi lagi. Cobalah melakukan hal ini dengan Interbase atau bahkan Oracle. Maka dengan load beberapa request per detik saja server Web/database Anda mungkin akan segera menyerah karena tidak bisa mengimbangi beban ini.

Fungsi query mysql

Fungsi query mysql

1.Query
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
15
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)
2.Operator between dan not between
Fungsi : Untuk menyaring data dengan rentang tertentu (memiliki jangkauan).
Bentuk penggunaan :
field between batas_bawah AND batas_atas ;
Contoh :
SELECT * FROM karyawan WHERE tgl_masuk between #01/01/2007# AND #17/08/2007# ;
3.Operator like dan not like
Fungsi : Untuk menseleksi data dengan kriteria mengandung kata atau klausa yang didefinisikan oleh LIKE
Bentuk penggunaan :
field LIKE �*klausa*�
Contoh :
SELECT nama FROM karyawan WHERE nama LIKE �*eli*� ;
artinya nama-nama yang mengandung eli akan terpilih.
SELECT nama FROM karyawan WHERE nama LIKE �eli*�;
artinya nama-nama yang berawalan eli akan terpilih.
4.Sorting
Ada dua bentuk sorting yaitu secara ascending dan descending. Sorting secara ascending adalah cara mengurutkan data mulai data bernilai terkecil sampai terbesar. Sedangkan descending mengurutkan data mulai dari data terbesar sampai terkecil. Sebagai contoh misalkan diberikan data berupa bilangan berikut ini:
3 9 1 4 0 2
Hasil sorting ascending adalah 0 1 2 3 4 9, dan hasil secara descending adalah 9 4 3 2 1 0.

5.Fungsi Agregat

Penggunaan fungsi agregat
AVG : Menghasilkan nilai rata-rata
COUNT : Menghitung banyaknya record
MAX : Mengetahui nilai terbesar
MIN : Mengetahui nilai terkecil
SUM : Menjumlahkan data

Bentuk penulisan :
SELECT fungsi_agregat (field) FROM nama_tabel
Contoh :
SELECT COUNT (*) FROM karyawan ;

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)

6.Having
Fungsi : Untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi HAVING saja yang akan dihasilkan ;
Contoh :
SELECT jabatan FROM karyawan GROUP BY jabatan HAVING jabatan <> �HRD�;
Soal dan Jawaban Oracle

Soal dan Jawaban Oracle

SOAL DAN JAWABAN ORACLE
� Create Table
1. buat lah barang dengan field kode_barang char(6),nama barang varchar2(25),satuan_barang varchar2(20) dan stok_barang number(4) primary key adalah kode barang



Jawab

SQL> create table barang(
kode_barang char(6),
nama_barang varchar2(25),
satuan_barang varchar2(20),
stock_barang number(4),
constraint pk_barang primary key(kode_barang)
);
Output

� Insert Table
2. Isikan lah sebuah recordke dalam tabel barang seperti tampilan berikut :
KODE_BARANG NAMA_BARANG SATUAN_BARANG STOK_BARANG
KPR-1 KULKAS BUAH 20
Jawab 
SQL> insert into barang values('KPR-01','KULKAS','BUAH','20');
Output

3. Tambahkan sebuah record lagi sehingga hasil sebagai berikut 
KODE_BARANG NAMA_BARANG SATUAN_BARANG STOK_BARANG
KPR-01 KULKAS BUAH 20
KPR-02 TELEVISI BUAH 15
Jawab
SQL> Insert into barang values(�KPR-02�,�TELEVISI�,�BUAH�,�15�);
Output

� Menampilkan Isi Tabel
4. Tamplikanlah seluruh field yang berada didalam tabel barang
Jawab
SQL> select * from barang;
Output

� Fungsi Update
5. Ubah lah tabel barang pada kolom nama barang dari TELEVISI menjadi MONITOR
Jawab
SQL> update barang
set nama_barang='MONITOR'
where nama_barang='TELEVISI';
output

� .Fungsi Select
6. Tampilkan lah seluruh field yang berada di tabel barang
Jawab
SQL> select * from barang
Output

7. Tampilkan kode barang,nama barang dari tabel barang yang jumalh stok nya 20
Jawab
SQL> SELECT KODE_BARANG,NAMA_BARANG FROM BARANG WHERE STOCK_BARANG=20;
Output

� Fungsi Like
8. Tampilkan nama barang,satuan barang dan stok barang dari tabel barang, dimana kode barang adalah KPR-02
Jawab
SQL> select nama_barang,satuan_barang,stock_barang from barang
Where kode_barang like 'kpr-02';
� Drop
9. Hapuslah pada field MONITOR pada kolom nama_barang pada tabel barang
Jawab 
SQL> delete from barang where NAMA_BARANG='MONITOR';
10. Hapus Tabel Barang
Jawab 
SQL> drop table barang;
11. Tampilkan last name,salary dari tabel employees yang salary nya lebih besar dari 12000 Jawab
SQL> select last_name,salary from employees where salary>12000;
Output

� Operator aritmatic
12. Tampilkan employee id,last name dan salary untuk karyawan yang mempunyai employee id lebih dari 100 dan salary nya ditambah 3000 dan urut kan berdasarkan salary nya
Jawab
SQL> select employee_id,last_name,salary+3000 from employees where employee_id>100;
Output

13. Tampilkan employee id,last name,salary dan salary di kalikan 10% dengan kolom alias �Gaji Baru�
Jawab
SQL> select employee_id,last_name,salary,salary*0.1 as "Gaji Baru" from employees;
Output

� Date and Time
14. Tampilkan last name dan hire date khusus untuk pegawai yang hire date nya 1993
Jawab
SQL> select last_name,hire_date from employees where hire_date like '%93';
Output

15. Tampilkan last name,job id karyawan yang hire date nya antara 20-09-1988 s/d 06-02-2000
Jawab
SQL> select last_name,job_id from employees where hire_date between '28-09-1988' and '06-02-2000';
Output

16. Hitung lah jumlah karyawan yang Tanggal masuk nya antara 20-09-1988 s/d 06-02-2000
Jawab
SQL> select count(last_name) from employees where hire_date between '20-09-1988' and '06-02-2000';
Output

17. Tampilkan last name,hire date dengan mengubah hire date nya dari angka ke karakter dengan label hire date
Jawab
� TO CHAR
18. Tampilkan last name karyawan dan tanggal masuk nya dengan mengkonversikan kedalam bentuk karakter. Khusus untuk karyawan yang department id nya lebih besar dari 100
Jawab
SQL> 
select last_name,to_char(hire_date,'dd month yyyy') as "HIRE DATE" from employees where department_id>100;
� VERIFY COMMAND
19. Tampilkan last name,salary,dan panjang karakter dengan kolom alias �JML KARAKTER� berdasarkan huruf awal yang di input kan oleh user
Jawab
select last_name,salary,length(last_name) as "JML KARAKTER" from employees where last_name like '&_%';
output

20. Tampilkan last name,salary,salary di tambah 20% dengan kolom bonus nama untuk karyawan yang namanya berawan huruf H
Jawab
SQL> select last_name,salary,salary*0.2 as "BONUS NAMA" from employees where last_name like 'H%';
Output

21. Tampilkan last_name,salary untuk karyawan yang jumlah salary nya lebih besar dari data yang di input kan oleh user dan urutkan berdasarkan last_name
Jawab
SQL > select last_name,salary from employees where salary>&salary order by last_name;
Output

22. Tampilkan last_name dengan huruf kecil ,salary dari tabel employees dimana last name nya di awali dengan huruf �A�
Jawab
SQL>select lower(last_name),salary from employees where last_name like 'A%';
Output

23. Tampilkan last name dengan huruf capital dimana last name nya di awali dengan huruf �A�
Jawab
SQL> select upper(last_name),salary from employees where last_name like 'A%';
Output

24. Tampilkan last name dengan awalan huruf capital dan selebihnya huruf kecil khusu untuk karyawan yang last name nya diawali dengan huruf �H�
Jawab
SQL> select initcap(last_name),salary from employees where last_name like 'H%';
Output

� SELEKSI DAN ARITMATIC
25. Tampilkan salary tertinggi dengan kolom alias �GAJI TERTINGGI� dan untuk yang terendah dengan kolom alias �GAJI TERENDAH�
Jawab
select max(salary) as "GAJI TERTINGGI",min(salary) as "GAJI TERENDAH" from employees;
output

26. Tampilkan rata �rata gaji dari semua karyawan dengan kolom alias �RATA � RATA GAJI�
Jawab
SQL> select avg(salary) as "RATA - RATA GAJI " from employees;
Output

� NVL
27. Tampilkan last_name,salary,salary ditambah 2000 dengan label Tambahan dan dan menambahkan nilai commission pct dengan salary pada kolom nvl (commission_Pct,0) commicion pct nya 0
Jawab
SQL> select last_name,salary,nvl(commission_pct,0), (salary+2000) + (salary+2000+nvl(commission_Pct,0)) Tambahan from employees;
Output

� SORTING
28. Tampilkan rata � rata gaji tertinggi dari semua karyawan
Jawab
SQL> Select max(avg(salary)) as "RATA - RATA GAJI TERTINGGI" from employees group by salary;
Output

29.Tampilkan employee id,last name dan salary untuk karyawan yang salary nya antara 12000 s/d 24000 urutkan berdasarkan nama
Jawab 
select employee_id,last_name,salary from employees where salary between '12000' and '24000' order by last_name asc;
output

� Fungsi IN dan NOT IN
30. Tampilkan last name dan salary yang salary nya ter masuk 12000,13000 dan 24000
Jawab
SQL> select last_name,salary from employees where salary in(12000,13000,24000);
Output

31. Tampilkan last name dan salary yang salary nya tidak termasuk dari 12000,13000 dan 24000 dan lakukan pengurutan dari salary terendah
Jawab
SQL> select last_name,salary from employees where salary not in(12000,13000,24000) order by salary asc;
Output

� SUBSITUTION VARIABLE
32. Tampilkan employee id,last name dan salary yang last name nya tidak berawalan huruf �H�
Jawab
SQL> select employee_id,last_name,salary from employees where last_name not like 'H%';
Output

� SUBQUERY
33. Tampilkan last name dari tabel employees yang mana employee id nya sama dengan manager id
select e.last_name from employees e where (e.employee_id) in (select m.manager_id from employees m);
output

34. Tampilkan last name,job id dan gaji terkecil dari semua karyawan yang ada di tabel employees dengan subquery
Jawab
SQL> select last_name,job_id,salary from employees where salary =(select min(salary)from employees);
Output

� COALESCE
35. Tampilkan job id,job title dan gabungkan gaji tertinggi dan terendah dan tambahkan serta dikurangi 1000 dengan label �POTONGAN� pada tabel Jobs
Jawab
SQL> select job_id,job_title,coalesce(max_salary,min_salary-1000) as " POTONGAN" from jobs;
Output

� Fungsi IF,CASE
36. Tampilkan last name dan salary dan buat kolom alias untuk karyawan yang jika panjang karakter last name karyawan = 7 maka salary ditambah 3000,jika panjang karakter last name = 6 maka salary ditambah 4000 dan selainnya nol
Jawab
SQL> select last_name,salary , case when length(last_name)='7' then salary+3000 when length(last_name)='6' then salary+4000 else salary-salary end "Bonus Karakter" from employees;
Output

� DECODE
37. Tampilkan lah job id dan last name dan buat index dengan kolom alias �INDEX� jika Job id Index
�IT_PROG� �A�
�ST_CLERK� �B�
�SA_REP� �C�
�ST_MAN� �D�
�AD_PRES� �E�
Dan kosongkan untuk job id selain dari yang diberi index
Jawab
SQL> select job_id,last_name, decode(job_id, 'IT_PROG','A',
'ST_CLERK','B',
'SA_REP','C',
'ST_MAN','D',
'AD_PRES','E') "INDEX" from employees where employee_id>130;
� CONCATING
38. Gabungkan first name,last name dengan label �Nama Lengkap�,hire date dengan label �Tanggal Masuk� dan salary dengan label gaji dari tabel employees
Jawab 
SQL> select concat(first_name,last_name) as " Nama Lengkap",hire_date as "Tanggal Masuk", salary as "Gaji" from employees;

� OPERATOR ANY DAN NOT ANY
39. Tampilkan employee id,last name dan salary yang salary nya termasuk lebih besar dari 9000,6000,4200 dan job id nya adalah �IT PROG� dengan menggunakan operator any
Jawab
SQL> select employee_id,last_name,salary from employees where salary < job_id="'IT_PROG'; � INTERSECT40. Tampilkan employee id,department id dan job id dari tabel employees yang mana datanya sama dengan data yang ada di job historyJawab SQL> select employee_id,department_id,job_id from employees
intersect
select employee_id,department_id,job_id from job_history;

� FUNGSI JOIN
41. Tampilkan location id,postal code dari tabel locations dan department name dari tabel departments yang location id di tabel locations sama dengan location id yang ada di tabel departments
Jawab 
SQL> select l.location_id,l.postal_code,d.department_name from locations l right outer join departments d on(l.location_id=d.location_id);

42. Tampilkan last_name,salary ditambah 2000 dengan kolom alias �Bonus� dari tabel employees dan department name dari tabel departments khusus untuk karyawan yang department id nya sama dengan department id yang ada di tabel departments
Jawab
SQL> select e.last_name,e.salary+2000 as "Bonus",d.department_name from employees e full outer join departments d on (e.department_id=d.department_id); select e.last_name,e.salary+2000 as "Bonus",d.department_name from employees e full outer join departments d on (e.department_id=d.department_id);
43. Tampilkan last name,salary dari tabel employees dan cross join dengan department name dari tabel departments
Jawab
SQL> select last_name,salary,department_name from employees cross join departments;

44. Tampilkan employee id,last name dari table employees city dari table location dan department name dari tabel departments
Jawab
SQL> select employee_id,last_name,department_name from employees e join departments d on d.department_id=e.department_id join locations l on d.location_id=l.location_id;

� Operator UNION
45. Tampilkan employee id,job id dan salary dari tabel employees dan gabungkan dengan employee id dan job id yang ada di tabel job history
Jawab
select employee_id,job_id,salary from employees
union
select employee_id,job_id,0 from job_history;
� JOIN FULL
46. Tampilkan employee id,last name dan salary yang salary nya termasuk 9000,6000,4200 dari semua salary karyawan.dengan memakai operator all
Jawab 
SQL> select employee_id,last_name,salary from employees where salary <> 
47. Gabungkan semua data dari tabel employees dan job history yang yang terdapat data yang sama
Jawab
SQL> select employee_id,job_id,department_id from employees
union all
select employee_id,job_id,department_id from job_history order by employee_id;
� INTERSECTION
48. Tampilkan location id dari tabel departments dan locations untuk nilai id yang sama antara tabel departments dan tabel locations
Jawab
SQL> select location_id from departments
intersect
select location_id from locations;

� COMMIT
49. Tampilkan lah last name dan salary dimana last name nya di awali dengan huruf A, dan simpan lah data tersebut
Jawab
SQL> select last_name,salary from employees where last_name like 'A%';
LAST_NAME SALARY
----------------------------------- ----------
Austin 4800
Atkinson 2800
Ande 6400
Abel 11000 
commit;
� PEMBUATAN INDEX
50. Buatlah kolom NIP pada table karyawan sebagai index
Jawab
SQL> create index karyawan_nip_idx on karyawan(nip);
Output
� 
� PEMBUATAN USER
51. Buat lah user baru pada table karyawan dengan user = sofyan dan password = sosa
Jawab
SQL> create user sofyan identified by sosa;
� VIEW
52. Buatlah view pada table karyawan dengan nama lihat untuk menampilkan semua data yang ada di table karyawan
Jawab
SQL> create view lihat as select * from karyawan;
� DATA CONTROL LANGUAGE (DCL)
53. Buatlah hak akses untuk user dengan nama sosa yang mana user nya hanya diperboleh kan menghapus table
Jawab
SQL> grant delete on karyawan to sosa;
54. Buatlah hak akses untuk user dengan nama sosa yang mana user tersebut hanya boleh menambah isi table
Jawab
SQL> SQL> grant insert on karyawan to sosa;
53. Hapus hak akses delete dari user sosa 
Jawab
Revoke delete on karyawan from sosa;
� CONSTRAINT
54.Buatlah kolom NIP sebagai primary key pada table karyawan
Jawab
SQL> alter table karyawan add constraint pk_nip primary key (nip); 
55. Buatlah kolom email pada table pegawai sebagai kolom unique
Jawab
SQL> alter table karyawan add constraint uq_email unique (email);
56. defenisikan agar kolom kode_bag dari table karyawan selalu menyamakan ke kolom kode pada table jabatan
Jawab 
SQL> alter table karyawan add constraint fk_kode_bag FOREIGN KEY (kode_bag) REFERENCES jabatan(kode); 
KETERANGAN
Scema yang digunakan adalah Scema HR dengan menggunakan beberapa table sebagai berikut :
1. Pada soal 1 s/d 10 disini menggunakan table barang
2. Pada soal 11 s/d 49 disini menggunakan table employees, job, histories,locations dan departments
3. Pada soal 50 s/d 56 disini menggunakan table karyawan dan jabatan