O r O a c l e a c Oleh Ir.Hartono

dokumen-dokumen yang mirip
Mysql Mysq Oleh Ir.Hartono

SQL Server Oleh Ol Ir.Hartono

DBMS: SQL Server Transact SQL

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

SQL (STRUCTURED QUERY LANGUAGE)

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Basis Data. DDL & Aturan Referential

Pengenalan Structured Query Language

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

Macam - Macam Perintah Pada SQL

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

STRUCTURE QUERY LANGUAGE

Perangkat Lunak Pengembangan Web

Pertemuan III Oleh: Ilham Rais Arvianto, M.Pd


S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D M L SELECT INSERT UPDATE DELETE

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

Pertemuan 12 Pengenalan Structured Query Language

KURSUS ONLINE JASA WEBMASTERS

STRUCTURE QUERY LANGUAGE (SQL)


PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

Perkenalan SQL. Ada empat macam tipe database yaitu hirarki, jaringan, relasional, dan objek.

Konsep Sistem Informasi B. BAB 2 - SQL Overview

P10 Database SQL Server 2008

Arsitektur Basis Data Oracle

STRUCTURE QUERY LANGUAGE DDL & DML

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

Database Server Programming with SQL Server. Oleh Ir.Hartono

Contoh SQL Constraint

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

Sistem Basis Data 1. Pertemuan 5 dan 6 Aljabar Relasional dan SQL Rogayah, ST.,MMSI Untuk 3DB01 dan 3DB04

Komponen-Komponen SQL a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter.

MODUL 1 Pengenalan MySQL, DDL, DML

Modul 3. Oleh : Mohammad Sholikin. 1

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

PERANCANGAN FISIK BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Structured Query Language

TABEL. Tabel Halaman 25

Basis Data Spasial Modul 2

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

Program Studi: Manajemen Bisnis Telekomunikasi & Informatika Mata Kuliah: Data Management Oleh: Yudi Priyadi. (Structure of The Database Language)

BAHASA QUERY KOMERSIAL

Modul 3 : Query Penggabungan Tabel

Contoh SQL Constraint

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

Apa itu DDL & DML? Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu :

BAHASA QUERY KOMPLEKS

BAHASA QUERY KOMERSIAL

Pertemuan 10. Bahasa Query Terapan

MODUL VII DATABASE DAN MICROSOFT SQL SERVER 2000

SQL (Structure Query Language) Gentisya Tri Mardiani, S.Kom

PENGENALAN SINTAKS DASAR DALAM MySQL

Kontrak Kuliah. Dasar-dasar MySQL. Edi Sugiarto, S.Kom, M.Kom

Konsep Dasar. Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel

PRAKTIKUM SISTEM INFORMASI MANAJEMEN

SQL DASAR BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Modul 4 SQL Tujuan a. Mahasiswa dapat mengenal Sintak dasar SQL b. Mahasiswa dapat mengoperasikan Sintak dasar SQL. 1.2 Materi a. SQL b.

Intro : Structure Query Language [SQL]

RANGKUMAN PHP dan MYSQL

BAHASA QUERY KOMERSIAL

Statement DDL Create database drop database Create table drop table alter table

Transact-SQL (Trigger- Event, Store Procedure)

Praktikum Basis Data 14 Structure Query Language 2

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

Pada contoh dibawah ini adalah sebuah table Mahasiswa UNIROW tuban dengan bentuk sebagai berikut :

LAPORAN TUGAS BASIS DATA I

SQL (Structured Query Language)

Basis Data Relational

Database Management System. Program yang memungkinkan item-item dalam suatu database disusun, diolah dan diperbaharui

DATA DEFINITION LANGUAGE

Sistem Basis Data; Tutorial Konseptual Oleh : Yakub

Praktikum Basis Data (Database Server MySQL) Bekerja Dengan Tabel

BAB V. Basis Data Darmawan Satyananda 74

MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML)

PRAKTIKUM 5 SISTEM BASIS DATA JOIN

PRAKTIKUM SISTEM BASISDATA

IMPLEMENTASI CONSTRAINT UNTUK MENJAMIN KONSISTENSI DAN INTEGRITAS DATA DALAM DATABASE

P - 7 Pembahasan UTS PSIK V

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( )

SISTEM BASIS DATA Pertemuan 11 Structure Query Language DDL - DML

Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL: Contoh 1 Menampilkan banyaknya record dosen select count ( * )

RENCANA PEMBELAJARAN

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

Pemrograman Basis Data Berbasis Web

BAB II PEMBUATAN DAN MANAJEMEN TABLE

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

Tampilan pada Enterprise Manager

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

INTERNET PROGRAMMING DATABASE

Transkripsi:

O r a c l e Oleh Ir.Hartono

Konsep Database Data Informasi Database Sistem informasi Sistem Database Database Relasional DBMS RDBMS nilai yang memiliki suatu arti data yang berguna kumpulan data yang terorganisasi sinergi unsur-unsur pengelolaan database untuk menyediakan informasi sinergi unsur-unsur penyimpanan dan pengelolaan data model database yang tabel-tabelnya memiliki hubungan dengan definisi tertentu DataBase Management System adalah perangkat lunak untuk mengelola sistem database Relational DataBase Management System adalah DBMS untuk database realsional 2

Hirarki Data Nilai Dosen file database phrase Mahasiswa NIM Nama Tgl. Lahir 110011 Salma Hayek 1-Mar-1970 110012 Laetita Casta 21-Des-1974 110013 Arnold Sgarbuger 5-Jun-1960 Nama field word field karakter 5 Database 4 File Table 3 Phrase (kalimat) Record (Row) 2 Word (kata) Item Field (Column) 1 Character (huruf) Character 3

Objek-objek Database Oracle Table Constraint Rule Default View Stored Procedure Trigger User Defined Data Types 4

Kelompok Perintah-Perintah SQL Data Definition Language (DDL) CREATE ALTER DROP Data Manipulation Language (DML) SELECT INSERT UPDATE DELETE Data Control Language (DCL) GRANT DENY REVOKE 5

Informasi tentang Database Perintah untuk mendapatkan informasi tentang database yang ada adalah : sp_helpdb nama_database Informasi yang dapat diperoleh adalah : Nama database Ukuran database Pemilik Tanggal pembuatan Status File-file data logical & physical Filegroup Ukuran file Ukuran maksimum Pertumbuhan Pemakaian 6

Tabel Tabel adalah objek untuk menyimpan data yang terdiri dari row (record) dan column (field) Sintaks untuk membuat tabel : CREATE TABLE nama_tabel ( nama_kolom 1 tipe_data, nama_kolom n tipe_data ) 7

Tipe Data (1/2) BigInt -2^63 (-9.223.372.036.854.775.808) s/d 2^63-1 (9.223.372.036.854.775.807) Bilangan Bulat Int -2^31 (-2,147,483,648) s/d 2^31-1 (2,147,483,647). SmallInt 2^15 (-32,768) s/d 2^15-1 (32,767). TinyInt 0 s/d 255 Bilangan Pasti Bilangan Biner Bit 0 atau 1 Bilangan Approksimasi Bilangan Desimal Uang Bilangan Pecahan Decimal -10^38 +1 s/d 10^38 1 Numeric idem Money -2^63 (-922,337,203,685,477.5808) s/d 2^63-1 (+922,337,203,685,477.5807) dgn akurasi 1/1000 SmallMoney -214,748.3648 s/d +214,748.3647 Real -214,748.3648 s/d +214,748.3647 Float -1.79E + 308 s/d 1.79E + 308. Waktu Karakter / String 8 Non Unicode Unicode SmallDateTime DateTime Char VarChar Text NChar NVarChar NText January 1, 1900 s/d June 6, 2079 dg akurasi 1 menit January 1, 1753 s/d December 31, 9999 dengan akurasi 3/100 detik (3.33 millidetik) maximum length of 8,000 characters maximum length of 8,000 characters maximum length of 2^31-1 (2,147,483,647) characters maximum length of 4,000 characters maximum length of 4,000 characters maximum length of 2^30-1 (1,073,741,823) characters.

Tipe Data (2/2) Biner Tipe Lain Binary VarBinary Image cursor sql_variant table timestamp uniqueidentifier maximum length of 8,000 bytes maximum length of 8,000 bytes 2^31-1 (2,147,483,647) bytes 9

Perbedaan Char dan Varchar Char memiliki panjang tetap Varchar memiliki panjang sesuai panjang datanya Char(5) b o b b o b disimpan VarChar(5) b o b b o b Catatan : direkomendasikan menggunakan tipe data Char untuk kolom Primary Key dari pada Varchar 10

Contoh CREATE TABLE pelanggan ( kode_pelangan CHAR(5), nama_pelanggan VARCHAR(25), alamat VARCHAR(50), telepon VARCHAR(15), umur TINYINT, tgl_lahir SMALLDATETIME ) 11

Informasi tentang Tabel Perintah untuk mendapatkan informasi tentang database yang ada adalah : sp_help nama_tabel Informasi yang dapat diperoleh adalah : pemilik tipe tabel tgl. dibuat struktur tabel kolom identity rowguidcol filegroup index constraint referensi FK 12

Modifikasi Definisi Tabel --menambah kolom ALTER TABLE pelanggan ADD hobi VARCHAR(250) --mengubah spec kolom ALTER TABLE pelanggan ALTER COLUMN hobi VARCHAR(100) --menghapus kolom ALTER TABLE pelanggan DROP COLUMN hobi --menghapus tabel DROP TABLE pelanggan --mengubah nama kolom SP_RENAME pelanggan.alamat, domisili, COLUMN 13

Input Data Sintaks perintah penginputan data ke tabel : INSERT [INTO] nama_tabel [( nama_kolom 1 [,, nama_kolom n ] )] VALUES ( nilai 1 [,, nilai n ] ) Data bertipe karakter (char, varchar, text) dan datetime (smalldatetime, datetime) harus diapit dengan tanda petik satu. Format standard yang digunakan untuk datetime adalah 31 May 2005 atau 05/31/2005. 14

Contoh INSERT INTO pelanggan VALUES( P0001, Mitra Budiaji Chan, Kemanggisan Ilir, 08128149909, 20, 28 Nov 2005 ) Memasukkan sebuah record ke dalam table Pelanggan dimana semua column diisi. INSERT INTO pelanggan (kode_pelanggan, nama_pelanggan) VALUES( P0002, Julyana Anggreini ) Memasukkan sebuah record ke dalam table Pelanggan dimana hanya column Kode_Pelanggan dan Nama_Pelanggan yang diisi. NOTE: selain column yang diisi oleh perintah INSERT, akan berisi data NULL. 15

Contoh INSERT INTO pelanggan VALUES(NULL, NULL, NULL, NULL, NULL, NULL) Memasukkan sebuah record ke dalam table Pelanggan dimana semua column diisi dengan data NULL INSERT INTO pelanggan VALUES(,,,,, ) Memasukkan sebuah record ke dalam table Pelanggan dimana semua column diisi dengan EMPTY STRING. Column bertipe karakter akan berisi karakter kosong. Column bertipe bilangan akan berisi nilai NOL. Column bertipe tanggal akan berisi tanggal awal, yaitu: 1 Jan 1753 (untuk datetime) dan 1 Jan 1900 (untuk smalldatetime) 16

Update Data UPDATE pelanggan SET kode_pelanggan = P0003 WHERE kode_pelanggan = mengubah data pada column Kode_Pelanggan menjadi P0003 bila column Kode_Pelanggan berisi karakter kosong. Perintah tersebut untuk UPDATE pelanggan SET Nama_pelanggan = Hengky WHERE kode_pelanggan IS NULL mengubah data pada column Nama_Pelanggan menjadi Hengky bila column Kode_Pelanggan berisi data NULL. UPDATE pelanggan SET umur = 21 mengubah SEMUA data pada column Umur menjadi 21. NOTE: bila perintah UPDATE tidak memiliki WHERE clause, maka semua record akan diubah sesuai dengan nilai baru pada SET. 17

Delete Data DELETE FROM pelanggan WHERE kode_pelanggan IS NULL menghapus record bila column Kode_Pelanggan berisi data NULL. DELETE FROM pelanggan WHERE kode_pelanggan = P0003 AND nama_pelanggan = menghapus record bila column Kode_Pelanggan berisi data P0003 dan column Nama_Pelanggan berisi karakter kosong. DELETE FROM pelanggan menghapus SEMUA record dari table Pelanggan. NOTE: bila perintah DELETE tidak memiliki WHERE clause, maka semua record akan di-hapus. 18

Select Data SELECT * FROM customers Menampilkan semua data & semua column dari table Customers. SELECT contactname, contacttitle FROM customers Menampilkan column ContactName dan ContactTitle dari table Customers. Tanda koma setelah select menunjukkan pergantian column. SELECT contactname AS Name, contacttitle AS Title FROM customers Menampilkan column ContactName dengan judul Name dan column ContactTitle dengan judul Title dari table Customers. SELECT Name = contactname, Title = contacttitle FROM customers SELECT contactname AS Contact Name, contacttitle AS [Contact Title] FROM customers Menampilkan column ContactName dengan judul Contact Name dan column ContactTitle dengan judul Contact Title dari table Customers. Jadi, bila kita ingin menggabungkan dua kata, dapat menggunakan tanda atau [ ]. 19

Filtering SELECT TOP 10 * FROM customers Menampilkan hanya 10 record teratas dari table Customers. SELECT TOP 30 PERCENT * FROM customers Menampilkan hanya 30 percent record teratas dari table Customers. SELECT contacttitle FROM customers Menampilkan hanya column ContactTitle dari table Customers. Data yang ditampilkan akan berulang karena ada beberapa record dimana column ContactTitle tersebut berisikan data yang sama. Bila hanya ingin ditampilkan data yang berbeda saja, maka dapat digunakan keyword DISTINCT. SELECT DISTINCT contacttitle FROM customers menampilkan column ContactTitle yang berisikan data berbeda dari table Customers 20

Filtering : Where SELECT * FROM customers WHERE region IS NOT NULL Menampilkan record dari table Customers dimana column Region tidak berisikan NULL. SELECT * FROM customers WHERE region <> Menampilkan record dari table Customers dimana column Region tidak berisikan empty string. SELECT * FROM customers WHERE country = Germany Menampilkan record dari table Customers yang memenuhi kondisi tersebut, yaitu: colum country berisikan Germany. SELECT * FROM products WHERE unitprice > 10 Menampilkan record dari table Products dimana column UnitPrice berisikan data lebih besar dari 10. 21

Logical Operators SELECT * FROM products WHERE unitprice > 10 AND UNITSINSTOCK < 10 Menampilkan record dari table Products dimana column UnitPrice berisikan data lebih besar dari 10 dan column UnitsInPrice kecil dari 10. NOTE: Operator AND hanya bersifat BENAR bila kedua syarat/kondisi yang ada bernilai BENAR. SELECT * FROM products WHERE unitprice > 10 OR unitsinstock < 10 Menampilkan record dari table Products dimana column UnitPrice berisikan data lebih besar dari 10 atau column UnitsInPrice kecil dari 10. NOTE: Operator OR hanya bersifat BENAR bila salah satu atau kedua syarat/kondisi bersifat BENAR. 22

Operator BETWEEN Operator BETWEEN dapat digunakan untuk membuat kondisi/syarat yang bersifat range atau suatu jangkauan. SELECT * FROM products WHERE unitprice BETWEEN 10 AND 20 Menampilkan record dari table Products dimana column UnitPrice bernilai antara 10 sampai 20. Perintah sinonim : SELECT * FROM products WHERE unitprice >= 10 AND unitprice <= 20 SELECT * FROM products WHERE unitprice NOT BETWEEN 10 AND 20 Menampilkan record dari table Products dimana column UnitPrice tidak bernilai antara 10 sampai 20. Perintah sinonim : SELECT * FROM products WHERE unitprice < 10 OR unitprice > 20 23

Operator LIKE Karakter wildcard yang dapat digunakan adalah: % : sembarang karakter, banyaknya minimal 0 _ : sembarang karakter, banyaknya harus 1 [ ] : sembarang karakter di dalam tanda kurung tersebut [^ ] : sembarang karakter selain yang terdapat dalam tanda kurung tersebut SELECT * FROM customers WHERE custname LIKE MAR%S% Menampilkan record dari table Customers dimana column CustName berisi data yang sesuai dengan pola Mar%s% SELECT * FROM customers WHERE custname LIKE A% Menampilkan record dari table Customers dimana column CustName berisi data yang sesuai dengan pola a%, yaitu: karakter ketiga adalah huruf a. SELECT * FROM customers WHERE custname LIKE [STUV]% Menampilkan record dari table Customers dimana column CustName berisi data yang sesuai dengan pola [STUV]%, yaitu: karakter pertama adalah S, T, U, atau V 24

Operator Perbandingan (1/3) Operator Arti Contoh = Sama dengan SELECT fname, lname FROM employees WHERE lname = 'Smith' <> atau!= Tidak sama dengan SELECT fname, lname FROM employees WHERE status <> 'Active' > Lebih dari SELECT fname, lname FROM employees WHERE hire_date > '12/31/90' < kurang dari SELECT fname, lname FROM employees WHERE job_lvl < 100 >= atau!< Lebih atau sama dengan SELECT au_lname FROM authors WHERE au_lname >= 'T' <= atau!> Kurang atau sama dengan SELECT fname, lname FROM employees WHERE hire_date <= '01/01/95' 25

Operator Perbandingan (2/3) Operator Arti Contoh BETWEEN expr1 AND expr2 jangkauan SELECT fname, lname FROM employees WHERE hire_date BETWEEN '12/31/90' AND '12/31/91' IS [NOT] NULL Apakah berisi NULL SELECT fname, lname FROM employees WHERE photo_on_file IS NULL [NOT] LIKE Apakah sstring cocok dengan pola SELECT fname, lname FROM employees WHERE lname LIKE ('MAC%') 26

Operator Perbandingan (3/3) Operator Arti Contoh expr1 [NOT] IN (val1, val2,...) atau expr1 [NOT] IN (subquery) Apakah ada di dalam daftar SELECT fname, lname FROM employees WHERE sales_region IN ('SW', 'SE') SELECT product_name FROM products WHERE supplier_id IN (SELECT supplier_id FROM supplier WHERE (country = 'Sweden')) ANY (SOME) Hasil subquery sesuai SELECT au_lname, au_fname FROM authors where city dengan kriteria <> any (SELECT city FROM publishers) ALL Apakah semua hasil subquery sesuai dengan kriteria SELECT title FROM titles where advance > all (SELECT advance FROM publishers,titles where titles.pub_id = publishers.pub_id AND pub_name = 'Alogdata Infosystems') [NOT] EXISTS Apakah subquery mendapatkan data SELECT product_name FROM products WHERE EXISTS (SELECT * FROM orders, products WHERE orders.prod_id = products.prod_id) 27

Fungsi String SELECT * FROM customers WHERE LEFT(custname,2) = MI Menampilkan record dari table Customers dimana dua karakter paling kiri dari column CustName adalah Mi SELECT contacttitle, RIGHT(contacttitle,3) AS KANAN FROM customers Menampilkan column ContactTitle dan tiga karakter paling kanan column ContactTtile dari table Customers. SELECT * FROM customers WHERE SUBSTRING(custname,2,3) = sam SELECT * FROM customers WHERE LEN(custname) = 10 Menampilkan record dari table Customers dimana column CustName berisikan 10 karakter 28

Fungsi Waktu SELECT GETDATE() Menampilkan tanggal yang tersimpan pada Oracle dengan format datetime. SELECT * FROM employees WHERE DATEDIFF(YEAR, birthdate, GETDATE()) > 50) Menampilkan record dari table Employees dimana selisih column BirthDate dan sekarang lebih besar dari 50 tahun. SELECT LASTNAME, DAY(birthdate), MONTH(birthdate) FROM employees Menampilkan column LastName, tanggal dari column BirthDate dan bulan dari column BirthDate 29

Pengurutan SELECT * FROM customers ORDER BY contactname Menampilkan record table Customers diurutkan berdasarkan column ContactName SELECT * FROM customers ORDER BY contactname DESC Menampilkan record table Customers diurutkan berdasarkan column ContactName secara menurun 30

Fungsi Agregat SELECT MAX(contactname), MIN(contactname) FROM customers Menampilkan nilai maksimum dan minimum column ContactName dari table Customers. NOTE: Fungsi Max() dan Min() berlaku untuk column bertipe apa saja. SELECT SUM(unitinstock), AVG(unitinstock) FROM products Menampilkan total dan rata-rata column UnitInStock dari table Products. NOTE: Fungsi Sum() dan Avg() hanya berlaku untuk column bertipe bilangan, seperti: integer, decimal, dan money. SELECT COUNT(*) FROM customers Menampilkan jumlah record dari table Customers SELECT COUNT(region) FROM customers Menampilkan jumlah data column REGION dari table Customers. NOTE: Data NULL tidak dihitung 31

Fungsi IsNull() IsNull adalah fungsi untuk mengecek apakah tidak ada data (NULL) atau ada, kemudian jika tidak ada data maka pada hasil query ditampilkan data penggantinya Contoh : SELECT title, type, price FROM titles SELECT title, type, ISNULL(price,0) FROM titles 32

Manfaat IsNull() Soal : buatlah rata-rata harga (price) dari tabel titles pada database Pubs Jawaban : SELECT AVG(price) FROM titles Bandingkan dengan hasil query di bawah ini : SELECT AVG(price), AVG(ISNULL(price,0)) FROM titles SELECT COUNT(price), COUNT(ISNULL(price,0)) FROM titles SELECT SUM(price), SUM(ISNULL(price,0)) FROM titles 33

Join Join adalah operasi untuk menampilkan data dari dua atau lebih database yang memiliki relationship Jenis Join Inner join Outer join Left join Right join Full join Cross join Self join 34

Join Tabel_A Tabel_B NIP Nama NIP Gaji 001 Ali 002 Budi 003 Buce 004 Cici 005 Dedi 006 Fifi 001 1000000 002 2000000 003 3000000 004 4000000 007 5000000 008 6000000 35

Inner Join Menampilkan data dari tabel-tabel yang data dari satu tabel dengan tabel lainnya memiliki relasi SELECT tabel_a.nip, tabel_a.nama, tabel_b.gaji FROM tabel_a INNER JOIN tabel_b ON tabel_a.nip = tabel_b.nip 36

Left Join Menampilkan semua data pada semua tabel sebelah kiri Data pada tabel kanan yang tidak memiliki relasi dengan data pada tabel kiri akan ditampilkan dengan NULL SELECT tabel_a.nip, tabel_a.nama, tabel_b.gaji FROM tabel_a LEFT JOIN tabel_b ON tabel_a.nip = tabel_b.nip 37

Right Join Menampilkan semua data pada semua tabel sebelah kanan Data pada tabel kiri yang tidak memiliki relasi dengan data pada tabel kanan akan ditampilkan dengan NULL SELECT tabel_a.nip, tabel_a.nama, tabel_b.gaji FROM tabel_a RIGHT JOIN tabel_b ON tabel_a.nip = tabel_b.nip 38

Full Join Menampilkan semua data pada semua tabel Data yang tidak memiliki relasi akan ditampilkan dengan NULL SELECT tabel_a.nip, tabel_a.nama, tabel_b.gaji FROM tabel_a FULL JOIN tabel_b ON tabel_a.nip = tabel_b.nip 39

Cross Join Menghasilkan cartesian product dan jarang dipergunakan Setiap data pada semua tabel akan dipetakan satu per satu SELECT tabel_a.nip, tabel_a.nama, tabel_b.gaji FROM tabel_a CROSS JOIN tabel_b 40

Tabel Pegawai Self NIP Nama JoinBos 001 Joni 001 002 Budi 001 003 Tuti 001 004 Amir 002 SELECT a.nip, a.nama, b.nama AS Nama Bos FROM pegawai a INNER JOIN pegawai b ON a.bos = b.nip 41 Hasil query NIP Nama Nama Bos 001 Joni Joni 002 Budi Joni 003 Tuti Joni 004 Amir Budi

Latihan Join #1 Gunakan database Northwind untuk menampilkan data pemesanan barang yang terdiri dari OrderID, ContactName, nama pegawai, dan OrderDate Petunjuk : Tabel yang dipergunakan : Orders Customers Employees 42

Latihan Join #2 Tampilkan data pemesanan yang dihasilkan pada Latihan Join #1 yang khusus memesan produk Singaporean Hokkien Fried Mee Petunjuk : Tabel yang dipergunakan : Orders Customers Employees Order Details Products 43

Constraint Constraint merupakan objek yang dipergunakan untuk menjaga integritas data Jenis constraint : Primary key Foreign key Unique Default Check 44

Integritas Data Entity integrity (table level) : Identity column Unique Domain integrity (column level) Default Check Referential integrity (relational level) : Primary key Foreign key 45

Primary Key Primary Key adalah satu atau gabungan beberapa kolom yang datanya unik Dalam satu table maksimal ada satu primary key Kolom yang menjadi PK harus NOT NULL Contoh pembuatan tabel dengan kolom dijadikan primary key : CREATE TABLE pelanggan( kdpelanggan CHAR(10) CONSTRAINT pk_kdpelanggan PRIMARY KEY, nmpelanggan VARCHAR(25), nomor_ktp VARCHAR(20), kota VARCHAR(15) ) 46

Menambah dan Menghapus PK ALTER TABLE pelanggan ADD CONSTRAINT pk_kdpelanggan PRIMARY KEY (kdpelanggan) Menambah constraint PK ALTER TABLE pelanggan DROP CONSTRAINT pk_kdpelanggan NOTE: sebuah Primary Key hanya dapat dihapus jika tidak ada Foreign Key yang mengacu pada Primary Key tersebut sp_helpconstraint nama_tabel Melihat informasi constraint pada suatu tabel 47

Foreign Key Foreign Key adalah satu atau gabungan beberapa kolom yang datanya ada di dalam dalam kolom primary key pada tabel lain Foreign key datanya tidak unik Foreign key menghubungkan tabel anak ke tabel induk Tipe data antara PK dan FK harus sama CREATE TABLE transaksi( kdtransaksi CHAR(6), kdpelanggan CHAR(10) CONSTRAINT fk_trplg FOREIGN KEY REFERENCES pelanggan(kdpelanggan), tgltransaksi DATETIME ) 48

Menambah dan Menghapus FK -- menambah foreign key ALTER TABLE transaksi ADD CONSTRAINT fk_trans_pelanggan FOREIGN KEY (kdpelanggan) REFERENCES pelanggan(kdpelanggan) -- menghapus foreign key ALTER TABLE transaksi DROP CONSTRAINT fk_trans_pelanggan 49

Unique Unique digunakan agar tidak ada data yang sama (unik) pada kolom-kolom yang bukan Primary Key CREATE TABLE pelanggan( kdpelanggan CHAR(10) CONSTRAINT pk_kdpelanggan PRIMARY KEY, nmpelanggan VARCHAR(25), nomor_ktp VARCHAR(20) UNIQUE, kota VARCHAR(15) ) 50

Check Check digunakan untuk memvalidasi data yang diinput pada tabel Satu check dapat digunakan beberapa kolom, dapat juga satu kolom memiliki lebih dari satu Check CREATE TABLE pegawai ( kdpegawai CHAR(10), nmpegawai VARHAR(25), kota VARCHAR(15) CONSTRAINT ck_kota CHECK (LEN(kota)>= 5), tgllahir SMALLDATETIME ) 51

Default Default digunakan jika ingin memberikan suatu nilai tertentu jika pada suatu kolom datanya tidak diisi CREATE TABLE pegawai ( kdpegawai CHAR(10), nmpegawai VARHAR(25), kota VARCHAR(15) CONSTRAINT df_kota DEFAULT Jakarta ) 52

Menambah dan Menghapus Default -- MENAMBAH CONSTRAINT ALTER TABLE pegawai ADD CONSTRAINT df_kota DEFAULT JAKARTA FOR kota -- MENGHAPUS CONSTRAINT ALTER TABLE pegawai DROP CONSTRAINT df_kota 53