Intro SQL Access

of 93 /93
Introduction to Access 2003 SQL Oleh EruP 2007 PENS

Embed Size (px)

description

materi kuliah SQL

Transcript of Intro SQL Access

  • Introduction to Access 2003SQLOleh EruP2007PENS

  • PerjanjianACCESS tidak membedakan huruf besar atau kecil (case insensitive)Semua sama : SELECT, select, SelectTermasuk Nama Object : SISWA, siswa, Siswa dianggap samakecualiLITERAL menggunakan tanda , tergantung penulisan: Ini, INI,ini dianggap berbeda

  • PerjanjianString adalah sesuatu yang berada dalam/diapit tanda petik ganda atau tunggalNama obyek tidak boleh mengandung spasiJika terpaksa menggunakan spasi, maka dapat menggunakan tanda kurung persegi [ ... ]Contoh : [Nama Depan], [Dosen Pembimbing]Dalam contoh program, key word (ditulis sesuai dengan yang tertulis) dicetak dalam huruf besar (boleh ditulis huruf kecil)Contoh : SELECT kolom FROM tabel WHERE a=b

  • PerjanjianString, bilangan dapat digabung dengan tanda gabung ampersand (&)Nama : & nama & umur & umurSetiap perintah SQL harus diakhiri dengan tanda titik koma (;)Kecuali yang dituliskan sebagai string parameter pada suatu bahasa pemrograman tertentu, tidak diperlukan tanda titik komaACCESS 2003 juga tidak memerlukan tanda titik koma

  • Tabel - DatabasePada percobaan-percobaan berikut akan menggunakan DBMS ACCESS 2003Nama Database Siswa.mdbNama-nama TabelSiswa Data MasterDosen Data MasterTA Data TransaksiJurusan Data MasterDual Dummy Table

  • Konsep: ERDSiswaDosenTANMPEMBIMBINGBIMBINGANJudulPerwalianN1WALISISWANRPAlamatUmurKelasNamaLahirNamaNIPAlamatGajiJurusanJurusanSiswaJurusanDosenNN11KodeJurusanKajurSekjur1111AtasanN1

  • Implementasi: Tabel

  • PendahuluanSQL - Standard Database RelasiSQL Structured Query LanguageSEQUEL Structured English QUEry LanguagePerintah untuk operasi Database dalam bentukBerupa satu perintah tunggal untuk satu operasi yang ditulis dalam satu baris (biasanya) perintah

  • Sejarah SQLPertama kali dibuat oleh IBM, dan digunakan dalam DB2Pertama kali distandardisasi oleh ANSI tahun 1986 (ANSI SQL 1986)Diperbaiki dalam standard SQL 92 kemudian SQL99Terakhir ???ACCESS 2003 menggunakan stadard SQL 92

  • DBMSDBMS - Database Management SystemSoftware untuk manajemen databaseSoftware yang disertakan pembuat database/pihak lain untuk menjalankan sistem databaseSecara umum, kalau mengatakan DBMS, artinyaFile DatabaseDatabase Engine/Server DatabasePerintah-perintah Database (SQL atau lainnya)Administrasi DatabaseDan sebagainya

  • DBMS dan SQLSQL dalam DBMS tertentu tidak dapat murni mengikuti standard SQL karenaTergantung DBMSTergantung KemampuanTergantung Riwayat/SejarahAkibatnya, secara umumSebagian SQL akan standard/sama untuk semua DBMSSebagian SQL akan berbeda untuk semua DBMSDiperlukan pengetahuan tertendiri untuk masing-masing DBMS

  • Apakah tidak bisa mengoperasikan database tanpa SQL ?Cara umum untuk menjalankan database tanpa perintah SQL adalah dengan menggunakan cara Navigasi Database atau RecordSetMembuka TabelMenentukan FilterMencariMengubah/Menghapus/Menambah dataBergeser/berpindah/navigasi pointer/cursor naik atau turunMendeteksi awal atau akhir record (baris)Menutup tabelSering juga dikenal dengan nama Cursor

  • Mengapa Harus SQL ?Apa kelebihan SQL ?SQL adalah perintah yang berbentuk satu perintah untuk satu proses/operasi databaseLebih mudah memberikan perintah dibandingkan harus mengoperasikan database (misalkan dengan cara navigasi)Memiliki variasi perintah yang cukup banyakMemungkinkan melakukan operasi yang sangat beragamStandard, mudah mengoperasikan SQL pada berbagai jenis DBMS (seharusnya)Saat ini, kompatibilitasnya masih terbatas

  • Pembagian Perintah SQLData Retrieval Digunakan untuk mengambil/membaca DatabaseSELECTDDL (Data Definition Language) Digunakan untuk menyatakan suatu DatabaseCREATE, ALTER, DROP, RENAME, TRUNCATEDML (Data Manipulation Language) Digunakan untuk pengubahan DatabaseINSERT, UPDATE, DELETE, MERGETransaction Control Digunakan untuk mengendalikan TransaksiCOMMIT, ROLLBACK, SAVEPOINTDCL (Data Control Language) Digunakan untuk mengendalikan DatabaseGRANT, REVOKE

  • Penulisan SQL SELECT DasarPembagian/Kemampuan perintah SELECTProyeksi : Memilih Kolomdinyatakan dalam klausa SELECTSeleksi : Memilih Barisdinyatakan dalam klausa WHEREJoin : Penggabungan tabeldinyatakan klausa FROMFormat :SELECT *|{[DISTINCT] kolom|ekspresi [AS alias],} FROM tabel [AS alias]

  • Proyeksi Seleksi JoinJOINProyeksiSeleksiJURUSANSISWACari NAMA dan ALAMAT dari SISWA yang JURUSAN ELKA

    NRPNAMAALAMATKELASJURUSAN

    123EkoMalang31124DianBlitar21

    KODEJURUSANKAJURSEKJUR1ELKA222333

  • Klausa SELECT - ProyeksiSELECT artinya memilih kolom mana yang akan ditampilkan (proyeksi)Dapat terdiri dari :List KolomList Semua Kolom (*)Ekspresi (operasi aritmatika)Fungsi (memanggil fungsi)Alias (AS Nama atau AS [Nama Alias])Distinct

  • Menjalankan Perintah SQL pada MSACCESS 2003PilihTekanKlik Dua Kali

  • Editor QueryKlikKetik perintahSQL di sini

  • Memasukkan Perintah SQLKetik perintahSQL di siniKlik untukMenjalankanPerintah SQL

  • Hasil QueryHasil MenjalankanPerintah SQLKlik pada Panah untukkembali ke Mode Perintah SQLKlik SQL View

  • Contoh Klausa SELECTList KolomSELECT nama, alamat FROM siswaSELECT siswa.nama, dosen.nama FROM siswa,dosenList Semua Kolom (*)SELECT * FROM siswaSELECT siswa.*, dosen.nama FROM siswa,dosenEkspresi (operasi aritmatika)SELECT gaji*0.1+5000 FROM dosen

  • Contoh Klausa SELECT (lanj.)Fungsi (memanggil fungsi)SELECT ucase(nama), format(lahir,DD-MM-YYYY) FROM siswaSELECT cint((now-lahir)/365.25) FROM siswaAlias (AS Nama atau AS [Nama Alias])SELECT nama AS Mahasiswa FROM siswaSELECT gaji*0.1 AS bonus FROM dosenSELECT nama AS [Dosen Pembimbing] FROM dosenDistinct menampilkan satu untuk yang samaSELECT DISTINCT kelas FROM siswa

  • Klausa FROM Tabel/JoinFROM menunjukkan nama Tabel yang akan ditampilkan/dioperasikanDapat berupaTabel tunggalJoinQueryInline viewAlias

  • Contoh Klausa FROMTabel tunggalSELECT * FROM siswaSELECT * FROM dosenJoinSELECT * FROM siswa, dosenQuerySELECT * FROM qsiswaInline viewSELECT * FROM (SELECT * FROM siswa)AliasSELECT * FROM dosen AS d1, dosen AS d2

  • Contoh Perintah SQLMelihat seluruh isi suatu tabelSELECT * FROM siswa;Melihat hanya sebagian kolom dari suatu tabelSELECT nama,alamat FROM siswa;Melihat sekaligus melakukan operasi pada suatu kolom dan memberikan alias pada suatu kolomSELECT nama AS Dosen,gaji,gaji*0.10 AS Bonus FROM dosen;Melakukan penggabungan dengan suatu literal dan kolomSELECT Nama : & nama FROM siswa;Mengambil hanya nilai-nilai yang berbeda/membatasi hasil yang muncul (semua siswa bekerja pada jurusan apa saja)SELECT DISTINCT jurusan FROM siswa;

  • Soal/TugasTampilkan gaji semua dosen dalam bentuk rupiahContohNamaGajiANDIRp. 5000000Daftar gaji pada tabel dalam dollarTampilkan Kemungkinan nilai nominal gaji berapa saja yang dibayarkan

  • Klausa WHERE - SeleksiMemilih baris data mana saja yang akan ditampilkan (seleksi)Format :SELECT *|{[DISTINCT] kolom|ekspresi [AS alias],} FROM table [WHERE kondisi];WHERE menyatakan batasan apa saja yang diberikanKondisi :Perbandingan - =, , >,
  • Contoh Klausa WHEREPerbandingan - =, , >, 200Range - IN(), BETWEEN AND SELECT * FROM siswa WHERE kelas BETWEEN 2 AND 3Boolean - AND, OR, NOTSELECT * FROM data WHERE a=10 AND b=20

  • Contoh Klausa WHERE (lanj.)NULL - IS NULL, IS NOT NULLSELECT * FROM dosen WHERE atasan IS NULLKemiripan LIKE ? Untuk satu huruf, * untuk semua/segalaSELECT * FROM siswa WHERE nama LIKE "?ntok Maringis"SELECT * FROM siswa WHERE nama LIKE B*SELECT * FROM siswa WHERE nama LIKE ?A*

  • Soal/TugasTampilkan daftar siswa kelas 2 dan 3Cari daftar mahasiswa yang memiliki kata wati pada namanya dan tampilkan hanya nama dan alamatnya

  • Klausa ORDER BYMenyatakan hasil akan diurutkan menurut kolom mana (bisa lebih dari satu kolom)ASC (atau tidak disebutkan/default) menyatakan urutan naikDESC menyatakan urutan turunFormat :SELECT *|{[DISTINCT] kolom|ekspresi [AS alias],} FROM table [WHERE kondisi] [ORDER BY kolom [ASC|DESC]];

  • Contoh Perintah SQLMembaca data semua siswa dengan kelas 3SELECT * FROM siswa WHERE kelas=3;Membaca data lengkap siswa dengan nama Dimas AnantoSELECT * FROM siswa WHERE nama="Dimas Ananto";Membaca dosen yang memiliki gaji >= 200 dollarSELECT * FROM dosen WHERE gaji>=200;Membaca data dosen memiliki gaji dari 100 sampai 200 dollarSELECT * FROM dosen WHERE gaji BETWEEN 100 AND 200;Membaca data siswa yang memiliki huruf kedua dari nama adalah D, dan urutkan berdasarkan nama dengan urutan menurunSELECT * FROM siswa WHERE nama like "?D* ORDER BY nama DESC;

  • Fungsi Single-RowInput fungsi dari satu baris/record, dan menghasilkan satu per barisInput banyak baris, menghasilkan banyak baris yang samaMengolah data itemsDapat menerima argumen dan menghasilkan satu nilaiMengeluarkan nilai untuk setiap baris dataDapat mengubah tipe dataDapat dalam bentuk bersarang (nested)Dapat menerima argumen berupa data kolom atau suatu ekspresi

  • Contoh Fungsi Single-rowKarakter (lcase, ucase, initcap, concat, instr)SELECT lcase(nama) FROM dosen;Bilangan (cint, int, mod)SELECT gaji,cint(gaji/100) FROM dosen;Tanggal (now, date, time, add_months, round, trunc)SELECT now,now+1 AS besok FROM dual;Konversi implisit, atau eksplisit (val, cdate, cstr)SELECT format(date,"dd-mm-yyyy") FROM dual;

  • Soal/TugasTampilkan tanggal 1 minggu kemudianTampilkan Nama dan Tanggal Lahir dengan format DD-MM-YYYY dari siswa yang tidak memiliki dosen wali

  • Fungsi Multi-RowMelakukan operasi pada sekelompok baris data untuk menghasilkan sebuah dataInput fungsi dari banyak baris, menghasilkan satu atau banyak baris (Gouping, Fungsi Agregat)

  • Contoh Fungsi Multi-rowcount(*)count(nama_kolom)Sum(nama_kolom)Min(nama_kolom)max(nama_kolom)avg(nama_kolom)

  • Soal/TugasHitung jumlah seluruh siswaHitung jumlah pegawai yang tidak memiliki atasanHitung total gaji dosen dalam rupiahBerapa gaji terendah, gaji tertinggi dan rata-rata gaji dosenHitung jumlah siswa tiap jurusanHitung total gaji dosen tiap jurusan

  • Menggabungkan Tabel (Join)AlasanSering diperlukan melakukan beberapa operasi database untuk mendapatkan suatu informasi yang diinginkanPerintah SQL dibatasi hanya berupa satu perintah/operasi saja untuk mendapatkan suatu hasil yang diinginkanTidak dapat menggunakan beberapa perintah/operasi sekaligusDiperlukan cara untuk menggabungkan beberapa perintah/operasi menjadi satu perintah/operasi tunggal

  • Contoh Alasan JoinPertanyaanSiapa nama dosen wali dari siswa yang namanya YuliwatiJawabCari Dosen Wali Yuliwati dari tabel SiswaSELECT [dosen wali] FROM siswa WHERE nama= YuliwatiTernyata informasi Dosen Wali dari tabel Siswa masih dalam bentuk Kode NIP=1235Cari mama Dosen Wali pada tabel Dosen menggunakan kunci pencarian NIPSELECT nama FROM dosen WHERE NIP=1235

  • Contoh Alasan Join (lanj.)Dengan menggunakan join, pertanyaan sebelumnya dapat dicari dengan sekali perintah/proses sajaCari nama dosen wali siswa dari tabel siswa sekaligus tabel dosen, yang nama siswa=Yuliwati dan kode dosen wali siswa = kode NIP dari dosenSELECT s.Nama as Siswa, d.Nama as Wali FROM siswa as s, dosen as d WHERE s.nama=Yuliwati AND s.wali=d.nip

  • Join (lanjutan)Kegunaan :Digunakan untuk menampilkan dari banyak tabelMengkombinasikan seluruh kemungkinan data antar banyak tabelMendapatkan informasi yang tersimpan pada tabel lain (melakukan relasi antara satu tabel dengan tabel lainnya)

  • Jenis JoinCross/kartesian joininner/equi joinnatural joinjoin usingnon equi joinouter joinleft outer joinright outer joinfull outer joinACCESS 2003 tidak memiliki Full Outer Joinself join

  • Kartesian/Cross JoinDigunakan untuk mendapatkan berbagai kemungkinan kombinasiHasil JoinKolom berupakan gabungan dari semua tabel yang di-joinBaris merupakan semua kombinasi (jumlah perkalian) dari semua baris yang di-joinContohSELECT * FROM siswa, dosen

  • Contoh : Cross JoinSELECT * FROM A, BKolom dijadikan satu antara A dan BBaris data dikombinasikan (4x4=16)

  • Inner/Equi JoinDigunakan untuk mendapatkan informasi dari beberapa tabel berdasar relasi yang sesuaiInner artinya informasi relasi ada pada setiap tabelSELECT * FROM siswa INNER JOIN dosen ON siswa.wali=dosen.nipEqui artinya relasi dinyatakan dengan bentuk persamaan (sama dengan, =)SELECT * FROM siswa, dosen WHERE wali=nip

  • Contoh : Inner/Equi JoinSELECT * FROM A INNER JOIN B ON A.X=B.VSELECT * FROM A, B WHERE A.X=B.VHasil baris, nilai X yang sama dengan V

  • Inner/Non Equi JoinSama dengan Inner/Equi Join, hanya menggunakan bentuk pertidak samaan, atau sering dalam bentuk rangeInner JoinSELECT * FROM siswa INNER JOIN dosen ON siswa. wali>dosen.nipNon Equi Join artinya relasi dinyatakan dengan bentuk pertidaksamaan (>, =,=min AND na
  • Natural Joinnone

  • Join Usingnone

  • Outer JoinDigunakan untuk mendapatkan informasi dari suatu tabel yang data-nya sesuai dan tidak sesuai

  • Left Outer JoinMencari informasi yang relasi ada pada ke dua sisi tabel dan yang relasi tabel yang data pada sisi kiri tidak dijumpai pada sisi kananTampilkan data siswa yang memiliki dosen wali sekaligus yang tidakSELECT * FROM siswa LEFT JOIN dosen ON siswa.wali=dosen.nip

  • Contoh : Left Outer JoinSELECT * FROM A LEFT JOIN B ON A.X=B.VSeluruh data A ditampilkan dan data B yang sesuai dengan relasi X=VYang tidak sesuai, kosongkan

  • Right Outer JoinMencari informasi yang relasi ada pada ke dua sisi tabel dan yang relasi tabel yang data pada sisi kanan tidak dijumpai pada sisi kiriTampilkan data dosen yang sebagai dosen wali dan yang tidakSELECT * FROM siswa RIGHT JOIN dosen ON siswa.wali=dosen.nip;

  • Contoh : Right Outer JoinSELECT * FROM A RIGHT JOIN B ON A.X=B.VSeluruh data B ditampilkan dan data A yang sesuai dengan relasi X=VYang tidak sesuai, kosongkan

  • Full Outer Joinnone

  • Self JoinSama dengan join lainnya, hanya melibatkan tabel yang samaSELECT d.nama as Dosen, a.nama as Atasan FROM dosen as d, dosen as a WHERE d.atasan=a.nip

  • Contoh JoinKartesian, untuk mendapatkan seluruh kombinasi dataSELECT * FROM siswa, dosen;Inner, relasi antar tabel dengan nilai data yang sama tepatSELECT * FROM siswa INNER JOIN dosen ON siswa.wali=dosen.nipNonequijoin, untuk mencari/membandingkan nilai antaraSELECT * FROM nilai,konversi WHERE na>=min AND na
  • Soal/TugasTampilkan Nama siswa lengkap dengan nama JurusanTampilkan Nama siswa pada Jurusan Elektronika dan Elektro IndustriTampilkan Nama siswa yang ketua jusannya Mamat Darmawan

  • Klausa GROUP BYMengoperasikan sekelompok baris data menjadi bentuk group dataFungsi Group (Multi-row Function)AVG, COUNT, MAX, MIN, SUM, Format :SELECT [kolom,] fungsi_group(kolom), FROM tabel [WHERE kondisi] [GROUP BY kolom] [HAVING kondisi_group] [ORDER BY kolom];

  • Aturan GroupPenggunaan Multi-row Function tidak harus menggunakan klausa GROUP BYContohSELECT max(kelas) FROM siswa GROUP BY jurusanBolehSELECT count(*) FROM siswaSELECT sum(gaji) AS [Total Gaji], min(gaji) AS [Gaji Terendah], max(gaji) AS [Gaji Tertinggi] FROM dosen WHERE jurusan=1

  • Aturan Group (lanjutan)Penggunaan Single-row Function bersama-sama dengan Multi-row Function harus menggunakan klausa GROUP BYList pada GROUP BY sama dengan semua Single-row Function yang digunakanContohSELECT jurusan,sum(gaji) FROM dosen GROUP BY jurusanSalahSELECT kelas,count(*) FROM siswa

  • Aturan Group (lanjutan)Penggunaan klausa GROUP BY harus menggunakan Multi-row FunctionContohSELECT count(*) FROM siswa GROUP BY kelasSalahSELECT nama FROM siswa GROUP BY jurusan

  • Aturan Group (lanjutan)Penggunaan klausa GROUP BY tidak harus menggunakan Single-row FunctionContohSELECT wali, count(nama) FROM siswa GROUP BY waliBolehSELECT count(*) FROM siswa GROUP BY kelas

  • Klausa HAVINGIdentik dengan klausa WHEREDigunakan untuk membatasi jumlah /memilih baris yang tampilKlausa WHERE digunakan pada operasi Single-rowKlausa HAVING digunakan pada operasi Multi-row

  • Aturan Klausa HAVINGPenggunaan klausa GROUP BY tidak harus menggunakan klausa HAVINGContohSELECT count(*) FROM siswa GROUP BY kelas HAVING count(*)>10BolehSELECT count(*) FROM siswa GROUP BY kelas

  • Aturan Klausa HAVING (lanj.)Penggunaan klausa HAVING tidak harus menggunakan GROUP BYContohSELECT sum(gaji) FROM dosen GROUP BY jurusan HAVING sum(gaji)>500BolehSELECT count(*) FROM siswa HAVING count(*)>10

  • Aturan Klausa HAVING (lanj.)Seleksi Single-row harus menggunakan klausa WHEREContohSELECT sum(gaji) FROM dosen GROUP BY jurusan WHERE jurusan=1SalahSELECT sum(gaji) FROM pegawai GROUP BY jurusan HAVING jurusan=1

  • Aturan Klausa HAVING (lanj.)Seleksi Multi-row harus menggunakan Klausa HAVINGContohSELECT sum(gaji) FROM dosen GROUP BY jurusan HAVING sum(gaji)
  • Contoh GroupMenghitung jumlah dosen setiap jurusan dan mengurutkan hasilnya berdasar nomor jurusanSELECT Jurusan,count(nip) as Jumlah FROM dosen GROUP BY jurusan ORDER BY jurusan;Menghitung total gaji pegawai dari departemen nomor 2, 3, dan 4, tetapi hanya menampilkan yang total setiap jurusannya lebih besar dari 500 dollarSELECT Jurusan,sum(sal) as [Total Gaji] FROM dosen WHERE jurusan IN(2,3,4) GROUP BY jurusan having sum(sal)>500 ORDER BY jurusan;

  • Soal/TugasTampilkan total gaji dalam rupiah yang harus dibayarkan pada jurusan Elektronika dan Teknik KomputerTampilkan Jumlah siswa tiap Jurusan lengkap dengan nama Jurusan-nya

  • SubqueryMencari sesuatu yang berasal dari hasil query lainnyaPetunjukSubquery diawali dengan kurung buka dan diakhiri dengan kurung tutupSubquery diletakkan pada sisi kanan dari suatu perbandinganPenggunaan order by dalam subquery tidak diperlukan, kecuali untuk melakukan analisa top-nGunakan operator yang sesuai dengan hasil dari subquery. Single-row operator dengan single-row subquery, multiple-row operator dengan multiple-row subquery

  • Contoh SubquerySiapa saja pegawai yang gajinya lebih besar dari gaji Adam ? Untuk itu, harus dicari dulu, berapa gaji Adam ?SELECT * FROM dosen WHERE gaji>(SELECT gaji FROM dosen WHERE nama="Permata Sari");Hasil subquery harus satu baris, menggunakan perbandinganSELECT * FROM dosen WHERE gaji=(SELECT gaji FROM dosen WHERE nama="Permata Sari");Hasil subquery boleh banyak baris, menggunakan rangeSELECT * FROM dosen WHERE gaji in (SELECT gaji FROM dosen WHERE jurusan=2)Salah, karena operator perbandingan digunakan pada subquery yang menghasilkan banyak barisSELECT * FROM dosen WHERE gaji=(SELECT gaji FROM dosen WHERE jurusan=2);

  • Soal/Tugas Tampilkan Nama siswa yang memiliki satu jurusan dengan siswa yang bernama Titik Priyanti

  • Inline ViewDigunakan untuk mengantikan list Tabel menjadi perintah QUERYUntuk melakukan operasi yang tidak berasal dari tabel aslinyaMenyederhanakan perintah yang rumit

  • Contoh Inline ViewMembaca data pegawai dengan nomor departemen>2, yang berasal dari suatu inline viewSELECT * FROM (SELECT nama,jurusan FROM dosen) WHERE jurusan>2Melakukan operasi join hasil dari suatu inline viewSELECT d.*,j.jurusan FROM (SELECT nama,jurusan FROM dosen WHERE gaji>100) as d,(SELECT kode,jurusan FROM jurusan WHERE kode>2) as j WHERE d.jurusan=j.kodeMelakukan manipulasi data pada suatu inline viewUPDATE (SELECT nama,gaji FROM dosen WHERE jurusan=2) SET gaji=100 WHERE gaji=110

  • Soal/Tugas

  • Parameter ValueSubsitusi VariabelMemasukkan suatu nilai parameter tiap kali menjalankan perintah SQLContohSELECT * FROM dosen WHERE gaji>BatasGaji;SELECT Nama, format(lahir,"DD-MM-YYYY") as [Tanggal Lahir] FROM siswa WHERE ucase(nama) like "*" & ucase([Masukkan Nama Siswa :]) & "*"

  • Menggunakan Operator SET UNIONDigunakan untuk menggabungkan hasil dari lebih dari satu queryHasil dari setiap query harus memiliki kolom yang samaUNION - tidak semua (yang kembar dibuang)UNION ALL - semua

  • ContohMenggabungkan semua hasil dari dosen yang bekerja pada jurusan 2 dan jurusan 3Hasilnya sama dengan perintahSELECT * FROM dosen WHERE jurusan IN (2,3) ORDER BY jurusanSELECT * FROM dosen WHERE jurusan=2 UNION ALL SELECT * FROM dosen WHERE jurusan=3;

  • Memanipulasi DataDML - Data Manipulation LanguageMenambah baris data baruMengubah isi suatu baris dataMenghapus suatu baris dataTransaksi adalah kumpulan dari perintah DML yang membentuk suatu suatu kerja tertentu

  • Contoh Operasi DMLINSERT INTO jurusan (kode,jurusan,kajur,sekjur) VALUES (8,Akutansi,1230,1237);INSERT INTO jurusan VALUES (9,Perpajakan,1233,1239);UPDATE jurusan SET jurusan=Keuangan WHERE kode=8;DELETE FROM jurusan WHERE kode IN (8,9);

  • Soal/TugasTampilkan data Kelas dari siswa yang ketua jurusannya bernama Bromantoro Diarwanto dan dosen wali Guna MardiUbah data kelas dari siswa tersebut menjadi kelas 4

  • Membuat dan Mengatur TabelCREATE TABLE nama (kolom tipe konstrain,kolom tipe konstrain konstrain,[Nama Kolom] tipe konstrain,,kolom tipe konstrain,CONSTRAINT namak konstrain (kolom));

  • TipeBOOLEANINTEGER, LONG, CURRENCY, SINGLE, DOUBLE atau NUMBERCHAR, VARCHAR atau TEXTDATEMEMOVARIANT (default)

  • KonstrainNOT NULLPRIMARY KEYUNIQUEREFERENCES tabel(kolom)

  • Pengertian KonstrainKegunaan :Memberikan aturan pada tingkat tableMembatasi Manipulasi tertentu pada TabelMenjaga Integritas DataMenjaga Validitas DataJenisNOT NULLUNIQUEPRIMARY KEYFOREIGN KEY

  • Penjelasan KonstrainNOT NULLSuatu kolom harus memiliki nilai tertentu (tidak boleh kosong)UNIQUESuatu kolom harus tidak boleh memiliki nilai yang sama (tetapi boleh null), kolom tipe NOT NULL UNIQUE, , CONSTRAINT nama_konstrain UNIQUE (kolom), ...PRIMARY KEYSuatu kolom dinyatakan sebagai kunci utama dari suatu tabelOtomatis dianggap UNIQUE dan NOT NULL, kolom tipe NOT NULL PRIMARY KEY, ......, CONSTRAINT nama_konstrain PRYMARY KEY(kolom), ...FOREIGN KEYMenyatakan suatu kolom harus sesuai dengan kolom lain dari suatu tabel, kolom tipe REFERENCES tabel(kolom), , CONSTRAINT nama_k FOREIGN KEY(kolom) REFERENCES tabel(kolom), ...

  • Perintah Lainnya :ALTER TABLE nama_tabel()DROP TABLE nama_tabel

  • Contoh Membuat TabelCREATE TABLE dosen(nipvarchar(15) not null primary key,namavarchar(50) not null);CREATE TABLE siswa(nrpvarchar(15) not null primary key,namavarchar(50) not null,walivarchar(15) references dosen(nip));CREATE INDEX nama_siswa ON siswa(nama);

  • IndeksSuatu tabel khusus yang berisi kolom dengan data yang telah diurutkanKegunaanMempercepat pencarianPengujian data unikOtomatis dibuatkan saat suatu kolom dianggap sebagai PRIMARY KEY atau UNIQUEFormatCREATE INDEX namaI ON tabel (kolom1, );