180 likes | 390 Views
SQL-Fungsi Baris Tunggal. Oleh : Devie Rosa Anamisa. Fungsi SQL. Fungsi dapat digunakan untuk hal-hal berikut ini: Membentuk kalkulasi pada data Memodifikasi item data secara individual Manipulasi output dari sekumpulan baris Format tanggal dan bilangan untuk keperluan tampilan.
E N D
SQL-Fungsi Baris Tunggal Oleh : Devie Rosa Anamisa
Fungsi SQL • Fungsi dapat digunakan untuk hal-hal berikut ini: • Membentuk kalkulasi pada data • Memodifikasi item data secara individual • Manipulasi output dari sekumpulan baris • Format tanggal dan bilangan untuk keperluan tampilan
Fungsi Karakter • Fungsi karakater terbagi menjadi: • Fungsi konversi, yaitu LCASE, UCASE • Fungsi manipulasi : CONCAT,INSTR • Fungsi tanggal : now, date, time, add_months, round, trunc • SELECT hire_date,hire_date+1 AS besok FROM employees; • Fungsi konversi implisit, atau eksplisit :format • SELECT format(date,"dd-mm-yyyy") FROM employees;
LCASE : SELECT Lcase( last_name ) FROM employees; UCASE : SELECT Ucase( last_name ) FROM employees; LCASE, UCASE
CONCAT,INSTR • CONCAT: • SELECT concat( first_name, last_name ) NAME FROM employees; • INSTR: • SELECT last_name, instr( last_name, 'a' ) "contain 'a'?" FROM employees;
Menggabungkan Tabel (JOIN) • Alasan • Sering diperlukan melakukan beberapa operasi database untuk mendapatkan suatu informasi yang diinginkan • Perintah SQL dibatasi hanya berupa satu perintah/operasi saja untuk mendapatkan suatu hasil yang diinginkan • Tidak dapat menggunakan beberapa perintah/operasi sekaligus • Diperlukan cara untuk menggabungkan beberapa perintah/operasi menjadi satu perintah/operasi tunggal • Pertanyaan • Siapa nama pegawai yang bekerja sebagai it_programer di departemen IT • Jawab • Cari nama pegawaidari tabel pegawai yang bekerja di departemen IT • SELECT [nama_pegawai] FROM employees WHERE job_id= “it_prog” • Ternyata informasi nama pegawai dari tabel pegawai masih dalam bentuk kode departemen=60 • Cari nama pegawai pada tabel employees menggunakan kunci pencarian id_departmen • SELECT first_name FROM employees WHERE department_id=60
Contoh Alasan Join (lanj.) • Dengan menggunakan join, pertanyaan sebelumnya dapat dicari dengan sekali perintah/proses saja • Cari nama pegawai dari tabel employees sekaligus tabel departemen, yang job_id=“it_prog” dan kode departemen=“60” dari departemen • SELECT s.first_name as pewagai, s.job_id as pekerjaan d.id_department as departement FROM employees as s, departments as d WHERE s.job_id=“it_prog” AND d.department_id=“60” and s.department_id = d.department_id
Jenis Join • Cross/kartesian join • inner/equi join • natural join • join using • non equi join • outer join • left outer join • right outer join • full outer join • ACCESS 2003 tidak memiliki Full Outer Join • self join
Kartesian/Cross Join • Digunakan untuk mendapatkan berbagai kemungkinan kombinasi • Hasil Join • Kolom berupakan gabungan dari semua tabel yang di-join • Baris merupakan semua kombinasi (jumlah perkalian) dari semua baris yang di-join • Contoh • SELECT * FROM employees, departments
Inner/Natural Join • NATURAL JOIN dibuat berdasarkab semua kolom pada dua tabel yang memiliki nama yang sama. • Baris terpilih adalah yang memiliki nilai yang sama untuk setiap kolom yang bersesuaian dari dua tabel. • Jika kolom memilki nama yang sama tapi tipe data berbeda, maka akan terjadi error. • SELECT department_id, department_name, location_id, city FROM departmentsNATURAL JOIN location
Inner/Equi Join • Digunakan untuk mendapatkan informasi dari beberapa tabel berdasar relasi yang sesuai • Inner artinya informasi relasi ada pada setiap tabel • Misal tabel employees memiliki primary key employee_id dan memiliki foreign key department_id dimana department_id ini merupakan primary key dari tabel department. • SELECT * FROM employees INNER JOIN departments ON employees.department_id=department. department_id • Equi artinya relasi dinyatakan dengan bentuk persamaan (sama dengan, =) • SELECT * FROM employees, departments WHERE department_id=department_id
Inner/Non Equi Join • Relasi antara dua tabel disebut non-equijoin jika kolom pada tabel pertama berkorespondensi langsung dengan kolom pada tabel kedua. • Misal salary pada tabel employees harus berada diantara nilai salary terendah dengan nilai salary tertinggi yang ada pada tabel job_grades • SELECT e.last_name, e.salary, j.graFROM employees e, job_grades jWHERE e.salaryBETWEEN j.lowest_salAND j.highest_sal;
Outer Join • Digunakan untuk mendapatkan informasi dari suatu tabel yang data-nya sesuai dan tidak sesuai
Left Outer Join • Mencari informasi yang relasi ada pada ke dua sisi tabel dan yang relasi tabel yang data pada sisi kiri tidak dijumpai pada sisi kanan • Tampilkan data siswa yang memiliki dosen wali sekaligus yang tidak • SELECT * FROM siswa LEFT JOIN dosen ON siswa.wali=dosen.nip
Right Outer Join • Mencari informasi yang relasi ada pada ke dua sisi tabel dan yang relasi tabel yang data pada sisi kanan tidak dijumpai pada sisi kiri • Tampilkan data dosen yang sebagai dosen wali dan yang tidak • SELECT * FROM siswa RIGHT JOIN dosen ON siswa.wali=dosen.nip;
Self Join • Sama dengan join lainnya, hanya melibatkan tabel yang sama • SELECT d.nama as Dosen, a.nama as Atasan FROM dosen as d, dosen as a WHERE d.atasan=a.nip
Contoh Join • Kartesian, untuk mendapatkan seluruh kombinasi data • SELECT * FROM siswa, dosen; • Inner, relasi antar tabel dengan nilai data yang sama tepat • SELECT * FROM siswa INNER JOIN dosen ON siswa.wali=dosen.nip • Nonequijoin, untuk mencari/membandingkan nilai antara • SELECT * FROM nilai,konversi WHERE na>=min AND na<=max; • outer join, relasi dengan tabel yang kemungkinan nilai datanya tidak ada • SELECT * FROM siswa LEFT JOIN dosen ON siswa.wali=dosen.nip; • self join, relasi dengan diri sendiri • SELECT d.nama as Dosen, a.nama as Atasan FROM dosen as d, dosen as a WHERE d.atasan=a.nip