Senin, 15 September 2014

PEMROGRAMAN BASIS DATA II


Nim: 12390100028
Nama: Laili Rosyida
Tugas Rangkuman ke 1 Mata Kuliah : PBD II
Alamat Blog mahasiswa : http://lailistikom.blogspot.com/

Penjelasan tentang arti PL/SQL?? PL/SQL (Procedural Language/Structured Query Language)  adalah sebuah teknologi dari Oracle yang memperbolehkan anda untuk membuat sebuah blok program dalam Oracle sebagaimana layaknya dalam bahasa pemrograman procedural.(Heryanto, Imam, and Budi Raharjo. "Memahami Konsep SQL dan PL/SQL di Oracle." 151-152. Bandung: Informatika Bandung, 2002.)

Perbedaan antara PL/SQL dan SQL
Ø  PL/SQL (Procedural Language/Structured Query Language)  adalah sebuah teknologi dari Oracle yang memperbolehkan anda untuk membuat sebuah blok program dalam Oracle sebagaimana layaknya dalam bahasa pemrograman procedural. (Heryanto, Imam, and Budi Raharjo. "Memahami Konsep SQL dan PL/SQL di Oracle." 151-152. Bandung: Informatika Bandung, 2002.)
Ø  SQL (Structure Query Language) adalah bahasa tingkat empat yang berfungsi untuk menampilkan hasil atau melakukan sesuatu pada data.(Technology, X-Oerang. "Pemrograman Menggunakan Oracle Developer." 40-41. Yogyakarta, 2003.)

Database Oracle adalah salah satu database yang robust, powerfull, secure untuk tingkat kompleksitas aplikasi yang tinggi. (Technology, X-Oerang. "Pemrograman Menggunakan Oracle Developer." 40-41. Yogyakarta, 2003.)

Oracle Form adalah program-program yang khusus didesain oleh perusahaan Oracle untuk membuat user interface untuk akses ke Oracle Database.(Hendra, Wijaya. "Belajar Sendiri Oracle9i Database." 267. Jakarta: PT Elex Media Komputindo, 2003.)
  •  Items adalah macam – macam icon atau attribute  yang dapat diisikan perintah /syntax yang digunakan untuk membuat program aplikasi.
  • Data Block adalah sebuah container yang berisi sekelompok obyek , misalnya text items, list, dan buttons.
  •   Canvas adalah sebuah permukaan dari sebuah window tempat di mana diletakkan semua obyek yang akan di tampilkan pada sebuah aplikasi.(Technology, X-Oerang. "Pemrograman Menggunakan Oracle Developer." 40-41. Yogyakarta, 2003.)
v Form Base Table adalah membuat form menggunakan fasilitas Form Wizard, table yang akan diakses hanya 1 buah table saja. Jika akan mengakses table yang lain, gunakanlah kembali fungsi Form Wizard ini.
vForm Non Base Table yaitu membuat form yang tanpa mengikuti langkah-langkah yang telah dipandu oleh Form Builder.Walaupun membuat secara manual, form builder pun dapat didesain tanpa membuat program.Tentu saja jika tanpa program, berarti terdiri atas satu block dan satu table saja. (Winowatan, Frans. "Panduan Lengkap Pemrograman ORACLE Developer 6i." 72-79. Jakarta: PT Elex Media Komputindo, 2009.)

Minggu, 20 Oktober 2013

Tugas Resume SQL 1


Nim: 12390100028
Nama: Laili Rosyida
Tugas Rangkuman ke 1 Mata Kuliah : SQL 1
Alamat Blog mahasiswa : http://lailistikom.blogspot.com/

Structured Query Language adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional.
ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi.
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.
Data Definition Language
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.

CREATE

CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah:
CREATE DATABASE nama_basis_data
CREATE DATABASE membuat sebuah basis data baru.
CREATE TABLE nama_tabel
CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Secara umum, perintah ini memiliki bentuk
 CREATE TABLE [''nama_tabel'']
 (
 nama_field1 tipe_data [constraints][,
 nama_field2 tipe_data,
 ...]
 )

atau
 CREATE TABLE [''nama_tabel'']
 (
 nama_field1 tipe_data [ nama_field2 tipe_data,...]
 [CONSTRAINT nama_field constraints]
 );
dengan:
nama_field adalah nama kolom (field) yang akan dibuat. Beberapa sistem manajemen basis data mengizinkan penggunaan spasi dan karakter nonhuruf pada nama kolom.
tipe_data tergantung implementasi sistem manajemen basis data. Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya.
Constraints adalah batasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantung implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key).
Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan mendefinisikan paling tidak satu kolom sebagai kunci primer.
Contoh:
 CREATE TABLE user
 
 (username VARCHAR(30) CONSTRAINT PRIMARY KEY,
 passwd VARCHAR(20) NOT NULL,
 tanggal_lahir DATETIME);
 

Pertemuan 1
1.1  Perintah SELECT
Perintah SELECT digunakan  untuk  menampilkan atau  mengambil  data dari database. Perintah SELECT memiliki 3 (tiga) macam kemampuan:
a. Projection: Perintah SELECT bisa  digunakan  untuk  memilih  kolom
                        apa saja dari tabel yang akan ditampilkan.
b. Selection: Perintah SELECT bisa digunakan untuk memilih baris data
                        mana saja yang akan ditampilkan.
c. Joining: Perintah SELECT bisa  digunakan untuk  menampilkan  data
                  atau informasi dari 2 atau lebih tal yang terhubung.

1.2  Concate Operators
operator CONCATE  digunakan  untuk  menggabungkan text,  nilai  kolom,  atau   karakter. Anda  bisa menghubungkan  sebuah  kolom  dengan  kolom  lain, ekspresi  aritmatik,  atau  nilai  konstan,  untuk  membuat  sebuah  ekspresi karakter  dengan  menggunakan  operator CONCATE  yang  disimbolkan dengan ‘||’.
Contoh:
Menampilkan nama lengkap dari mahasiswa
SELECT  'Nama saya'|| NAMA_DEPAN ||' '||
NAMA_BELAKANG FROM MAHASISWA;
1.3  Column Alias
Ketika menghasilkan hasil sebuah query, SQL akan menggunakan nama dari  kolom-kolom  yang  dipilih/ekspresi  pada  SELECT  statement sebagai  header  kolom.  Terkadang  nama  kolom  yang  muncul  sulit dimengerti.atau  kurang  bisa  menjelaskan  isi  dari  kolom.  Anda  bisa mengganti header dari kolom hasil query dengan menggunakan alias.  Tuliskan  alias  dari  sebuah  kolom  pada  klausa SELECT  dengan menggunakan  spasi  sebagai  pemisah
Jika  alias  dari  sebuah  kolom mengandung spasi atau karakter khusus, gunakan tanda petik 2 (“ “).
Contoh :
menampilkan NIM, KODE_MK dan “NILAI AKHIR’.
SELECT NIM, KODE_MK, (TUGAS*0.4) + (UTS*0.3) +
(UAS*03) AS "NILAI AKHIR" FROM NILAI;














1.4  Comparison Conditions
Operator
Note
=
Sama dengan
Lebih besar
>=
Lebih besar sama
dengan
Kurang dari
<=
Kurang dari sama dengan


<>. !=, ^=
Tidak sama dengan
BETWEEN … AND …
Diantara 2 nilai
IN (LIST OF VALUES)
Dicocokkan dengan salah
satu nilai pada kumpulan
nilai
LIKE
Mencocokkan dengan
pola karakter
IS NULL
Adalah nilai NULL
·         (BETWEEN … AND …) operator Anda  dapat  menampilkan  baris  data  berdasarkan  sebuah  jangkauan nilai dengan menggunakan operator BETWEEN. Jangkauan nilai yang disebutkan memiliki batas atas dan batas bawah. Nilai yang dituliskan dalam  kondisi  BETWEEN  bersifat  inklusif,  dan  anda  harus menentukan  nilai  terendah  terlebih  dahulu.  Anda  juga  bisa menggunakan kondisi BETWEEN untuk nilai karakter/huruf.
·         (IN) operator
Untuk mencoba nilai dalam sebuah kumpulan nilai, gunakan kondisi IN.
kondisi IN  dapat  digunakan  dengan  tipe  data  apapun. Jika  tipe  data
huruf  atau  tipe  data  DATE  digunakan  dalam  kumpulan  nilai,  tipe data
tersebut harus dituliskan dengan tanda petik (' ')
·         (LIKE) operator
Terkadang,  anda tidak mengerti nilai  apa  yang akan  dicari,  tetapi anda
dapat menampilkan baris data yang cocok dengan pola karakter dengan
menggunakan  kondisi LIKE.




Pertemuan 2

Logical Conditions
Sebuah  kondisi  logis  menggabungkan  hasil  dari  2  komponen  kondisi untuk menghasilkan  sebuah  hasil  berdasarkan  2  kondisi  tersebut.  Atau membalikkan  hasil  dari  sebuah  kondisi.  Sebuah  baris  data  akanLabKom STIKOM Surabaya |Retrieve, Filter, and Sort  12 dikembalikan  jika  hasil  keseluruhan  dari  kondisi  adalah  TRUE. Ada  3 (tiga) operator logis yang ada di SQL:

Operator
Meaning
AND
mengembalikan TRUE jika kedua komponen
kondisi mengembalikan TRUE
OR
Mengembalikan TRUE jika salah satu
komponen kondisi mengembalikan TRUE
NOT
Mengembalikan TRUE jika komponen
kondisi mengembalikan FALSE

AND Operator
Operator  AND  membutuhkan  kedua  komponen  kondisi  untuk
bernilaiTRUE. 
Contoh :
Mengambil data mahasiswa yang tinggal di kota Sidoarjo dan nama
depannya dimulai dengan huruf‘A’
SELECT * FROM MAHASISWA WHERE KOTA_TINGGAL =
'Sidoarjo' AND NAMA_DEPAN LIKE 'A%';

OR Operator
Operator OR  membutuhkan  salah  satu  dari  komponen  kondisi  untuk
bernilai  TRUE.
Contoh :
Mengambil  data  matakuliah  yang  jumlah sks-nya  3  atau  semester
diadakannya 1
SELECT * FROM MATAKULIAH WHERE SKS = 3 OR SEMESTER = 1;

NOT Operator
Operator NOT  membutuhkan  sekumpulan  nilai  yang  tidak  ingin
ditampilkan di hasil query.
Contoh :
Mengambil  nim,  kode_mk  dan  nilai  akhir  dari  mahasiswa  dengan
nilai  akhir  tidak  diantara  60  sampai  100,  dan  kode_mk-nya
mengandung angka 1.
SELECT NIM, KODE_MK, (TUGAS*0.4) + (UTS*0.3) +
(UAS*0.3) AS "FINAL SCORE" FROM NILAI 
WHERE (TUGAS*0.4) + (UTS*0.3) + (UAS*0.3) NOT
BETWEEN 60 AND 100 AND KODE_MK LIKE '%1%';

Pertemuan 3
Single-Row Functions
Functions adalah  sebuah  fitur  yang  sangat  kuat dari  SQL.  Functions  bisa  digunakan  untuk melakukan hal - hal berikut:

·         Melakukan kalkulasi pada data.
·          Mengubah data individual
·         Mengubah output untuk sekumpulan baris data.
·         Membentuk tampilan tanggal dan angka.
·         Mengubah tipe data kolom

Single-Row Function digunakan untuk memanipulasi baris data. Single-row  function menerima  1  (satu)  atau  lebih input  parameter / argument dan mengembalikan 1 (satu) nilai untuk setiap baris yang dikembalikan oleh query. 
Sebuah input parameter / argument dapat terdiri atas / diisi dengan:
·         Nilai konstan yang dimasukkan pengguna
·         Nilai variabel
·         Nama kolom
·         Ekspresi


Character Functions
Single-row  character  function  menerima  data karakter  sebagai  masukan  dan  dapat mengembalikan baik nilai karakter dan nilai angka.
Character function dapat dibagi menjadi 2:
·         Case-manipulation function
·         Character-manipulation function

Case-Manipulation Functions
Fungsi-fungsi  berikut  dapat  mengubah  case  dari  1  (satu)  atau sekumpulan karakter.
LOWER:  mengubah  karakter mixed-case  atau uppercase menjadi
lowercase.
UPPER:  mengubah  karakter  mixed-case  atau lowercase  menjadi
uppercase.
INITCAP:  mengubah  setiap  huruf  depan  dari  kata  menjadi uppercase dan      membiarkan huruf yang lain tetap lowercase.

Character-Manipulation Functions
·         CONCAT:  menggabungkan  2(dua)  nilai  menjadi  1  (satu). CONCAT hanya dapat menggabungkan 2 parameter / argument.
·         SUBSTR: mengambil karakter dari posisi karakter dan panjang yang disebutkan.
·         LENGTH: mengambil  panjang  sebuah string karakter menjadi nilai angka.
·         INSTR: mengambil posisi (dalam bentuk angka) dari karakter yang disebutkan.
·         LPAD: menambahkan karakter di bagian kiri string karakter 
·         RPAD: menambahkan karakter di bagian kanan string karakter.
·         REPLACE:  menggantikan  karakter  yang  disebut  pada string karakter dengan karakter / string karakter lain. 
·         TRIM: menghapus karakter yang disebutkan dari huruf paling awal atau  paling  akhir  (atau  keduanya)  dari string karakter. Dapat  juga digunakan untuk menghapus spasi.





Pertemuan 4
The Functions

MONTH_BETWEEN (DATE1, DATE2)
Mengembalikan  jumlah  bulan  antara date1  dan date2,  dan  dapat mengembalikan nilai negatif. 
ADD_MONTHS(DATE,N)
Menambahkan bulan sejumlah N ke DATE. Nilai dari N harus angka dan bisa negative.
NEXT_DAY(DATE,’CHAR’)
Menemukan tanggal dari hari berikutnya dalam minggu (‘CHAR’), setelah DATE. Nilai (‘CHAR’) dapat berisi angka yang mewakilkan hari atau string karakter.
LAST_DAY(DATE)
Menemukan tanggal dari hari terakhir pada bulan yang menampung  DATE.
ROUND(DATE[,’FMT’])
Mengembalikan  tanggal  yang  dibulatkan  ke  atas  berdasarkan ‘FMT’.  Jika  ’FMT’ tidak  disebutkan,  maka  tanggal  akan dibulatkan ke hari yang terdekat.

Data Type Conversions
ü  TO_CHAR(NUMBER|DATE,[fmt], [nlsparams])
Mengubah  sebuah  nilai NUMBER  atau  DATE  menjadi  sebuah karakter string VARCHAR2 dengan format fmt.  Number  Conversion:  Parameter  nlsparams  menyebutkan 
karakter-karakter  yang  akan  dikembalikan  oleh  elemen  format number. Jika nlsparams atau  parameter  lain  tidak  diisi,  maka fungsi akan menggunakan nilai parameter default. Date Conversion:  Parameter nlsparams menyebutkan  dalam bahasa  tanggal  apa  bulan,    nama  hari  hari,  serta  singkatan    akan dikembalikan.  Jika parameter nlsparams  ini  tidak  diisi,  maka fungsi akan menggunakan bahasa tanggal default. 
ü  TO_NUMBER(CHAR,[fmt], [nlsparams])
Mengubah sebuah karakter string yang memuat angka menjadi tipe data NUMBER dengan format sesuai pada fmt.  Parameter [nlsparams] di  fungsi  ini  memiliki  kesamaan
dengan  parameter [nlsparams] pada function TO_CHAR untuk number conversion.



ü  TO_DATE(CHAR,[fmt], [nlsparams])
Mengubah  sebuah  karakter  string  yang  mewakili  tanggal  ke  nilai dengan  tipe  data DATE berdasarkan fmt  yang  disebutkan.  Jika fmt tidak diisi, maka format yang dikembalikan adalah DD-MON-YY (akan dijelaskan nanti).  Parameter [nlsparams] di  fungsi  ini  memiliki  kesamaan dengan  parameter [nlsparams] pada function TO_CHAR untuk date conversion. 

General Functions
Fungsi-fungsi  berikut ini  dapat digunakan  dengan tipe  data apapun dan berhubungan dengan penggunaan nilai NULL:
Ø  NVL (expr1, expr2)
Mengubah sebuah nilai NULL menjadi nilai yang tertentu.
Ø  NVL2 (expr1, expr2, expr3)
Jika expr1 bernilai NULL, maka fungsi akan mengembalikan nilai pada expr3; sedangkan jika expr1 tidak bernilai null, maka fungsi akan mengembalikan nilai pada expr2
Ø  NULLIF (expr1, expr2)
Membandingkan 2 (dua) ekspresi dan mengembalikan NULL jika ekspresi tersebut sama. Jika kedua ekspresi tidak sama, maka fungsi akan mengembalikan expr1.
Ø  COALESCE (expr1, expr2, . . ., exprN)
Mengembalikan ekspresi non-NULL pertama dari daftar ekspresi.














Pertemuan 5
Group Functions / Aggregate Functions

Types Of Group Function Tidak  seperti  pada single-row  function,  Group
Function  atau Aggregate  Function  bekerja  pada sekumpulan baris data untuk mengembalikan 1 buah hasil  untuk  setiap groupnya.  Sekumpulan  baris  data
yang  dimaksud  bisa  melingkupi  1  (satu)  tabel,  atau sebuah tabel yang dibagi menjadi beberapa group. Tipe-Tipe dari Group Function adalah sebagai berikut:
Function  Description
Function  Description
AVG([DISTINCT|ALL] n)
mengembalikan rata-rata
nilai dari n dengan
mengabaikan nilai NULL.
COUNT({*|[DISTINCT|ALL]
expr})
mengembalikan jumlah dari
baris data. Expr akan
mengembalikan nilai yang
tidak NULL saja. (COUNT
ALL dengan menggunakan
* akan mengembalikan
semua data kembar dan
baris data dengan nilai
NULL)
MAX ([DISTINCT|ALL]
expr)
mengembalikan nilai
maksimum dari expr,
dengan mengabaikan nilai
NULL.
MIN ([DISTINCT|ALL]
expr)
mengembalikan nilai
minimum dari expr,
dengan mengabaikan nilai
NULL.
STDDEV([DISTINCT|ALL] n)
mengembalikan standar




Beberapa pedoman dalam menggunakan group function:
·         Keyword DISTINCT akan  membuat  function  membaca  nilai-nilai yang  tidak  kembar  saja. ALL akan  membuat  function  membaca semua  nilai,  termasuk  nilai  kembar. Default dari  sebuah  function adalah ALL.
·         Tipe  data  yang  dapat  digunakan  pada  function  dengan  parameter expr antara lain CHAR, VARCHAR2, NUMBER, atau DATE. 
·         Semua  group  function  mengabaikan  nilai  NULL.  Untuk menggantikan nilai NULL dengan nilai lain, gunakan function NVL, NVL2,atau COALESCE. Anda dapat menggunakan AVG, SUM, MIN,  dan MAX Function pada kolom  yang  menyimpan  data  bertipe  angka.  Anda  juga  dapat.

Pada  waktu tertentu, anda harus membagi  sebuah tabel menjadi group-group yang  lebih  kecil.  Hal  ini  dapat dilakukan dengan menggunakan klausa GROUP BY. Anda  dapat  menggunakan  klausa GROUP  BY  untuk membagi baris data pada sebuah tabel ke dalam group-group, kemudian anda  dapat  menggunakan  Group  Function  untuk  mengembalikan
ringkasan informasi yang dibutuhkan untuk setiap group.
Pada Syntax ini Group_by_expression diisi  dengan  kolom  yang
nilainya dijadikan dasar dalam mengelompokkan baris data.

Panduan dalam menggunakan GROUP BY:
·         Jika  anda memasukkan  kolom  lain  selain group  function  pada klausa  SELECT,  maka  semua  kolom  lain  tersebut  harus dimasukkan ke dalam klausa GROUP BY. 
·         Dengan  menggunakan  klausa WHERE,  anda  dapat  menyaring  baris data sebelum digroupkan.
·         anda tidak dapat menggunakan Column Alias (Stage 1) pada klausa GROUP BY.
·         Jika  klausa GROUP BY  diisi  dengan  lebih  dari  1  (satu)  kolom, maka pengelompokan akan dimulai dari kolom paling pertama yang disebutkan,  lalu  dilanjutkan  dengan  kolom  berikutnya  (dalam pengelompokan sebelumnya). 
·         Anda  dapat  menggunakan  klausa GROUP BY tanpa  menggunakan Group Function.




Condition in Group Function Result
Sama seperti klausa WHERE yang digunakan untuk menyaring baris data yang  anda SELECT,  anda  juga  dapat  menyaring  hasil  dari  Group Function  dengan  menggunakan  klausa  HAVING.  Anda  dapat menggunakan klausa HAVING untuk menyaring group mana yang akan ditampilkan berdasarkan hasil group function.   
EQUIJOIN
Equijoin  memerlukan  kehadiran  Primary  Key  dan  Foreign  Key  pada tabel-tabel yang akan digabungkan. Equijoin juga biasa disebut sebagai simple  JOIN  atau inner  JOIN.  penulisan equijoin  dapat  dilakukan dengan menggunakan USING, ON, dan WHERE.

Menggunakan USING
Klausa  USING  dapat  digunakan  untuk menyebutkan  kolom  apa  saja yang dijadikan referensi JOIN ketika ada lebih dari 1 (satu) kolom yangcocok  antara  tabel-tabel  yang digabungkan.  Kolom-kolom  yang digunakan  pada  klausa USING tidak  boleh ditambahkan  dengan  nama tabel atau alias pada bagian lain dari query.
Contoh :
Menampilkan  nama  lengkap  mahasiswa  dan  nama  program  studi dari seluruh mahasiswa
SELECT MAHASISWA.NAMA_DEPAN ||' '|| MAHASISWA.NAMA_BELAKANG "NAMA LENGKAP", PROGRAM_STUDI.NAMA_PRODI
FROM MAHASISWA  JOIN PROGRAM_STUDI 
USING (KODE_PRODI);
Menggunakan ON
Klausa ON dapat digunakan  untuk menuliskan kondisi  acak  atau  untuk menuliskan  kolom  yang digunakan  sebagai kondisi JOIN. pada  klausa ON,  kondisi JOIN  dipisahkan  dari  kondisi  pencarian  lain  yang dituliskan pada klausa WHERE.
Contoh :
Menampilkan  nama  lengkap  mahasiswa  dan  nama  program  studi dari seluruh mahasiswa
SELECT MAHASISWA.NAMA_DEPAN ||' '|| MAHASISWA.NAMA_BELAKANG "NAMA LENGKAP", PROGRAM_STUDI.NAMA_PRODI
FROM MAHASISWA  JOIN PROGRAM_STUDI 
ON MAHASISWA.KODE_PRODI = PROGRAM_STUDI.KODE_PRODI;



Menggunakan WHERE
JOIN dapat  dilakukan  juga  dengan  menggunakan  klausa WHERE.  jika kondisi JOIN diletakkan  pada  klausa WHERE,  maka  kata  kunci JOIN dapat dihilangkan dari klausa FROM. 
Contoh :
Menampilkan  nama  lengkap  mahasiswa  dan  nama  program  studi dari seluruh mahasiswa
SELECT MAHASISWA.NAMA_DEPAN ||' '|| MAHASISWA.NAMA_BELAKANG "NAMA LENGKAP", PROGRAM_STUDI.NAMA_PRODI
FROM MAHASISWA, PROGRAM_STUDI 
WHERE MAHASISWA.KODE_PRODI = PROGRAM_STUDI.KODE_PRODI;

LEFT OUTER JOIN
LEFT OUTER JOIN  akan  menampilkan  semua  baris  data  dari  tabel sebelah kiri (dari kata kunci LEFT OUTER JOIN) meskipun ada baris data yang tidak memenuhi kondisi JOIN dengan tabel sebelah kanan
contoh :
Menampilkan  semua kode  mk  dan  nama  mk beserta  nilai  uas tertinggi  dari  mata  kuliah  tersebut beserta  matakuliah  yang  belum memiliki nilai uas.
SELECT MK.KODE_MK, MK.NAMA_MK, MAX(N.UAS) 
FROM MATAKULIAH MK LEFT OUTER JOIN NILAI
ON MK.KODE_MK = N.KODE_MK
GROUP BY MK.KODE_MK, MK.NAMA_MK;

RIGHT OUTER JOIN
RIGHT OUTER JOIN akan  menampilkan  semua  baris  data  dari  tabel sebelah  kanan  (dari  kata  kunci RIGHT OUTER JOIN)  meskipun  ada baris  data  yang  tidak  memenuhi  kondisi JOIN  dengan  tabel  sebelah kanan. 
Contoh :
Menampilkan  semua  kode  mk  dan  nama  mk  beserta  nilai  uas tertinggi  dari  mata  kuliah  tersebut  beserta  matakuliah  yang  belum memiliki nilai uas.
SELECT MK.KODE_MK, MK.NAMA_MK, MAX(N.UAS)
FROM NILAI N RIGHT OUTER JOIN MATAKULIAH
MK ON MK.KODE_MK = N.KODE_MK
GROUP BY MK.KODE_MK, MK.NAMA_MK;

FULL OUTER JOIN
FULL OUTER JOIN  akan  menampilkan  semua  baris  data  dari  tabel sebelah kanan  dan  kiri meskipun ada  baris  data  pada  kedua  tabel  yang tidak memenuhi kondisi JOIN antar tabel.
Contoh :
Menampilkan  semua  nid  dosen,  nama  dosen,  dan  plotting  yang  sudah dilakukan, beserta dosen-dosen yang belum melakukan plotting.
SELECT P.ID_PLOTTING, D.NID, D.NAMA_DOSEN, P.KODE_MK, P.HARI, P.JAM_MULAI, P.JAM_SELESAI
FROM PLOTTING_AJAR P FULL OUTER JOIN DOSEN D
ON D.NID = P.NID;

SELF JOIN
Self join adalah kondisi ketika anda melakukan JOIN pada 1 tabel yang sama.  Untuk  membedakan  antara  tabel  yang  satu  dengan  yang  lain, gunakan table  aliases.  Kondisi  yang  digunakan  pada self  join  tidak harus berupa kondisi equijoin.
Contoh :
Menampilkan  nim,  nama  belakang,  dan  kota_tinggal  dari  mahasiswa yang  tinggal  di  kota  yang  sama  dengan  mahasiswa  bernama  depan ‘Bambang’
SELECT M1.NIM, M1.NAMA_BELAKANG, M1.KOTA_TINGGAL
FROM MAHASISWA M1 JOIN MAHASISWA M2  ON M2. NAMA_DEPAN = 'Bambang'
WHERE M1.KOTA_TINGGAL = M2.KOTA_TINGGAL;




Pertemuan 6

SUBQUERY
Pada stage 1  sampai  4,  anda  dihadapkan  dengan  pencarian  data  yang kondisinya  masih  jelas  pada  tabel,  tetapi  tidak  menutup  kemungkinan bahwa akan muncul kebutuhan data yang kondisinya tidak jelas. Hal ini bisa  diselesaikan  dengan  menggunakan  penggabungan  2  (dua) query atau  lebih.  (memasukkan  query yang 1 (satu) ke query yang lain) Query yang  ada  di  bagian  dalam mengembalikan  sebuah  nilai  (atau kumpulan  nilai)  yang  digunakan
oleh query bagian luar.  Sebuah subquery adalah sebuah query SELECT yang ditancapkan pada sebuah  klausa  di query  SELECT  yang  lain.  anda  dapat meletakkan subquery pada beberapa klausa pada SQL query, meliputi:
·         Klausa WHERE 
·         Klausa HAVING
·         Klausa FROM

contoh For Single-Row Subquery:
Menampilkan  nim,  nama  belakang,  dan  kota_tinggal  dari mahasiswa  yang  tinggal  di  kota  yang  sama  dengan  mahasiswa bernama depan ‘Bambang’
SELECT NIM, NAMA_BELAKANG, KOTA_TINGGAL FROM MAHASISWA WHERE
KOTA_TINGGAL =  (SELECT KOTA_TINGGAL FROM MAHASISWA
WHERE NAMA_DEPAN = 'Bambang');

contoh For Multiple-Row Subquery:
Menampilkan nim, nama lengkap, kode mk, nama mk, dan nilai uas
yang dari  mahasiswa  yang  mengambil  mata  kuliah yang diadakan
pada semester 4.
SELECT MHS.NIM, MHS.NAMA_DEPAN ||' '|| MHS.NAMA_BELAKANG "NAMA LENGKAP", N.KODE_MK, MK.NAMA_MK, N.UAS
FROM MAHASISWA MHS JOIN NILAI N
ON MHS.NIM = N.NIM JOIN MATAKULIAH MK
ON MK.KODE_MK = N.KODE_MK
WHERE N.KODE_MK IN (SELECT KODE_MK FROM MATAKULIAH WHERE SEMESTER = 4);
Set Operator
Set operator menggabungkan 2 (dua) atau lebih query menjadi 1 (satu) hasil. Semua set  operator memiliki  tingkatan  yang  sama,  jika  sebuah query memiliki banyak set operator, maka Oracle Server akan membaca query dari kiri (atau atas) ke kanan (bawah), jika tidak ada tanda kurung ( ) yang digunakan untuk mengurutkan.




TUGAS SQL
TABEL MHS
NIM
Nama
Alamat
HP
Jurusan
IPK
1390100004
Niken
Kendalsari
085678909
Mi
3,10
12390100028
Laili
Manyar Indah
089076554
Mi
3,05

TABEL Dosen_Wali
Kode_Dosen
Nim_Mhs
 2345656
12390100004
2356890
12390100028

TABEL DOSEN
Kode_Dosen
Nama_Dosen
 2345656
Pak Bambang
2356890
Bu Shinta
Perintah SQL
SELECT NIM, Nama
FROM MHS
WHERE IPK >
            (SELECT IPK
             FROM MHS
             WHERE NIM, Nama = ‘12390100004’, ‘Niken’
ANY
SELECT NIM, Nama
FROM MHS
WHERE IPK < ANY
            (SELECT IPK
             FROM MHS
             WHERE NIM, Nama = ‘12390100004’, ‘Niken’)
AND NIM, Nama < > ‘12390100004’, ‘Niken’ ;