Mysql Mysq Oleh Ir.Hartono

dokumen-dokumen yang mirip
O r O a c l e a c Oleh Ir.Hartono

SQL Server Oleh Ol Ir.Hartono

DBMS: SQL Server Transact SQL

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

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

SQL (STRUCTURED QUERY LANGUAGE)

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

Macam - Macam Perintah Pada SQL

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

Perangkat Lunak Pengembangan Web

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

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

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


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

STRUCTURE QUERY LANGUAGE (SQL)

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

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


SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

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

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

Pertemuan III Oleh: Ilham Rais Arvianto, M.Pd

Contoh SQL Constraint

Arsitektur Basis Data Oracle

Konsep Sistem Informasi B. BAB 2 - SQL Overview

STRUCTURE QUERY LANGUAGE

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

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

STRUCTURE QUERY LANGUAGE DDL & DML

Modul 3 : Query Penggabungan Tabel

Pengenalan Structured Query Language

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

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

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

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

Basis Data. DDL & Aturan Referential

BAHASA QUERY KOMERSIAL

BAHASA QUERY KOMPLEKS

BAHASA QUERY KOMERSIAL

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

P - 7 Pembahasan UTS PSIK V

LAPORAN TUGAS BASIS DATA I

Praktikum Basis Data (Database Server MySQL) Bekerja Dengan Tabel

BAHASA QUERY KOMERSIAL

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

Basis Data Spasial Modul 2

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

Pemrograman Web Lanjut 2017

Pertemuan 12 Pengenalan Structured Query Language

MODUL 1 Pengenalan MySQL, DDL, DML

Pertemuan 10. Bahasa Query Terapan

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

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

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

Modul 3. Oleh : Mohammad Sholikin. 1

Praktikum Basis Data 14 Structure Query Language 2

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

Database Systems: Lab. Actvity 1: Database Design. Merancang Database. Merancang Database. Tipe Tabel MySQL.

KURSUS ONLINE JASA WEBMASTERS

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

PRAKTIKUM 5 SISTEM BASIS DATA JOIN

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

TABLE JOIN SQL SERVER 2005

RENCANA PEMBELAJARAN

Sistem Basis Data; Tutorial Konseptual Oleh : Yakub

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

Data Manipulation Language (DML)

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

Database Server Programming with SQL Server. Oleh Ir.Hartono

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

Rencana Pelaksanaan Pembelajaran

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

Contoh SQL Constraint

Syntax Syntax SQL. Untuk lebih jelasnya dapat dilihat sebagai berikut : 1. DDL (Definition Data Language) a. CREATE

SQL. Brigida Arie Minartiningtyas, M.Kom

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

BAB V. Basis Data Darmawan Satyananda 74

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

S Q L. Sejarah SQL. Penulisan Perintah SQL. SQL (Structure Query Language)

SISTEM BASIS DATA Pertemuan 11 Structure Query Language DDL - DML

Untuk mengakses MySQL dengan mode text dari Console (Command Prompt = Microsoft Windows), dapat dilakukan dengan cara : 1.

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

Intro : Structure Query Language [SQL]

Basis Data I. Pertemuan Ke-4 & ke-5 (Model Relasional Part 1) Noor Ifada.

Bab 5 Data Control Language dan Teknik Normalisasi

SQL (Structured Query Language)

MODUL 4. Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

M0564-Pengantar Sistem Basisdata 12/ 1

MODUL 5 INTERNET PROGRAMMING : MySQL

BAB II PEMBUATAN DAN MANAJEMEN TABLE

DAFTAR ISI. DAFTAR ISI... 1 PRAKATA Pengenalan dan Lingkungan Kerja MySQL Tujuan... 4 Dasar Teori... 4 Praktik... 5

DATA DEFINITION LANGUAGE

Transact SQL ; DDL 1 st

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

INTERNET PROGRAMMING DATABASE

SQL. Pemrograman Web II. Ganjil

Mahasiswa mengetahui & memahami mengenai DML, DCL di SQL. (Isi_Field_1, Isi_Field_2,, Isi_Field_N) ;

Transkripsi:

Mysql 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

Tipe-file File (1/2) File Induk (master file) File Induk Acuan (reference master file) file induk yang recordnya relatif statis, jarang berubah nilainya. Misalnya file daftar gaji, file mata pelajaran. File Induk Dinamik (dynamic master file) file induk yang nilai dari record-recordnya sering berubah atau sering dimutakhirkan (update) sebagai hasil dari suatu transaksi. Misalnya file induk data barang, yang setiap saat harus di up-date bila terjadi transaksi. File Transaksi (transaction file) File ini bisa disebut file input; digunakan untuk merekam data hasil dari transaksi yang terjadi. Misalnya file penjualan yang berisi data hasil transaksi penjualan. 4

Tipe-file File (2/2) File Laporan (report file) File ini bisa disebut output file, yaitu file yang berisi informasi yang akan ditampilkan. File Sejarah (history file) File ini bisa disebut file arsip (archival file), merupakan file yang berisi data masa lalu yang sudah tidak aktif lagi, tetapi masih disimpan sebagai arsip. File Pelindung (backup file) File ini merupakan salinan dari file-file yang masih aktif di dalam database pada suatu saat tertentu. File ini digunakan sebagai pelindung atau cadangan bila filedatabase yang aktif mengalami kerusakan atau hilang. 5

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 6

Membuat Database Perintah SQL untuk membuat database adalah CREATE Sintaks : CREATE DATABASE nama_database ( Spesifikasi_kolom 1,, ) Spesifikasi_kolom n 7

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 ) 8

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 9

Contoh CREATE TABLE pelanggan ( kode_pelangan CHAR(5), nama_pelanggan VARCHAR(25), alamat VARCHAR(50), telepon VARCHAR(15), umur INT(2), tgl_lahir DATE ) 10

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 11

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 2015 atau 05/31/2015. 12

Contoh INSERT INTO pelanggan VALUES( P0001, Budiaji Chan, 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. 13

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) 14

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. 15

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. 16

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 [ ]. 17

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 18

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. 19

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. 20

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 21

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 22

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' 23

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%') 24

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) 25

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 26

Fungsi Waktu SELECT GETDATE() Menampilkan tanggal yang tersimpan pada SQL Server 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 27

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 28

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 29

GROUP BY SELECT country FROM customers GROUP BY country Menampilkan column Country dengan pengelompokkan berdasarkan column Country SELECT country, COUNT(*) FROM customers GROUP BY country Menampilkan column Country dan jumlah record dengan pengelompokkan berdasarkan column Country SELECT country, MAX(contactname) FROM customers GROUP BY country ORDER BY MAX(contactname) Menampilkan column Country dan maksimum ContactName dengan pengelompokkan berdasarkan column Country yang diurutkan berdasarkan ContactName. 30

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 31

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 32

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 33

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 34

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 35

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 36

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 37

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 38

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 39

Self Join Tabel Pegawai NIP Nama Bos 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 40 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 41

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 42

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

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

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) ) 45

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 46

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 ) 47