8.SQL fungsi baris tunggal

Download Report

Transcript 8.SQL fungsi baris tunggal

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, UCASE

LCASE :


SELECT Lcase( last_name )
FROM employees;
UCASE :

SELECT Ucase( last_name )
FROM employees;
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



Pertanyaan


Tidak dapat menggunakan beberapa perintah/operasi sekaligus
Diperlukan cara untuk menggabungkan beberapa perintah/operasi menjadi
satu perintah/operasi tunggal
Siapa nama pegawai yang bekerja sebagai it_programer di departemen
IT
Jawab

Cari nama pegawai dari 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 departments
NATURAL 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.gra
FROM employees e, job_grades j
WHERE e.salary
BETWEEN j.lowest_sal
AND 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


Inner, relasi antar tabel dengan nilai data yang sama
tepat


SELECT * FROM nilai,konversi WHERE na>=min AND na<=max;
outer join, relasi dengan tabel yang kemungkinan nilai
datanya tidak ada


SELECT * FROM siswa INNER JOIN dosen ON
siswa.wali=dosen.nip
Nonequijoin, untuk mencari/membandingkan nilai antara


SELECT * FROM siswa, dosen;
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
Terima Kasih