Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

SQL (Structure Query Language)

Presentasi serupa


Presentasi berjudul: "SQL (Structure Query Language)"— Transcript presentasi:

1 SQL (Structure Query Language)
SQL (Structure Query Language) Pertemuan 4 – USING SINGLE ROW FUNCTION to CUSTOMIZE

2 PART 1 PART II What we learn : SQL Function Single Row Function
Tujuan Pembelajaran What we learn : PART 1 SQL Function Single Row Function Practice PART II Menjelaskan berbagai jenis fungsi yang tersedia dalam SQL Dapat menggunakan karakter, jumlah, dan fungsi dalam SELECT Dapat menjelaskan fungsi konversi

3 PART 1

4 SQL FUNCTION Fungsi SQL ada kalanya menggunakan argument dan selalu mengembalikan nilai Single-row function : tiap record menghasilkan satu output Multiple-row function : Beberapa record menghasilkan satu output

5 Melakukan perhitungan Merubah data item
Tipe dari SQL Function Melakukan perhitungan Merubah data item Manipulasi hasil untuk sekelompok baris Memformat tampilan tanggal dan angka Merubah tipe data dari suatu kolom. Dua tipe Fungsi SQL : Single Row Function : Fungsi hanya bekerja pada satu baris, dan mengembalikan satu hasil per baris. Ada beberapa tipe, yaitu : character, number, date dan konversi. Multiple Row Functions : Fungsi ini dapat memanipulasi sejumlah baris dan memberikan satu hasil per sejumlah baris. BACK

6 Single Row Functions Function_name merupakan nama dari fungsi yang akan digunakan Arg1, arg2 merupakan argument yang digunakan oleh fungsi. Bagian ini dapat direpresentasikan dalam bentuk nama kolom atau ekspresi. Isi dari argument dapat berupa : konstanta yang dideklarasikan oleh user, nilai variabel, nama kolom atau ekspresi. Single Row Functions beroperasi hanya pada satu baris dan menghasilkan satu nilai untuk setiap baris

7 Single Row Functions Single Row Functions Character Number Date Conversion General Single-row functions terdiri dari 5 jenis, yaitu Character functions, Number functions, Date functions, Conversion functions dan General functions

8 Fungsi CHARACTER Fungsi karakter menerima input berupa karakter dan
mengembalikan nilai yang bisa berupa karakter maupun angka. Fungsi karakter dibagi menjadi 2 kelompok yaitu : Case-manipulation functions berguna untuk mengubah karakter dari huruf kecil ke huruf besar atau sebaliknya Character-manipulation functions digunakan untuk memanipulasi karakter, misal menggabungkan karakter, mengambil sebagian karakter dari sebuah kalimat, serta mengetahui panjang dari sebuah kalimat.

9 Fungsi Character ~ Case-manipulation
Kelompok Fungsi Kegunaan Case Manipulation Functions LOWER (coloumn | expression) Mengubah ke huruf kecil UPPER (coloumn | expression) besar INITCAP (coloumn | expression)

10 Kerjakan, lalu amati Select last_name, upper(last_name), lower(last_name), initcap(last_name) from employees; BACK

11 Fungsi Character ~ Character manipulation

12 Fungsi Character ~ Character manipulation
Kelompok Fungsi Kegunaan Character Manipulation Functions Concat (column1|expressions1, column2|expressions2 Menggabungkan kalimat atau karakter pertama dgn kalimat atau karakter kedua SUBSTR (column|expressions, m[,n]) Mengambil karakter mulai dari posisi m sebanyak n. Jika n tidak dituliskan, maka semua karakter mulai posisi ke m sampai terakhir akan diambil. LPAD (column|expressions, n, ‘string’) Menambahkan karakter tertentu disebelah kiri suatu kalimat, sehingga panjang kalimat menjadi n. RPAD(column|expressions, n, ‘string’) Menambahkan karakter tertentu disebelah kanan suatu kalimat, sehingga panjang kalimat menjadi n.

13 Fungsi Character ~ Character manipulation
Kelompok Fungsi Kegunaan Character Manipulation Functions Length (kolom/ekspresi) Mengembalikan nilai banyaknya karakter di dalam ekpresi tersebut INSTR (kolom/ekspresi, ‘string’, [, m] [, n]) Mengembalikan posisi numerik dari sebuah string. Secara opsional dapat menggunakan posisi m untuk mulai mencari dan kehadiran n pada string. Secara default m dan n adalah 1, artinya pencarian dimulai dari posisi pertama dan laporan diberikan ketika pertama kali menemukan hasilnya.

14 Fungsi Character ~ Character manipulation
Kelompok Fungsi Kegunaan Character Manipulation Functions Replace (teks, cari_string, string_pengganti) Mencari ekpresi teks dari sebuah string dan menggantinya dgn string_pengganti TRIM (leading|trailing|both, trim_character FROM trim_source)) memungkinkan untuk melakukan trim karakter yang berada depan (leading) maupun yang di belakang (trailing). Jika trim_character atau trim_source adalah karakter literal, keduanya harus diapit dengan tanda petik tunggal.

15 Kerjakan, lalu amati Select first_name, last_name, concat(first_name,last_name), substr(first_name,2,3), length(last_name) ,instr(first_name, 'a') from employees;

16 Kerjakan, lalu amati Select salary, lpad(salary,12,'&'), rpad(salary,12,'&') from employees;

17 Kerjakan, lalu amati Select last_name, replace(last_name, 'e', 'o'), trim('a' from last_name) from employees;

18 Kerjakan, lalu amati Select last_name, replace(last_name, 'e', 'o') GANTI, trim('a' from last_name) HAPUS from employees; BACK

19 Fungsi NUMBER Fungsi angka digunakan untuk memanipulasi suatu angka

20 Fungsi NUMBER Kelompok Fungsi Kegunaan Number Functions
ROUND(column|expression, n) Membulatkan suatu nilai sampai n desimal. Jika n tidak disebutkan, berarti tidak ada nilai desimal, jika n bernilai negatif berarti dibulatkan kekiri sesuai dengan nilai n TRUNC(column|expression, n) Memotong suatu nilai sampai n desimal. Jika n tidak disebutkan, maka n bernilai 0. Jika n bernilai negatif berarti dibulatkan kekiri sesuai dengan nilai n MOD(m, n) Mencari nilai sisa dari m dibagi n

21 Kerjakan, lalu amati SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL; SELECT TRUNC(45.923,2), TRUNC(45.923,0), TRUNC(45.923,-1) FROM DUAL; SELECT Job_id, last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP'; BACK

22 Fungsi DATE Oracle database menyimpan tanggal dalam format angka yang terdiri dari: abad, tahun, bulan, tgl, jam, menit dan detik, nilai tanggal yang dapat disimpan oleh Oracle adalah antara 1 Januari 4712 SM sampai 31 Desember 9999. Sedangkan untuk tampilan defaultnya menggunakan format DD-MON-RR, yang berarti menampilkan 2 digit angka yang menunjukkan tanggal, kemudian 3 digit karakter terdepan dari nama bulan, dan 2 digit terakhir dari tahun. Meskipun saat ditampilkan tahunnya hanya terdiri dari dua digit, tetapi pada penyimpanannya tetap 4 digit, dimana 2 digit terdepan menunjukkan abad dan 2 digit berikutnya menunjukkan tahun.

23 Fungsi DATE Oracle mengenali format tanggal dimana tahun yang dituliskan dua digit akan dikenali seperti berikut ini: Untuk tahun sistem yg berlaku 0 – 49, maka dua digit tahun pada tanggal berkisar 0-49, dimaknai tahun pada abad sama dengan abad tahun sistem berkisar 50-99, dimaknai tahun pada abad sebelum abad tahun sistem Untuk tahun sistem yg berlaku 50 – 99, maka jika dua digit tahun pada tanggal berkisar 0-49, dimaknai tahun pada abad setelah abad thn sistem berkisar 50-99, dimaknai tahun pada abad sama dengan abad tahun sistem

24 Fungsi DATE Jika Tahun Sistem yang berlaku misalnya 1999, maka perintah yang sama dengan Contoh sebelumnya akan menghasilkan makna thn sebagai berikut SELECT last_name, hire_date FROM employees WHERE hire_date < '01-FEB-88'; SELECT last_name, hire_date FROM employees WHERE hire_date < '01-FEB-05'; Thn sistem 1999 (50-99) abad 2000, maka Thn 88 (50-99) adalah Tahun 1988 (abad 2000) Thn sistem 1999 (50-99) abad 1900, maka Thn 05 (0-49) adalah Tahun 2005 (abad 2001)

25 SYSDATE adalah fungsi yang mengembalikan : Date Time
Fungsi DATE Untuk menampilkan tanggal dan waktu dari database server digunakan fungsi SYSDATE. Fungsi SYSDATE digunakan sebagaimana nama kolom pada perintah SELECT. SYSDATE adalah fungsi yang mengembalikan : Date Time

26 Fungsi DATE ~ Aritmatika
Untuk memanipulasi data bertipe tanggal, selain menggunakan operasi aritmatik, juga bisa memanfaatkan fungsi tanggal. Semua fungsi tanggal akan menghasilkan data bertipe tanggal, kecuali fungsi MONTHS_BETWEEN yang menghasilkan angka.

27 Fungsi DATE ~ Aritmatika

28 Kerjakan, lalu amati SELECT hire_date, hire_date+2, hire_date-2, Round((Sysdate - hire_date) / 7,2) AS WEEKS, hire_date + 90/24 FROM employees ; BACKc

29 Practice makes habit! Buat query untuk :
Menampilkan nilai ASCII dari karakter s, a dan i Menampilkan struktur tabel dari Departments. Kemudian tampilkan semua datanya. Apa tujuan dari perintah ini : SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') FROM employees; Bagaimana perintah untuk membatasi baris (record) di nomer 3, yang memiliki job_berawalan ‘IT’ Tampilkan employee_id, hire_date, dan lama bekerja (berapa bulan) suatu karyawan.

30 Practice makes habit! Tuliskan perintah dalam SQL untuk menampilkan hire_date, menampilkan gabungan first_name dan last_name dimana first_name dalam huruf kecil, dan last_name dalam huruf kapital dari tabel Employees untuk baris (record) yang memiliki hire_date diantara ‘2-Feb-1980’ s/d ‘2-Feb-1990’. Tuliskan perintah dalam SQL untuk menampilkan first_name, dua huruf pertama dari Job_id, panjang karakter pada dari tabel Employees untuk baris (record) yang memiliki karakter ‘e’ di tengah first_name. BACK

31 PART 2

32 Conversion Functions Fungsi konversi digunakan untuk mengubah tipe data menjadi tipe data yang lain. Implicit Data Type Explicit Data Type

33 Implicit Data Type Conversation
Tanpa menggunakan fungsi konversi, Oracle secara otomatis akan mengubah suatu tipe data menjadi tipe data yang sesuai, fasilitas ini disebut dengan Implicit Data Type Conversion.

34 Implicit Data Type ~ Contoh
select 'Gaji ' || First_name || ' adalah ' || salary from employees; select first_name || ' '|| hire_date from employees; BACK

35 Explicit Data Type Conversation
Meskipun secara otomatis Oracle mengubah data secara implisit, tetap dianjurkan untuk mengubah tipe data secara eksplisit, agar kinerja Oracle tetap baik. Explisit Data Type Conversation akan mengubah NUMBER menjadi CHARACTER, dan CHARACTER menjadi DATE serta sebaliknya.

36 Explicit Data Type Conversation
FUNGSI KEGUNAAN TO_CHAR(number|date, [ fmt], [nlsparams] ) Mengubah sebuah angka atau tanggal menjadi VARCHAR2 dengan format fmt. Number conversion: parameter nlsparams menunjukkan karakter yang dikembalikan berdasarkan format angka. Date conversion: parameter nlsparams menunjukkan bahasa yang digunakan untuk penamaan bulan dan hari serta singkatan yang digunakan.

37 Explicit Data Type Conversation
FUNGSI KEGUNAAN TO_NUMBER(char, [ fmt], [nlsparams] ) Mengubah karakter menjadi angka sesuai dengan format fmt. Parameter nlsparams kegunaannya sama seperti pada fungsi TO_CHAR TO_DATE(char, [ fmt], [nlsparams] ) Mengubah karakter yg mewakili sebuah tanggal menjadi format tanggal sesuai fmt. Jika fmt tidak dituliskan, maka formatnya adalah DD-MON-YY. Parameter nlsparams kegunaannya sama seperti pada fungsi TO_CHAR

38 Using to_char Function with Dates
Format model harus dituliskan dengan mengguna- kan tanda petik tunggal, case- sensitive, dapat diisi dengan format tanggal yang valid. Antara tanggal dan format tanggal harus dipisahkan dengan tanda koma. Secara otomatis nama hari dan nama bulan ditambahkan dengan spasi, untuk menghilangkan spasi dapat digunakan mode fm.

39 TO_CHAR function ~ Contoh
Menampilkan tanggal hari ini dengan format dd-mm-yyyy misal : Menampilkan data yang semula bertipe String menjadi bertipe Number(numeric). Menampilkan nama dan pegawai yang bekerja mulai tahun 3 Januari 1990.

40 TO_CHAR function ~ Contoh
SELECT first_name || ' ' || TO_CHAR(hire_date, 'DD Month YYYY'), TO_CHAR(hire_date, 'DD Mon Year') AS HIREDATE1, TO_CHAR(hire_date, 'Day') AS HIREDATE2, TO_CHAR(hire_date, 'DY DD-MM-YY') AS HIREDATE3 FROM employees;

41 Using to_char Function with Numbers

42 TO_CHAR Function ~ Contoh
SELECT first_name || ' ' || TO_CHAR(salary, '$99,999.00'), TO_CHAR(salary, '$00,000.00') FROM employees;

43 TO_CHAR Function ~ Contoh
SELECT first_name, salary, salary+TO_NUMBER('10000'), hire_date, hire_date - TO_DATE('2-Feb-80') FROM employees; BACK

44 Fungsi ini terdiri dari 2 macam, yaitu
General Functions Fungsi ini terdiri dari 2 macam, yaitu Fungsi yang digunakan untuk menangani nilai NULL ( NVL, NVL2, NULLIF, COALESCE) Fungsi yang merupakan EKSPRESI KONDISI.

45 Fungsi Menangani NULL NVL (expr1, expr2) NVL2 (expr1, expr2,exp3)
Jika Expr1 bukan Null, maka Output berupa Expr1 Jika Expr1 bernilai Null, maka Output berupa Expr2 NVL2 (expr1, expr2,exp3) Jika Expr1 bukan Null, maka Output berupa Expr2 Jika Expr1 bernilai Null, maka Output berupa Expr3 NULLIF (expr1, expr2) Jika Expr1 = Expr2, maka Output berupa Null Jika Expr1 ≠ Expr2, maka Output berupa Expr1 COALESCE (expr1, expr2, …, exprn ) Jika Expr1 , Expr2, … Exprn-1 semuanya Null, maka Output adl Exprn Sebaliknya, maka Output berupa salah satu Expr1, Expr2, …. Exprn-1 yang tidak null (diprioritaskan Expr yang terkiri) FUNGSI KETERANGAN NVL(expr1, expr2) Mengubah nilai NULL menjadi suatu nilai tertentu NVL2(expr1, expr2, expr3) Jika expr1 tidak bernilai NULL, maka expr2 akan ditampilkan, jika expr1 bernilai NULL, maka expr3 yang ditampilkan. NULLIF(expr1, expr2) Membandingkan nilai dari expr1 dan expr2, jika nilai expr1 = expr 2, maka hasilnya adalah NULL. Jika expr1 <> expr2, maka expr1 yang ditampilkan. COALESCE(expr1, expr2, ..., exprn) Menampilkan ekspresi pertama yang tidak bernilai NULL

46 Fungsi Menangani NULL ~ Contoh
SELECT department_id, last_name, salary, commission_pct KOMISI, manager_id, length(first_name), length(last_name), NVL(commission_pct,0) AS KOMISI_1,NVL2(commission_pct,Commission_pct, 0) AS KOMISI_2, NVL2(commission_pct,Salary + Salary * Commission_pct, Salary) INCOME, NULLIF(LENGTH(first_name), LENGTH(last_name)) AS RESULT_1, COALESCE(manager_id, commission_pct, -1) AS RESULT_2 FROM employees where Last_Name like '%K%' or Last_Name like '%L%'; BACK

47 Ekspresi Kondisi Perintah yang digunakan dalam ekspresi kondisi ini adalah CASE DECODE Penulisan dari ekspresi CASE :

48 Ekspresi CASE ~ Contoh

49 Ekspresi CASE Pada ekspresi CASE, Oracle akan membandingkan apakah ada nilai yang sesuai antara expr dan comparison_expr. Apabila ada nilai yang sama maka hasilnya adalah return_expr dari pasangan WHEN ... THEN yang sesuai. Apabila tidak ada nilai yang sama, maka hasilnya adalah else_expr jika ada kalimat ELSE, jika kalimat ELSE tidak ada maka hasilnya adalah NULL. Nilai dari semua return_expr dan else_expr tidak boleh NULL, selain itu semua ekspresi pada CASE harus sama tipe datanya.

50 Fungsi DECODE Fasilitas yang hampir sama fungsinya dengan CASE adalah DECODE. Fungsi DECODE dituliskan dengan format : Sama dengan fungsi IF-THEN-ELSE pada umumnya, fungsi DECODE akan membandingkan nilai col atau expression dengan nilai dari setiap search, apabila nilainya sama maka hasilnya adalah result, tetapi jika tidak ada nilai yang sama, maka yang dikembalikan adalah nilai default, dan apabila nilai default tidak didefinisikan maka hasilnya adalah NULL.

51 Fungsi DECODE ~ Contoh

52 Practice makes habit! Tuliskan query untuk menampilkan manager_id, menampilkan hire_date dalam format seperti 17/Jun/99 lalu digabungkan dengan (dalam huruf kecil), menampilkan salary dalam format seperti Rp. 07,000 dari tabel employees untuk baris (record) yang memiliki manager_id bukan 100,102 , dan memiliki yang mengandung huruf ‘K’ di awal . Select * from employees; Describe departments; Select * from tab; Select hire date, job_id, salary from employess; SELECT employee_id, first_name, salary, salary+5000 AS "new_salary" FROM employees; Select distinct job_id from employees; Select last_name ||’bekerja sebagai’|| job_id as “Karyawan dan Jabatan” from employees; Afsaf afadf

53 Practice makes habit! Tuliskan perintah dalam SQL untuk menampilkan employee_id, first_name, salary, job_id, bonus dengan ketentuan sebagai berikut: Untuk dua huruf pertama dari Job_id jika bernilai ‘IT’ diberi bonus = 10% x salary ’AD’ diberi bonus = 20% x salary Selain ‘IT’ dan ‘AD’ diberi bonus = 0 dari tabel employees untuk baris (record) yang memiliki employee_id < 110

54 Next : Pengumpulan Tugas
Reporting Aggregate Data Using the Group Function


Download ppt "SQL (Structure Query Language)"

Presentasi serupa


Iklan oleh Google