You are on page 1of 73

PENGANTAR SQL

PRE TEST:
a. Apa yang dimaksud dengan Basis Data?
b. Sebutkan contoh basis data yang diketahui!
c. Sebutkan bagian-bagian dalam basis data!
d. Apa yang dimaksud dengan Sistem Basis Data?
e. Apa yang dimaksud dengan Perangkat Lunak Manajemen Basis Data?

TIU:
a. Mahasiswa mampu memahami konsep dasar SQL dalam membangun Database.
b. Mahasiswa mampu mengenali dan membedakan jenis perintah SQL.
c. Mahasiswa mengerti serta mampu menggunakan fitur-fitur umum SQL server.

Apakah SQL?
SQL adalah singkatan dari Structured Query Language yang merupakan sebuah bahasa yang
digunakan untuk mengakses dan memanipulasi data dalam basis data relasional. Saat ini hampir semua
server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
SQL merupakan standar ANSI (American National Standards Institute) yang dimulai pada tahun
1986. Standar ini sering disebut dengan SQL86. Standar tersebut direvisi pada tahun 1989 dan pada
tahun 1992 direvisi kembali yang dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu
SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92.

Apa saja yang dapat kita lakukan dengan SQL?


 Membuat database baru.
 Membuat tabel baru di database.
 Mengeksekusi query terhadap database.
 Mengambil atau menampilkan data dari database.
 Memasukkan atau menambahkan record baru ke dalam database.
 Memperbaharui record dalam database.
 Menghapus record dari database.
 Membuat stored procedure yang tersimpan dalam database.
 Membuat view dalam database.
 Mengatur hak akses pada tabel, stored procedure, dan view.
 Dll

Database, Tabel, dan Field


Apa yang dimaksud dengan Database? Database tidak lebih dari sebuah gudang kosong, tidak
menawarkan fungsionalitas nyata sama sekali. Tetapi database memberikan ruang virtual untuk
menyimpan data. Data disimpan dalam objek database yang disebut tabel. Setiap tabel diidentifikasikan
dengan sebuah nama. Walaupun tidak ada peraturan khusus yang menetapkan pembuatan nama untuk
sebuah tabel, namun pada umumnya nama tabel disesuaikan dengan fungsi dari tabel tersebut. Misalnya
tabel “Pelanggan” digunakan untuk menyimpan data-data pelanggan, tabel “Pemesanan” digunakan
untuk menyimpan data transaksi pemesanan.
Dalam sebuah database tidak diperkenankan untuk membuat dua buah tabel dengan nama yang
sama. Seperti yang telah dijelaskan sebelumnya, nama tabel adalah pengenal dari tabel tersebut,
sehingga secara logika, kesamaan nama tabel dalam sebuah database dapat menyebabkan ambiguitas
data pada database tersebut.
Sebuah database dapat menampung ratusan tabel, dimana pada setiap tabelnya dapat terdiri atas
lebih dari seribu field/column. Field menandakan pengenal kolom dalam sebuah tabel dimana secara
umum fungsinya adalah untuk menampilkan gambaran atau penjelasan dari tabel tersebut. Field
berfungsi layaknya atribut atau properti yang menegaskan fungsi dari sebuah objek secara lebih spesifik.
Misalnya objek “Pelanggan” akan memiliki atribut nama, alamat, nomor identitas, nomor telepon, dan
sebagainya. Dalam sebuah tabel, tidak diperkenankan untuk membuat beberapa field dengan nama yang
sama. Karena secara fungsionalitas, nama field yang sama dalam sebuah tabel dapat menyebabkan
ambiguitas dan redudansi data, dan hal tersebut harus dihindari.
Sebuah field dapat menampung informasi-informasi yang dibutuhkan untuk mendeklarasikan
tabel secara spesifik, informasi tersebut diantaranya adalah: nama field, tipe data, lebar data, key
constraint, dan null constraint. Dengan memberikan nilai pada informasi-informasi tersebut, kita telah
membentuk suatu dasar yang kuat terhadap tabel yang akan membangun database secara keseluruhan.
Berikut adalah contoh struktur dari suatu tabel, yaitu tabel “Categories”:
Gambar 1.1 Contoh struktur tabel

Syntax SQL
Syntax dapat berarti studi tentang aturan linguistik dan pola. Setiap bahasa pemrograman,
termasuk SQL, harus mengikuti seperangkat unik pedoman. Pedoman tersebut meliputi penggunaan
tanda baca, spasi, operator matematika, klausa, serta karakter khusus yang memiliki arti khusus bila
digunakan dalam perintah SQL dan pernyataan query. Pedoman inilah yang menjadi dasar utama dalam
penulisan syntax.
Salah satu pedoman dalam penulisan syntax SQL adalah tidak adanya “case sensitive”, artinya
penulisan dengan syntax dengan menggunakan upper case maupun lower case akan menghasilkan
perintah yang sama.
Contohnya:

USE NORTHWIND; dengan use Northwind; akan memiliki arti yang sama

Penggunaan tanda semicolon (;) diakhir penulisan syntax juga tidak mutlak diperlukan, karena
pada beberapa DBMS tertentu, tanda semicolon dapat tidak dituliskan atau bersifat opsional.

SQL menyediakan beberapa jenis perintah yang dapat digunakan untuk mengolah database,
diantaranya adalah: Data Definition Language (DDL), Data Manipulation Language (DML), dan Data
Control Language (DCL).
DDL berisi sekumpulan perintah yang dapat digunakan untuk mendefinisikan, mengubah, serta
menghapus database dan objek-objek yang diperlukan dalam database, 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 suatu
objek. DDL dapat dikatakan sebagai sebuah perintah SQL yang berhubungan dengan pendefinisian dan
pembangunan struktur dari suatu database.
DML berisi sekumpulan perintah yang berguna untuk melakukan modifikasi dan pengambilan data
pada suatu database. Perintah modifikasi data diantaranya adalah untuk penambahan (insert),
pembaruan (update) dan penghapusan (delete).
DCL adalah bagian inti dari SQL yang memiliki kemampuan untuk mengatur hak akses terhadap
sebuah database. Perintah-perintah yang termasuk dalam DCL diantaranya adalah:
 Commit; Merupakan perintah yang digunakan untuk memindahkan transaksi dari memory
pemrosesan ke database atau menyimpan secara permanen perubahan-perubahan kedalam
database.
 Rollback; Merupakan perintah yang digunakan untuk membatalkan transaksi yang belum di commit
atau membatalkan perubahan-perubahan terakhir dari perintah commit/rollback terakhir.
 Grant; Merupakan perintah yang digunakan untuk memberi hak akses bagi seorang user terhadap
suatu tabel atau view.
 Revoke; Merupakan perintah yang digunakan untuk menghapus hak akses bagi seorang user
terhadap suatu tabel atau view.

Catatan:
Perintah DCL merupakan perintah yang dikhususkan bagi user dengan akses sebagai Database
Administrator, sehingga tidak semua user dapat menggunakan perintah ini.

PERINTAH-PERINTAH SQL

Pada Bab ini akan dijelaskan tentang perintah-perintah umum yang digunakan untuk mendefinisikan
serta memanipulasi data dalam suatu database. Perintah-perintah tersebut tergabung dalam perintah
Data Definition Language (DDL) dan Data Manipulation Language (DML).
Perintah-perintah DDL (Data Definition Language)
SQL CREATE DATABASE
Pembuatan database dapat dilakukan dengan menggunakan dua cara. Yaitu dengan menggunakan
menu yang ada pada SQL Server Management Studio dan menggunakan syntax Create database.
a. Menggunakan Menu SQL Server Management Studio.
Setelah membuka SQL Server Management Studio, cukup mengklik kanan pada folder Database
dari Object Explorer, kemudian pilih pada menu New Database.

Gambar 2.1 Menu New Database

Kemudian akan muncul sebuah window baru dimana Anda dapat mengisi sebuah kolom untuk
membuat nama dari database yang akan Anda buat. Misalnya pada gambar berikut Anda akan
membuat database dengan nama “MyDatabase”.

Gambar 2.2 Membuat Nama Database

Setelah mengisi kolom nama tersebut, kemudian dilanjutkan dengan menekan tombol “OK” untuk
melanjutkan membuat database yang Anda inginkan. Apabila sudah berhasil, maka database yang
baru Anda buat akan terlihat dalam Folder Database yang ada pada Object Explorer.

b. Menggunakan Syntax Create Database.


Untuk menjalankan perintah Create Database, Anda harus membuka window New Query terlebih
dahulu.

Gambar 2.3 Membuka Window New Query

Setelah window New Query terbuka, Anda dapat mengetikkan syntax Create Database
didalamnya. Format syntax Create Database adalah sebagai berikut:
CREATE DATABASE database_name

Jadi untuk membuat database dengan nama “MyDatabase”, Anda harus mengetikkan perintah
berikut:
CREATE DATABASE MyDatabase

Untuk dapat mengeksekusi perintah tersebut, pertama-tama Anda harus memilih (blok) pada baris
perintah yang akan dieksekusi, kemudian dilanjutkan dengan menekan tombol ”Execute” atau
dapat juga menggunakan tombol F5 pada keyboard. Setelah mengeksekusi query ini, SQL akan
memberitahu Anda bahwa permintaan Anda telah berjalan dengan sukses dan database telah
berhasil dibuat.
Sekarang Anda telah memiliki sebuah database dengan nama “MyDatabase”, untuk membuat
tabel dan objek-objek lainnya pada database tersebut menggunakan query, Anda harus
menjadikan database tersebut aktif terlebih dahulu. Caranya dapat dengan mengeksekusi syntax
SQL berikut:
USE MyDatabase

Catatan:
Anda tidak dapat membuat beberapa database dengan nama yang sama, jadi apabila Anda telah
berhasil mengeksekusi perintah Create Database, maka perintah tersebut tidak dapat dieksekusi
lagi, kecuali Anda mengganti nama database yang akan dibuat.

Tips:
Buatlah nama database yang mencerminkan nama enterprise/perusahaan/organisasi, bukan
kegiatan operasionalnya. Contoh: DB_SidoTampil bukan DB_PenjualanSidoTampil.

SQL CREATE TABLE


Untuk membuat tabel kita dapat menggunakan perintah SQL sebagai berikut:
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)

Pada contoh syntax berikut kita akan membuat sebuah tabel dengan nama “Persons”.
CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Field “P_Id” memiliki tipe “int” dan akan digunakan untuk menyimpan data bertipe numerik.
Sedangkan field “LastName”, “FirstName”, “Address”, dan “City” bertipe “varchar” dengan panjang 255
karakter, artinya field-field tersebut dapat menyimpan data bertipe alfanumerik dengan panjang
maksimum adalah 255 karakter (termasuk spasi).
Untuk lebih jelas tentang tipe data, berikut adalah tabel yang menunjukkan tipe data apa saja yang
digunakan dalam MS SQL Server.
Tipe Data Character
Data type Description
char(n) Fixed-length character string. Maximum 8,000 characters
varchar(n) Variable-length character string. Maximum 8,000 characters
varchar(max) Variable-length character string. Maximum 1,073,741,824 characters
text Variable-length character string. Maximum 2GB of text data

Tipe Data Unicode


Data type Description
nchar(n) Fixed-length Unicode data. Maximum 4,000 characters
nvarchar(n) Variable-length Unicode data. Maximum 4,000 characters
nvarchar(max) Variable-length Unicode data. Maximum 536,870,912 characters
ntext Variable-length Unicode data. Maximum 2GB of text data
Tipe Data Binary
Data type Description
bit Allows 0, 1, or NULL
binary(n) Fixed-length binary data. Maximum 8,000 bytes
varbinary(n) Variable-length binary data. Maximum 8,000 bytes
varbinary(max) Variable-length binary data. Maximum 2GB
image Variable-length binary data. Maximum 2GB

Tipe Data Numerik


Data type Description Storage
tinyint Allows whole numbers from 0 to 255 1 byte
smallint Allows whole numbers between -32,768 and 32,767 2 bytes
Allows whole numbers between -2,147,483,648 and
int 4 bytes
2,147,483,647
Allows whole numbers between -9,223,372,036,854,775,808 and
bigint 8 bytes
9,223,372,036,854,775,807
Fixed precision and scale numbers.
Allows numbers from -10^38 +1 to 10^38 –1.

The p parameter indicates the maximum total number of digits


that can be stored (both to the left and to the right of the decimal
decimal(p,s) 5-17 bytes
point). p must be a value from 1 to 38. Default is 18.

The s parameter indicates the maximum number of digits stored


to the right of the decimal point. s must be a value from 0 to p.
Default value is 0
Fixed precision and scale numbers.
Allows numbers from -10^38 +1 to 10^38 –1.

The p parameter indicates the maximum total number of digits


that can be stored (both to the left and to the right of the decimal
numeric(p,s) 5-17 bytes
point). p must be a value from 1 to 38. Default is 18.

The s parameter indicates the maximum number of digits stored


to the right of the decimal point. s must be a value from 0 to p.
Default value is 0
smallmoney Monetary data from -214,748.3648 to 214,748.3647 4 bytes
Monetary data from -922,337,203,685,477.5808 to
money 8 bytes
922,337,203,685,477.5807
Floating precision number data from -1.79E + 308 to 1.79E + 308.
The n parameter indicates whether the field should hold 4 or 8 4 or 8
float(n)
bytes. float(24) holds a 4-byte field and float(53) holds an 8-byte bytes
field. Default value of n is 53.
real Floating precision number data from -3.40E + 38 to 3.40E + 38 4 bytes

Tipe Data Date


Data type Description Storage
From January 1, 1753 to December 31, 9999 with an accuracy of
datetime 8 bytes
3.33 milliseconds
From January 1, 0001 to December 31, 9999 with an accuracy of
datetime2 6-8 bytes
100 nanoseconds
smalldatetime From January 1, 1900 to June 6, 2079 with an accuracy of 1 minute 4 bytes
date Store a date only. From January 1, 0001 to December 31, 9999 3 bytes
time Store a time only to an accuracy of 100 nanoseconds 3-5 bytes
datetimeoffset The same as datetime2 with the addition of a time zone offset 8-10 bytes
Stores a unique number that gets updated every time a row gets
created or modified. The timestamp value is based upon an
timestamp
internal clock and does not correspond to real time. Each table may
have only one timestamp variable

Tipe Data Lainnya


Data type Description
Stores up to 8,000 bytes of data of various data types, except text, ntext, and
sql_variant
timestamp
uniqueidentifier Stores a globally unique identifier (GUID)
xml Stores XML formatted data. Maximum 2GB
cursor Stores a reference to a cursor used for database operations
table Stores a result-set for later processing

Tips:
Buatlah nama field yang mencerminkan fungsinya. Untuk tipe data dan panjang data disesuaikan
dengan kebutuhan dan kapasitas dari media penyimpanan (storage) yang Anda miliki.

POST TEST:
a. Jelaskan jenis-jenis perintah SQL.
b. Buat sebuah Database dengan menggunakan Perintah SQL dengan nama database sesuai dengan
NIM.
c. Buat sebuah tabel dengan nama tabel “Persons” dengan struktur sebagai berikut:
Nama Panjan
Tipe Data
Kolom g
P_Id Int
LastName Varchar 255
FirstName Varchar 255
Address Varchar 255
City Varchar 255
SQL CONSTRAINT 1 (Not Null, Unique, Primary Key, Foreign Key)
PRE TEST:
a. Jelaskan jenis-jenis perintah SQL.
b. Sebut dan jelaskan beberapa tipe data dalam SQL.
c. Sebut dan jelaskan fitur-fitur pada SQL Server.
d. Apa yang dimaksud dengan Primary Key, Foreign Key, NULL Values,

TIU:
a. Mahasiswa mengerti konsep constraint pada SQL.
b. Mahasiswa mengenali jenis-jenis constraint dan fungsinya dalam SQL.
c. Mahasiswa mampu membuat dan mengembangkan fungsi constraint (Not Null, Unique, Primary
Key, dan Foreign Key) dalam SQL.
d. Mahasiswa mampu menggunakan perintah ALTER TABLE untuk merubah struktur constraint suatu
tabel.

Constraints adalah batasan yang digunakan untuk membatasi tipe data yang dapat masuk ke tabel.
Constraints dapat dideklarasikan pada saat sebuah tabel akan dibuat (dengan pernyataan CREATE TABLE)
atau setelah tabel tersebut sudah dibuat (dengan pernyataan ALTER TABLE).

SQL Not Null Constraint


Constraint NOT NULL akan memaksa field untuk selalu berisi nilai. Fungsi utamanya adalah untuk
memastikan bahwa kita telah memasukkan sebuah nilai pada sebuah field. Apabila suatu field disetting
menjadi NOT NULL, artinya Anda tidak dapat menambahkan record baru atau memperbarui suatu
record yang sudah ada tanpa mengisi nilai dari field tersebut. Sebaliknya apabila suatu field disetting
menjadi ALLOW NULL, maka pada field tersebut boleh dikosongkan atau tidak berisi nilai.
Contoh perintah SQL berikut akan membuat field “P_Id” dan “LastName” menjadi NOT NULL,
sehingga kedua field tersebut harus diisi nilai.
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

SQL Unique Constraint


Constraint ini digunakan untuk membuat data yang disimpan pada suatu field bersifat unik atau
tidak ada yang sama. Maksudnya, data yang akan disimpan pada field tersebut, antara satu record
dengan record yang lainnya tidak boleh sama. Constraint ini bukan digunakan sebagai pengenal
(identifier) dari suatu record, namun hanya sebagai pembeda nilai antar record dari suatu field.
Contoh perintah SQL berikut digunakan untuk membuat field menjadi unique.
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Kita juga dapat membuat nama untuk constraint unique tersebut, berikut contohnya:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

Berikut adalah contoh perintah untuk membuat constraint unique pada tabel yang sudah ada
menggunakan perintah ALTER:
ALTER TABLE Persons
ADD UNIQUE (P_Id)

atau
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

Berikut adalah contoh syntax SQL untuk menghapus constraint unique dari suatu tabel:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

Catatan:
UNIQUE Constraint berbeda dengan PRIMARY KEY. Anda dapat memiliki lebih dari satu Unique
Constraint, namun hanya dapat memiliki satu buah Primary Key saja. Berbeda dengan Primary Key,
fungsi dari Unique Constraint bukan sebagai pengenal suatu record, melainkan hanya sebagai
pembeda nilai pada suatu kolom saja.

SQL Primary Key Constraint


PRIMARY KEY adalah constraint yang akan mengidentifikasi setiap record yang ada pada tabel
dalam suatu database. Nilai primary key harus unik, sehingga dapat membedakan antara suatu record
dengan record yang lain dalam sebuah tabel. Primary key dapat dibangun dari minimal satu buah field,
namun sangat dimungkinkan apabila kita akan membuat sebuah Primary Key yang terdiri dari kumpulan
beberapa field. Field atau kumpulan field yang membangun sebuah Primary Key harus NOT NULL, artinya
tidak boleh tidak berisi nilai. Setiap tabel hanya dapat mengandung satu Primary Key saja.
Berikut adalah contoh syntax SQL untuk membangun sebuah tabel dengan menentukan Primary
Key Constratint pada suatu fieldnya:
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Kita juga dapat memberi nama pada constraint Primary Key yang kita buat:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

Catatan:
Pada perintah SQL diatas, kita membuat sebuah Primary Key dengan nama pk_PersonID, namun
primary key tersebut dibangun dari dua buah field yaitu P_Id dan LastName.

Berikut adalah contoh syntax SQL untuk membangun Primary Key dengan menggunakan perintah
ALTER:
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

atau

ALTER TABLE Persons


ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

Catatan:
Apabila Anda menggunakan perintah ALTER untuk membuat constraint Primary Key, maka
sebelumnya Anda harus memastikan bahwa field yang akan dijadikan Primary Key tersebut sudah
bersifat NOT NULL.

Untuk menghapus constraint Primary Key dari suatu tabel, Anda dapat menggunakan contoh
perintah SQL berikut:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID
SQL Foreign Key Constraint
Foreign Key adalah suatu field yang akan mereferensikan suatu Primary Key yang ada pada tabel
lainnya. Fungsi utamanya adalah untuk memastikan integritas referensial data yang ada dalam database.
Berikut adalah contoh ilustrasinya:
Tabel Persons

P_Id LastName FirstName Address City


1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Tabel Orders

O_Id OrderNo P_Id


1 77895 3
2 44678 3
3 22456 2
4 24562 1

Field “P_Id” pada tabel “Orders” mengacu pada field “P_Id” pada tabel “Persons”, dimana “P_Id”
pada tabel “Persons” adalah Primary Key, sedangkan “P_Id” pada tabel “Orders” adalah Foreign Key
dari tabel “Orders”. Foreign Key digunakan untuk mencegah kesalahan relasi antara tabel-tabel tersebut.
Berikut adalah contoh syntax SQL untuk membuat sebuah Foreign Key:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

Berikut adalah contoh syntax SQL untuk memberi nama pada Foreign Key Constraint yang akan
dibuat:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

Kita juga dapat menambahkan Foreign Key terhadap tabel yang sudah ada sebelumnya dengan
menggunakan perintah ALTER:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

atau

ALTER TABLE Orders


ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Untuk menghapus sebuah Foreign Key kita dapat menggunakan perintah SQL berikut ini:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

POST TEST:
a. Sebut dan jelaskan fungsi dari constraint yang sudah dibahas.
b. Membuat tabel (bebas) dengan menggunakan constraint yang telah dibahas.

SQL CONSTRAINTS 2 (Default) dan AUTO INCREMENT


PRE TEST:
a. Sebut dan jelaskan fungsi dari constraint yang sudah dibahas pada pertemuan sebelumnya.
b. Periksa tabel yang telah dibuat sesuai dengan pada post-test pada pertemuan sebelumnya.
c. Jelaskan tentang konsep Primary Key.
d. Apa yang dimasud dengan Auto Increment?

TIU:
a. Mahasiswa mampu membuat dan mengembangkan fungsi constraint lanjutan (Check, Default)
dalam SQL.
b. Mahasiswa mengerti konsep Auto Increment dalam SQL.
c. Mahasiswa mampu membuat dan mengembangkan konsep Auto Increment dalam SQL.

SQL Check Constraint


Constraint ini digunakan untuk mengidentifikasikan nilai yang akan dimasukkan pada suatu field,
dimana fungsi utamanya adalah untuk menjaga integritas data pada suatu tabel. Dengan mengatur check
constraint pada suatu field, maka kita telah membatasi nilai yang akan disimpan pada field tersebut
dengan suatu ekspresi atau kriteria tertentu.
Misalnya kita akan mengatur nilai minimum untuk field “Gaji” pada tabel “Pegawai” adalah
“1000000”, maka kita akan dapat menggunakan sebuah ekspresi pada check constraint field “Gaji” yaitu:
“Gaji >= 1000000”. Kita dapat menggunakan lebih dari satu ekspresi atau kriteria dalam sebuah check
constraint, misalnya “Gaji >=1000000 and Jabatan<=’Kepala’”.
Berikut adalah contoh syntax SQL untuk membuat check constraint pada field “ P_Id” dengan
ekspresi yang digunakan adalah “P_Id>0” yang artinya kolom “P_Id” HANYA dapat menerima inputan
nilai lebih besar daripada nol.
CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Kita juga dapat membuat check constraint untuk lebih dari satu field:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)

Berikut adalah contoh syntax SQL untuk membuat check constraint pada sebuah tabel yang sudah
ada dengan menggunakan perintah ALTER:
ALTER TABLE Persons
ADD CHECK (P_Id>0)

atau

ALTER TABLE Persons


ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

Untuk menghapus check constraint dari suatu tabel kita dapat menggunakan syntax SQL berikut:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person

SQL Default Constraint


Constraint ini digunakan untuk memasukkan nilai default pada suatu field pada saat tidak ada nilai
yang dispesifikasikan terhadap field tersebut. Nilai default akan secara otomatis ditambahkan apabila
pada saat menambahkan record baru. Kita dapat menggunakan fungsi built in dari SQL sebagai nilai dari
constraint ini. Contohnya kita ingin membuat nilai default dari field “Tgl_Daftar” adalah waktu di server,
maka kita dapat menggunakan fungsi GetDate() pada default constraint field tersebut. Berikut adalah
contoh syntax SQL untuk membuat default constraint pada sebuah field:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

Berikut adalah contoh syntax SQL untuk menggunakan suatu fungsi sebagai nilai ekspresi dari
suatu default constraint:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)

Kita dapat membuat default constraint pada sebuah tabel yang sudah ada sebelumnya dengan
menggunakan perintah ALTER:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'

Untuk menghapus suatu default constraint kita dapat menggunakan perintah SQL berikut:
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT

Tips:
Gunakanlah default constraint pada suatu field yang bertipe NOT NULL dan bukan PRIMARY KEY.
Hal ini akan membantu menjaga integritas data yang akan disimpan pada tabel tersebut.

SQL Auto-Increment
Auto-increment akan menjadikan field pada suatu tabel akan terisi dengan suatu nomor unik
secara otomatis pada saat ada suatu record baru yang dimasukkan ke dalam tabel tersebut. Karena nilai
yang dihasilkan oleh auto-increment selalu unik, maka kita dapat memberlakukan auto-increment ini
pada sebuah field yang menjadi Primary Key. Sehingga kita akan mendapatkan nilai yang unik dengan
mudah tanpa harus membuat fungsi tertentu. Kita dapat menentukan nilai awal dan nilai increment yang
akan di-generate setiap ada record baru yang ditambahkan ke tabel tersebut.
Berikut adalah contoh syntax SQL untuk membentuk auto-increment pada tabel Person:
CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255)
)

Microsoft SQL Server menggunakan keyword “IDENTITY” untuk membentuk suatu field menjadi
auto-increment. Dimana secara default, nilai awal dari auto increment ini adalah 1, dengan nilai kenaikan
adalah 1. Namun kita juga dapat merubah nilai tersebut, misalnya kita akan membuat nilai awalnya
adalah 10, dan nilai kenaikannya adalah 5, maka kita dapat menggunakan perintah sebagai berikut:

CREATE TABLE Persons


(
P_Id int PRIMARY KEY IDENTITY(10, 5),
LastName varchar(255) NOT NULL,
FirstName varchar(255)
)

Untuk memasukkan record baru ke dalam tabel “Persons” yang telah berisi auto-increment, kita
tidak perlu mengisi nilai pada field “P_Id”.

INSERT INTO Persons (FirstName,LastName)


VALUES ('Lars','Monsen')

Perintah SQL diatas akan menginputkan record baru ke tabel “Person”. Dimana field “P_Id” akan
secara otomatis terisi dengan nilai unik.

POST TEST:
a. Buat sebuah tabel dengan struktur sebagai berikut:
Nama Tipe Data Panjang Constraints Auto
Kolom Increment
OrderId Int Primary True
Key
CustomerId Varchar 10
EmployeeId Varchar 255
OrderDate DateTime
ShipName Varchar 255

b. Isi tabel tersebut dengan data sejumlah minimal 10 (sepuluh) record.


SQL DROP (TABLE, DATABASE), TRUNCATE TABLE, ALTER TABLE
PRE TEST:
a. Apa yang dimaksud dengan DDL dan DML?
b. Jelaskan perbedaan antara DDL dan DML!
c. Apa yang dimaksud dengan drop, truncate, alter table dalam SQL?

TIU:
a. Mahasiswa mengerti tentang konsep dasar perintah drop, truncate, dan alter table dalam SQL.
b. Mahasiswa mampu menggunakan dan mengembangkan perintah drop, truncate, dan alter table
dalam SQL.

SQL DROP
Syntax SQL ini digunakan untuk menghapus suatu objek dalam database, seperti menghapus
index, tabel, atau database itu sendiri.
 Drop Table
Berikut adalah format syntax SQL untuk menghapus tabel dari suatu database:
DROP TABLE table_name

 Truncate Table
Perintah ini digunakan untuk menghapus seluruh data yang terkandung dalam suatu tabel (bukan
untuk menghapus tabel) .
TRUNCATE TABLE table_name

 Drop Database
Berikut adalah format syntax SQL untuk menghapus suatu database:
DROP DATABASE database_name

Catatan:
Kita harus berhati-hati dalam menggunakan perintah DROP, karena sekali objek tersebut telah
terhapus dari database, kita tidak dapat lagi mengembalikan objek tersebut (kecuali sudahpernah
dilakukan backup sebelumnya).
SQL ALTER Table
Syntax SQL ini digunakan untuk merubah struktur dari suatu tabel. Perubahan struktur tersebut
dapat berupa menambahkan, mengubah, atau menghapus suatu field dari suatu tabel. Format syntax
SQL untuk menambahkan field baru pada sebuah tabel adalah sebagai berikut:
ALTER TABLE table_name
ADD column_name datatype

Misalnya kita akan menambahkan sebuah field baru dengan nama “DateOfBirth” pada tabel
“Persons”, maka berikut ini adalah syntax SQL yang akan kita gunakan:
ALTER TABLE Persons
ADD DateOfBirth date

Format syntax SQL untuk merubah suatu field pada sebuah tabel adalah sebagai berikut:
ALTER TABLE table_name
ALTER COLUMN column_name datatype

Misalnya kita akan merubah tipe data dari field “DateOfBirth” pada tabel “Persons” dari Date
menjadi Year, maka berikut ini adalah syntax SQL yang akan kita gunakan:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year

Format syntax SQL untuk menghapus suatu field pada sebuah tabel adalah sebagai berikut:
ALTER TABLE table_name
DROP COLUMN column_name

Misalnya kita akan menghapus field “DateOfBirth” dari tabel “Persons”, maka berikut ini adalah
syntax SQL yang akan kita gunakan:
ALTER TABLE Persons
DROP COLUMN DateOfBirth
POST TEST:
Kembangkan perintah SQL DROP, TRUNCATE, dan ALTER TABLE terhadap tabel-tabel pada database
Northwind.
DML 1 (SELECT, DISTINCT, KLAUSA WHERE, SQL OPERATOR)
PRE TEST:
a. Jelaskan ulang mengenai DDL dan DML!
b. Latihan drop, truncate, dan alter table ?

TIU:
a. Mahasiswa mengerti tentang konsep dasar perintah-perintah DML (select, distinct, dan klausa
where dalam SQL).
b. Mahasiswa mampu menggunakan dan mengembangkan perintah DML (select, distinct, dan klausa
where dalam SQL).
c. Mahasiswa mengerti dan mampu mengenali operator-operator yang dapat digunakan pada klausa
WHERE.

DML (Data Manipulation Language)

SQL SELECT
Pernyataan SELECT digunakan untuk memilih data dari database. Hasil dari perintah SELECT
disimpan dalam tabel hasil yang disebut result-set. Berikut adalah format syntax SQL Select:
SELECT column_name(s)
FROM table_name

atau

SELECT * FROM table_name

Misalnya kita memiliki sebuah tabel yang bernama “Persons”:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan memilih isi dari field bernama "LastName" dan "FirstName" dari tabel di atas,
maka perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT LastName,FirstName FROM Persons
Hasil (result-set) yang akan muncul dari perintah diatas adalah:
LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari

Untuk menampilkan semua record dan kolom pada tabel “Persons” kita dapat menggunakan
perintah berikut:
SELECT * FROM Persons

Hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Catatan:
SQL tidak Case-Sensitive, jadi perintah “SELECT” dengan “select” memiliki fungsi yang sama.
Tanda bintang/asterisk (*) adalah cara cepat untuk memilih semua kolom yang akan ditampilkan ke
dalam result-set.

SQL DISTINCT
Dalam satu tabel, ada kalanya suatu field (non Primary Key) dapat mengandung nilai yang sama.
Ini tidak masalah, namun terkadang kita ingin menampilkan nilai yang berbeda dari field tersebut, dan
dengan menggunakan keyword SQL Distinct, hal tersebut dapat dimungkinkan. Berikut adalah format
syntax SQL Distinct:
SELECT DISTINCT column_name(s)
FROM table_name

Misalnya pada tabel “Persons” dibawah ini, dimana pada field “City” terdapat nilai yang sama yaitu
“Sandnes”.
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Untuk menampilkan nilai yang berbeda dari field “City” pada tabel diatas, maka kita dapat
menggunakan perintah SQL berikut:
SELECT DISTINCT City FROM Persons

Hasilnya adalah sebagai berikut:


City
Sandnes
Stavanger

SQL WHERE
SQL Where adalah klausa yang digunakan untuk memilih record yang memenuhi suatu kriteria
tertentu. Kriteria ini biasanya suatu expressi Boolean (bernilai true atau false). Apabila suatu record
memenuhi kriteria yang dimasukkan, maka record tersebut akan ditampilkan pada result-set. Sebaliknya,
record yang tidak memenuhi kriteria yang dimasukkan tidak akan ditampilkan ke dalam result-set.
Berikut adalah format penggunaan SQL Where:
SELECT column_name(s)
FROM table_name
WHERE column_name operator value
Misalnya kita ingin menampilkan data dari tabel “Persons” dimana field “City” bernilai “Sandnes”,
perintah SQL yang digunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE City='Sandnes'

Hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

SQL menggunakan tanda petik / quote (‘) pada nilai expresi bertipe teks yang dimasukkan pada
klause Where, namun untuk nilai expresi bertipe numerik kita dapat tidak menggunakan tanda petik
tersebut. Contohnya adalah sebagai berikut:
Nilai ekspresi bertipe teks yang benar:
SELECT * FROM Persons WHERE FirstName='Tove'

Nilai ekspresi bertipe teks yang salah:


SELECT * FROM Persons WHERE FirstName=Tove

Nilai ekspresi bertipe numerik yang benar:


SELECT * FROM Persons WHERE Year=1965

Nilai ekspresi bertipe numerik yang salah:


SELECT * FROM Persons WHERE Year='1965'

Catatan:
Kita dapat menggunakan tanda kutip/double quote (“) ketika membuat nilai ekspresi pada
beberapa database management system.

Berikut adalah beberapa operator yang dapat dipergunakan pada klausa Where
Operator Keterangan
= Sama dengan
<> Tidak sama dengan
> Lebih besar dari
< Kurang dari
>= Lebih besar dari atau sama dengan
<= Kurang dari atau sama dengan
BETWEEN Diantara rentang nilai tertentu
LIKE Pencarian berdasarkan pola tertentu
IN Spesifikasi beberapa nilai tertentu (berbentuk daftar nilai)

POST TEST:
Kembangkan perintah SQL DROP, TRUNCATE, ALTER TABLE, SELECT, DISTINCT, dan WHERE CLAUSE
terhadap tabel-tabel pada database Northwind.
DML 2 (SQL AND & OR, ORDER BY, SQL INSERT, UPDATE, dan DELETE)
PRE TEST:
a. Sebut dan jelaskan operator yang dapat digunakan pada klausa WHERE yang telah dibahas pada
pertemuan sebelumnya!
b. Apa yang dimaksud dengan AND dan OR?

TIU:
a. Mahasiswa mengerti tentang konsep dasar dari operator AND dan OR dalam SQL.
b. Mahasiswa mampu menggunakan dan mengembangkan penggunaan operator AND dan OR dalam
SQL.
c. Mahasiswa mampu menggunakan keyword ORDER BY untuk mengurutkan record pada result set.
d. Mahasiswa mampu menambahkan, merubah, dan menghapus record pada tabel menggunakan
perintah INSERT, UPDATE, dan DELETE.

AND dan OR adalah operator yang digunakan untuk memfilter record pada tabel dengan
menggunakan beberapa kondisi atau ekspresi sekaligus. Operator AND akan menampilkan record
dengan syarat dimana kondisi pertama dan kondisi kedua bernilai benar. Sedangkan operator OR akan
menampilkan record dengan syarat dimana salah satu diantara dua kondisi tersebut bernilai benar.
AND OR
TRUE TRUE TRUE TRUE
TRUE TRUE
1=1 1=1 1=1 1=1
TRUE FALSE TRUE FALSE
FALSE TRUE
1=1 1>1 1=1 1>1
FALSE FALSE FALSE FALSE
FALSE FALSE
1>1 1>1 1>1 1>1

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Sekarang kita akan memilih data dari tabel “Persons” dimana pada kolom “FirstName” bernilai
"Tove" DAN pada kolom “LastName” bernilai "Svendson", perintah SQL yang kita gunakan adalah
sebagai berikut:
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'

Hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

Sekarang kita akan menampilkan data tabel “Persons” yang pada kolom “FirstName” bernilai
“Tove” ATAU “Ola”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'

Hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Sekarang kita akan mengkombinasikan operator AND dengan operator OR dalam satu perintah
SQL. Misalnya kita akan menampilkan data dari tabel “Persons” yang pada kolom “LastName” bernilai
"Svendson" DAN pada kolom “FirstName” bernilai "Tove" ATAU "Ola", perintah SQL yang kita gunakan
adalah sebagai berikut:
SELECT * FROM Persons WHERE
LastName='Svendson'
AND (FirstName='Tove' OR FirstName='Ola')

Hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

Tips:
Penggunaan tanda kurung () pada kombinasi operator AND & OR dapat membantu kita untuk
memahami pengelompokkan operator yang kita gunakan.

SQL ORDER BY
SQL Order By adalah keyword SQL yang digunakan untuk melakukan pengurutan hasil perintah
SELECT dalam result-set. Secara default, pengurutan akan dilakukan secara Ascending (ASC) atau dari
urutan terkecil/terendah ke urutan terbesar/tertinggi. Namun apabila kita ingin mengurutkan dengan
urutan sebaliknya, kita dapat menambahkan keyword DESC yang berarti Descending. Dengan demikian,
hasil pada result-set akan diurutkan berdasarkan nilai terbesar/tertinggi ke nilai yang terkecil/terendah.
berikut adalah format penulisan SQL Order By:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger

Sekarang kita akan menampilkan record dari tabel di atas, namun kita akan mengurutkan record
tersebut berdasarkan nilai terkecil ke nilai terbesar dari field “LastName”, perintah SQL yang kita
gunakan adalah sebagai berikut:
SELECT * FROM Persons
ORDER BY LastName

Hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
4 Nilsen Tom Vingvn 23 Stavanger
3 Pettersen Kari Storgt 20 Stavanger
2 Svendson Tove Borgvn 23 Sandnes
Sekarang kita akan kembali melakukan pengurutan pada tabel “Persons”, namun sekarang kita
akan mengurutkan berdasarkan nilai terbesar ke nilai terkecil dari field “LastName”, perintah SQL yang
kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
ORDER BY LastName DESC

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger
1 Hansen Ola Timoteivn 10 Sandnes

Catatan:
Dalam suatu tabel, urutan record tidaklah penting, karena urutan akan berubah seiring dengan
penggunaan ekspresi-ekspresi tertentu.
SQL Order By juga dapat digunakan untuk mengurutkan berdasarkan beberapa kolom sekaligus.

SQL INSERT

SQL INSERT adalah perintah yang digunakan untuk memasukkan record atau baris baru ke dalam
suatu tabel. Perintah ini memiliki dua format penulisan yang umum digunakan yaitu sebagai berikut:
Perintah INSERT dibawah ini tidak menspesifikasikan nama field/kolom yang ada pada tabel, jadi
hanya menyertakan nilai yang akan dimasukkan pada field-field tabel tersebut.
INSERT INTO table_name
VALUES (value1, value2, value3,...)

Pada perinta INSERT dibawah ini nama field/kolom dispesifikasikan.


INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

Misalnya kita akan menambahkan record baru ke dalam tabel “Persons” berikut ini:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Untuk perintah SQL Insert yang pertama kita tidak menspesifikasikan nama field pada tabel
“Person” sebagai berikut:
INSERT INTO Persons
VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

Tabel “Persons” sekarang akan menjadi sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger

Pada perintah diatas, kita tidak menspesifikasikan nama field apa saja yang ada pada tabel
“Persons” yang kita akan isi dengan data. Setiap field dipisahkan dengan tanda koma (,), begitu pula nilai
yang kita masukkan dipisahkan dengan tanda koma. Hal yang perlu diperhatikan agar perintah tersebut
dapat berjalan dengan baik adalah, kita harus memastikan bahwa urutan nilai yang akan kita masukkan
sudah sesuai dengan urutan dari field yang ada pada tabel. Karena pada beberapa kasus yang terjadi,
kita terkadang lupa dengan urutan field pada suatu tabel, sehingga kita memasukkan nilai yang salah
pada suatu field. Selain itu, kita harus memastikan bahwa jumlah nilai yang kita masukkan tidak boleh
lebih banyak daripada jumlah field yang ada pada tabel “Persons”.
Misalnya pada tabel “Persons” terdapat 5 (lima) field, maka selain kita tidak boleh lupa urutan dari
nilai yang akan kita simpan terhadap urutan field pada tabel, kita juga tidak boleh memasukkan jumlah
nilai lebih dari 5.
Sekarang misalnya kita ingin memasukkan data pada tabel “Persons” namun hanya pada field
“P_Id”, “LastName”, dan “FirstName” saja, kita dapat menggunakan perintah SQL berikut:
INSERT INTO Persons (P_Id, LastName, FirstName)
VALUES (5, 'Tjessem', 'Jakob')

Tabel “Persons” sekarang akan menjadi sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob

Pada perintah diatas, kita telah menspesifikasikan beberapa kolom (tidak semua) dari tabel
“Persons”. Artinya, hanya pada field-field tersebut sajalah data akan diisi, pada field lainnya akan
menjadi NULL.

SQL UPDATE
SQL UPDATE adalah perintah yang digunakan untuk merubah nilai dari suatu record pada sebuah
tabel. Format penulisan perintah UPDATE adalah sebagai berikut:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Misalnya kita memiliki sebuah tabel dengan nama tabel “Persons” berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob

Sekarang kita akan merubah nilai dari kolom “Address” dan “City” pada tabel “Persons” dimana
nilai dari kolom “LastName” adalah "Tjessem” dan nilai pada kolom “Firstname” adalah “Jakob",
perintah SQL yang kita gunakan adalah sebagai berikut:
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'

Sekarang data dari tabel “Persons” akan berubah seperti berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob Nissestien 67 Sandnes
Catatan:
Perhatikan penggunaan klausa WHERE dalam perintah UPDATE. Klausa WHERE akan menentukan
data yang mana yang akan diperbaharui. Jika kita tidak menggunakan klausa WHERE maka SEMUA
record pada tabel tersebut akan terupdate tanpa terkecuali.

SQL DELETE
SQL DELETE adalah perintah yang digunakan untuk menghapus suatu record dari tabel. Berikut
adalah format penulisan perintah DELETE:
DELETE FROM table_name
WHERE some_column=some_value

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob Nissestien 67 Sandnes

Sekarang kita akan menghapus sebuah record dari tabel “Persons”, dimana record yang akan kita
hapus adalah record dengan nilai pada field “Lastname” adalah “Tjessem” DAN nilai pada field
“FirstName” adalah “Jakob”, perintah SQL yang kita gunakan adalah sebagai berikut:
DELETE FROM Persons
WHERE LastName='Tjessem' AND FirstName='Jakob'

Perintah diatas hanya akan menghapus record yang sesuai dengan kriteria yang terpenuhi dalam
kalusa WHERE. Tabel “Persons” akan tampil sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger

Catatan:
Sama seperti pada perintah UPDATE, klausa WHERE pada perintah DELETE berfungsi sebagai
penentu record mana yang akan dihapus sesuai dengan kriteria yang ditentukan.

POST TEST:

Kembangkan perintah SQL AND & OR, ORDER BY, SQL INSERT, UPDATE, dan DELETE terhadap tabel-tabel
pada database Northwind.
SQL JOIN 1 (INNER JOIN)
PRE TEST:
a. Jelaskan ulang konsep Primary Key dan Foreign Key dalam Join Table.
b. Jelaskan tentang kosep Normalisasi!
c. Jelaskan jenis-jenis relasi tabel.

TIU:
a. Mahasiswa mengerti tentang konsep dasar SQL JOIN (Inner Join).
b. Mahasiswa mampu menggunakan dan mengembangkan penggunaan perintah Inner Join untuk
merelasikan 2 (dua) tabel atau lebih.

SQL JOIN
SQL JOIN digunakan untuk membuat relasi antar dua buah tabel atau lebih. Seperti kita ketahui
bersama, dalam sebuah database dapat terdiri dari satu atau lebih tabel yang dapat memiliki relasi
antara satu tabel dengan tabel lainnya. Relasi tersebut pada umumnya dibentuk dari konstruksi Primary
Key dan Foreign Key yang dibangun dengan menggunakan konsep Normalisasi database.
Primary Key adalah suatu field (atau kombinasi dari beberapa field) dengan nilai yang unik yang
digunakan untuk membedakan setiap baris yang ada pada sebuah tabel. Sedangkan Foreign key adalah
suatu field yang akan mereferensikan suatu nilai pada suatu field pada sebuah tabel dengan Primary Key
yang ada pada tabel lainnya. Relasi inilah yang akan digunakan sebagai dasar SQL Join.

Misalkan kita memiliki sebuah tabel yang bernama tabel “Persons”, yaitu sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Field “P_Id” adalah Primary Key dari tabel “Persons”, sehingga tidak diperkenankan ada nilai dari
field “P_Id” tersebut yang bernilai sama. Field “P_Id” akan membedakan setiap record yang ada
pada tabel “Persons”.
Tabel lainnya adalah tabel “Orders”, yaitu sebagai berikut:
O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

Pada tabel “Orders” diatas, field “O_Id” adalah Primary Key, sedangkan field “P_Id” adalah
Foreign Key yang mereferensikan field “P_Id” pada tabel “Persons”. Jadi kedua tabel tersebut direlasikan
oleh field “P_Id” pada masing-masing tabel.

SQL Joins dibagi menjadi empat perintah utama, yaitu SQL Inner Join, SQL Left Outer Join, SQL
Right Outer Join, dan SQL Full Join. Penjelasan lebih lengkap untuk perintah utama SQL Join adalah
sebagai berikut:

SQL INNER JOIN


Perintah ini digunakan untuk menampilkan record dari dua tabel atau lebih yang saling memiliki
relasi, dimana syaratnya adalah nilai (khususnya field Primary Key dan Foreign Key) antara tabel yang
satu dengan yang lainnya harus berpasangan. Jadi record yang akan ditampilkan dalam result set, hanya
record yang memiliki nilai yang sama antara tabel yang satu dengan tabel lainnya. Berikut adalah format
penulisan perintah SQL Inner Join:
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

Misalnya kita memiliki dua buah tabel, yaitu tabel “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Kemudian tabel lainnya adalah tabel “Orders” yaitu sebagai berikut:
O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

Sekarang kita akan menampilkan record dari tabel “Persons” yang memiliki relasi dengan tabel
“Orders” (perhatikan penentuan Primary dan Foreign Key pada kedua tabel tersebut). Perintah SQL yang
kita gunakan adalah sebagai berikut:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Pada perintah diatas, kita akan menampilkan field “LastName” dan “FirstName” dari tabel
“Persons”, serta field “OrderNo” dari tabel “Orders”. Hasil dari perintah SQL tersebut adalah sebagai
berikut:
LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678

Tips:
Kita dapat menggunakan SQL Alias untuk memudahkan membuat dan mengenali tabel yang
memiliki nama yang panjang dan kompleks.

POST TEST:
Kembangkan perintah Inner Join terhadap tabel-tabel pada database Northwind.
SQL JOIN 2 (OUTER JOIN) & SQL UNION
PRE TEST:
a. Apa yang dimaksud dengan Join Table.
b. Jelaskan perbedaan Inner Join dan Outer Join.

TIU:
a. Mahasiswa mengerti tentang konsep dasar SQL JOIN (Outer Join).
b. Mahasiswa mengerti jenis-jenis perintah SQL JOIN (Outer Join).
c. Mahasiswa mengerti tentang konsep SQL UNION.
d. Mahasiswa mampu menggunakan dan mengembangkan penggunaan perintah SQL Outer Join dan
SQL UNION.

SQL LEFT OUTER JOIN


Perintah ini digunakan untuk menampilkan seluruh record tabel sebelah kiri (tabel pertama)
walaupun pada tabel tersebut tidak memiliki pasangan pada tabel sebelah kanan (tabel kedua). Berikut
adalah format penulisan perintah SQL Left Outer Join:
SELECT column_name(s)
FROM table_name1
LEFT OUTER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

Misalnya kita memiliki dua buah tabel, yaitu tabel “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Kemudian tabel lainnya adalah tabel “Orders” yaitu sebagai berikut:


O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15
Sekarang kita akan menampilkan semua record dari tabel ”Persons” (tabel pertama) baik yang
memiliki maupun tidak memliki pasangan dengan tabel “Orders” (tabel kedua). Perintah SQL yang kita
gunakan adalah sebagai berikut:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT OUTER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Pada perintah diatas, kita akan menampilkan field “LastName” dan “FirstName” dari tabel
“Persons”, serta field “OrderNo” dari tabel “Orders”. Hasil dari perintah SQL tersebut adalah sebagai
berikut:
LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
Svendson Tove null

Nilai “null” pada result set diatas berarti “Svendson” tidak memiliki pasangan “OrderNo” pada
tabel “Orders”. Dengan kata lain, perintah diatas akan memunculkan semua record pada tabel “Persons”
tanpa terkecuali.

SQL RIGHT OUTER JOIN


Perintah ini adalah kebalikan dari perintah SQL Left Outer Join, dimana perintah SQL Right Outer
Join digunakan untuk menampilkan semua record pada tabel sebelah kanan (tabel kedua) walaupun
pada tabel tersebut tidak memiliki pasangan pada tabel sebelah kiri (tabel pertama). Berikut adalah
format penulisan perintah SQL Right Outer Join:
SELECT column_name(s)
FROM table_name1
RIGHT OUTER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

Misalnya kita memiliki dua buah tabel, yaitu tabel “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Kemudian tabel lainnya adalah tabel “Orders” yaitu sebagai berikut:


O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

Sekarang kita akan menampilkan semua record dari tabel ”Orders” (tabel kedua) baik yang
memiliki maupun tidak memliki pasangan dengan tabel “Persons” (tabel pertama). Perintah SQL yang
kita gunakan adalah sebagai berikut:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT OUTER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Pada perintah diatas, kita akan menampilkan field “LastName” dan “FirstName” dari tabel
“Persons”, serta field “OrderNo” dari tabel “Orders”. Hasil dari perintah SQL tersebut adalah sebagai
berikut:
LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
null null 34764
Nilai “null” pada result set diatas berarti OrderNo “34764” pada tabel “Orders” tidak memiliki
pasangan pada tabel “Persons”. Dengan kata lain, perintah diatas akan memunculkan semua record pada
tabel “Orders” tanpa terkecuali.
SQL FULL OUTER JOIN
Perintah ini digunakan untuk menampilkan semua record pada tabel sebelah kiri (tabel pertama)
dan semua record pada tabel sebelah kanan (tabel kedua) walaupun pada kedua tabel tersebut tidak
memiliki pasangan antara satu sama lainnya. Berikut adalah format penulisan perintah SQL Full Outer
Join:
SELECT column_name(s)
FROM table_name1
FULL OUTER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

Misalnya kita memiliki dua buah tabel, yaitu tabel “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Kemudian tabel lainnya adalah tabel “Orders” yaitu sebagai berikut:


O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

Sekarang kita akan menampilkan semua record dari kedua tabel tersebut baik yang memiliki
maupun tidak memliki pasangan antara satu dengan lainnya. Perintah SQL yang kita gunakan adalah
sebagai berikut:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL OUTER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Pada perintah diatas, kita akan menampilkan field “LastName” dan “FirstName” dari tabel
“Persons”, serta field “OrderNo” dari tabel “Orders”. Hasil dari perintah SQL tersebut adalah sebagai
berikut:
LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
Svendson Tove null
null null 34764

Nilai “null” pada result set diatas menunjukkan tidak adanya nilai pasangan antar tabel yang
direlasikan dengan perintah SQL Full Outer Join. Dengan kata lain, perintah diatas akan
memunculkan semua record pada tabel “Persons” dan tabel “Orders” tanpa terkecuali.

SQL UNION
SQL Union digunakan untuk menggabungkan result-set dari dua atau lebih pernyataan SELECT.
Perlu diperhatikan bahwa setiap pernyataan SELECT dalam UNION harus memiliki jumlah kolom yang
sama. Selain itu, kolom tersebut juga harus memiliki tipe data yang sama dan harus dalam urutan yang
sama. Berikut adalah format penulisan perintah SQL Union:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

Misalnya kita memiliki dua buah tabel, yaitu tabel “Employees_Norway” sebagai berikut:
E_ID E_Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

Kemudian tabel lainnya adalah tabel “Employees_USA” yaitu sebagai berikut:


E_ID E_Name
01 Turner, Sally
02 Kent, Clark
03 Svendson, Stephen
04 Scott, Stephen
Sekarang kita akan menampilkan daftar record yang berbeda dari kedua tabel tersebut. Perintah
SQL yang kita gunakan adalah sebagai berikut:
SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA

Pada perintah diatas, akan menampilkan record unik yang terdapat pada kolom “E_Name” dari
kedua tabel dalam satu result set. Hasil dari perintah SQL tersebut adalah sebagai berikut:
E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen

Catatan:
Pada contoh di atas kita memiliki dua karyawan dengan nama yang sama, dan hanya salah satu
dari daftar tersebut yang akan ditampilkanpada result set. Dengan kata lain, perintah UNION
memilih hanya nilai-nilai yang berbeda (unik). Sedangkan untuk menampilkan semua daftar pada
kedua tabel diatas dapat menggunakan perintah UNION ALL.

SQL UNION ALL


Perintah ini digunakan untuk menggabungkan result set dari dua atau lebih penyataan SELECT,
namun berbeda dengan perintah UNION, perintah UNION ALL akan menampilkan seluruh record terpilih
pada result set, walaupun record tersebut sudah ada. Dengan kata lain, perintah UNION ALL akan
menampilkan daftar record yang ganda pada result set.
Misalnya kita ambil contoh pada kedua tabel sebelumnya, dimana kita akan menggunakan
perintan UNION ALL sebagai berikut:
SELECT E_Name FROM Employees_Norway
UNION ALL
SELECT E_Name FROM Employees_USA

Perintah diatas akan menampilkan seluruh record yang terdapat pada kolom “E_Name” dari kedua
tabel dalam satu result set. Hasil dari perintah SQL tersebut adalah sebagai berikut:
E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Svendson, Stephen
Scott, Stephen

POST TEST:

Kembangkan perintah SQL Outer Join dan SQL Union terhadap tabel-tabel pada database Northwind.
SQL ADVANCED 1 (SQL TOP, SQL LIKE, SQL WILDCARD)
PRE TEST:
a. Sebut dan jelaskan operator yang dapat digunakan pada klausa WHERE yang telah dibahas pada
pertemuan sebelumnya!
b. Apa yang dimaksud dengan AND dan OR?
c. Apa yang Anda ketahui tentang SQL TOP, SQL LIKE, SQL WILDCARD?

TIU:
a. Mahasiswa mengerti tentang konsep dasar dari SQL TOP, SQL LIKE, dan SQL WILDCARD.
b. Mahasiswa mampu menggunakan dan mengembangkan penggunaan SQL TOP, SQL LIKE, dan SQL
WILDCARD dalam SQL.

SQL TOP
Klausa TOP digunakan untuk menentukan jumlah baris record yang akan ditampilkan pada result-
set. Klausa ini akan sangat berguna apabila kita bekerja dengan tabel yang memiliki jumlah record yang
sangat banyak. Misalnya pada sebuah tabel yang memiliki ribuan record, apabila kita menampilkan
semua record pada tabel tersebut ke dalam suatu result-set maka akan membutuhkan waktu yang cukup
lama untuk memprosesnya (tergantung pada spesifikasi komputer), karena jumlah record yang banyak
akan berpengaruh pada performance dari komputer. Berikut adalah format perintah klausa SQL TOP:
SELECT TOP number|percent column_name(s)
FROM table_name

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger

Untuk menampilkan dua record teratas dari tabel tersebut kita gunakan perintah SQL berikut:
SELECT TOP 2 * FROM Persons

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Selain untuk menampilkan jumlah record secara spesifik, kita juga dapat menampilkan record
dalam jumlah presentase. Contohnya 20% dari total 1000 baris record pada sebuah tabel adalah 200
record. Untuk menampilkan record dalam jumlah presentase tertentu, kita dapat menambahkan
keyword “percent” dibelakang nilai yang kita masukkan. Misalnya kita akan menampilkan 50% record
dari tabel “Persons”, maka perintah yang kita gunakan adalah sebagai berikut:
SELECT TOP 50 PERCENT FROM Persons

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Catatan:
Jumlah record yang ditampilkan dalam bentuk percent pada umumnya dibulatkan kebawah. Seperti
contoh diatas, 50% dari lima record adalah dua record.

SQL LIKE
Operator LIKE digunakan pada klausa WHERE untuk mencari sebuah pola pada suatu field. Format
untuk penulisan operator Like adalah sebagai berikut:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Sekarang kita akan menampilkan record dari tabel “Persons” dimana nilai pada field “City” diakhiri
dengan karakter “s”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE City LIKE '%s'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Sekarang kita akan menampilkan record dari tabel “Persons” dimana nilai pada field “City”
mengandung kata “tav”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE City LIKE '%tav%'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan menampilkan record dari tabel “Persons” dimana nilai pada field “City” TIDAK
mengandung kata “tav”, kita dapat menambahkan keyword “NOT” sebelum operator Like, perintah SQL
yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Catatan:
Tanda % adalah wildcard yang umum digunakan pada operator Like. Wildcard ini akan dibahas
berikutnya.

SQL WILDCARDS
SQL Wildcards digunakan untuk mengganti satu atau beberapa karakter yang kita gunakan sebagai
ekspresi pada klausa WHERE dengan operator LIKE. Berikut adalah wildcards yang dapat digunakan pada
perintah SQL:
Wildcard Keterangan
% Digunakan untuk mengganti beberapa karakter
_ Digunakan untuk mengganti tepat satu karakter
Digunakan untuk mengganti karakter yang terdapat pada daftar karakter
[charlist]
(charlist) yang dimasukkan.
Digunakan untuk mengganti karakter yang tidak terdapat pada daftar
[^charlist]
karakter (charlist) yang dimasukkan.

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan menampilkan record pada tabel “Persons” dimana nilai pada field “Address”
dimulai dengan karakter “sa”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE City LIKE 'sa%'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Sekarang kita akan menampilkan record pada tabel “Persons” dimana nilai pada field “City”
mengandung kata “nes”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE City LIKE '%nes%'
Sekarang kita akan menampilkan record pada tabel “Persons” dimana karakter pertama pada field
“City” dimulai dengan sembarang karakter, kemudian diikuti dengan kata “la”, perintah SQL yang kita
gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE FirstName LIKE '_la'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes

Selanjutnya, kita akan menampilkan record pada tabel “Persons” dimana nilai pada field
“LastName” memiliki pola: dimulai dengan karakter “S”, kemudian diikuti dengan sembarang karakter,
kemudian dilanjutkan dengan kata “end”, kemudian dilanjutkan kembali dengan sembarang karakter,
dan diakhiri dengan kata “on”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE LastName LIKE 'S_end_on'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

Selanjutnya, kita akan menampilkan record pada tabel “Persons” dimana nilai pada field
“LastName” dimulai dengan karakter “b” atau “s” atau “p”, perintah SQL yang kita gunakan adalah
sebagai berikut:
SELECT * FROM Persons
WHERE LastName LIKE '[bsp]%'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Sebaliknya apabila kita ingin menampilkan record pada tabel “Persons” dimana nilai pada field
“LastName” TIDAK dimulai dengan karakter “b” atau “s” atau “p”, perintah SQL yang kita gunakan adalah
sebagai berikut:
SELECT * FROM Persons
WHERE LastName LIKE '[^bsp]%'

atau

SELECT * FROM Persons


WHERE LastName NOT LIKE '[bsp]%'

Maka hasilnya adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes

POST TEST:
Kembangkan perintah-perintah SQL TOP, SQL LIKE, SQL WILDCARD terhadap tabel-tabel pada database
Northwind.
SQL ADVANCED 2 (IN, SQL SUB-QUERY, SQL BETWEEN, dan SQL ALIAS)
PRE TEST:
a. Jelaskan fungsi klausa WHERE!
b. Jelaskan operator-operator yang digunakan pada klausa WHERE!
c. Apa yang Anda ketahui tentang SQL IN, SQL SUB-QUERY, SQL BETWEEN, dan SQL ALIAS?

TIU:
a. Mahasiswa mengerti tentang konsep dasar dari SQL IN, SQL SUB-QUERY, SQL BETWEEN, dan SQL
ALIAS.
b. Mahasiswa mampu menggunakan dan mengembangkan penggunaan SQL IN, SQL SUB-QUERY, SQL
BETWEEN, dan SQL ALIAS dalam SQL.

SQL IN

Operator In dapat digunakan untuk memasukkan beberapa nilai sekaligus pada klausa WHERE.
Nilai-nilai tersebut dibuat dalam suatu tanda kurung () dan setiap nilai dipisahkan dengan tanda koma (,).
Format untuk penulisan operator In adalah sebagai berikut:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value-1,value-2,..., value-n)

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan menampilkan data dari tabel “Persons” dimana field “LastName” memiliki nilai
“Hansen” atau “Pettersen”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen')

Perintah SQL diatas juga dapat dibuat sebagai berikut:


SELECT * FROM Persons
WHERE LastName = 'Hansen' Or LastName = 'Pettersen')

Hasil dari kedua perintah diatas adalah sebagai berikut:


P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sedangkan untuk menampilkan data dari tabel “Persons” dimana pada field “LastName” TIDAK
bernilai “Hansen” atau “Pettersen”, kita dapat menggunakan perintah SQL berikut:
SELECT * FROM Persons
WHERE LastName NOT IN ('Hansen','Pettersen')

Hasil dari perintah diatas adalah sebagai berikut:


P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

Tips:
Kita dapat memasukkan nilai yang dinamis pada klausa WHERE dengan menggunakan operator In
dan memanfatkan SQL Subquery yang akan dibahas berikutnya.

SQL SUB-QUERY
Operator IN yang sebelumnya telah kita bahas akan menjadi sangat bermanfaat apabila kita
menggunakannya dalam subquery. Secara umum subquery dapat diartikan sebagai suatu perintah SQL
yang berada dalam perintah SQL lainnya. Keuntungannya adalah kita dapat membuat suatu query yang
dinamis, seperti perintah SELECT dengan mengambil nilai pada klausa WHERE dari perintah SELECT
lainnya.
Misalnya kita memiliki dua buah tabel, yaitu tabel “Individual” dan tabel “Publisher” sebagai
berikut:
Tabel “Individual”
IndividualId FirstName LastName UserName
1 Fred Flinstone freddo
2 Homer Simpson homey
3 Homer Brown notsofamous
4 Ozzy Ozzbourne sabbath
5 Homer Gain noplacelike

Tabel “Publisher”
IndividualId AccessLevel
1 Administrator
2 Contributor
3 Contributor
4 Contributor

Sekarang kita akan menampilkan semua data dari tabel “Individual” yang memiliki “AccessLevel”
yaitu sebagai “Contributor”, maka perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Individual
WHERE IndividualId IN (SELECT IndividualId
FROM Publisher WHERE AccessLevel = 'Contributor')

Hasil dari perintah SQL diatas adalah sebagai berikut:


IndividualId FirstName LastName UserName
2 Homer Simpson homey
3 Homer Brown notsofamous
4 Ozzy Ozzbourne sabbath

SQL BETWEEN
Operator BETWEEN digunakan pada klausa WHERE untuk menampilkan data dalam jangkauan
antara dua nilai. Nilai-nilai yang dimasukkan sebagai jangkauan dapat berupa angka ataupun tanggal.
Format penulisan operator Between adalah sebagai berikut:
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

Misalnya kita memiliki sebuah tabel dengan nama “Orders” sebagai berikut:
OrderId CustomerId EmployeeId OrderDate ShipName
1997-01-14
10414 FAMIA 2 Familia Arquibaldo
00:00:00.000
1997-01-17
10418 QUICK 4 QUICK-Stop
00:00:00.000
1997-01-22
10422 FRANS 2 Franchi S.p.A.
00:00:00.000
1997-02-14
10447 RICAR 4 Ricardo Adocicados
00:00:00.000
1997-02-19
10451 QUICK 4 QUICK-Stop
00:00:00.000

Sekarang kita akan menampilkan data dari tebel “Orders” dimana nilai pada field “OrderId” ada
diantara nilai 10410 sampai 10430, maka perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Orders
WHERE OrderID BETWEEN 10410 AND 10430

Hasil dari perintah SQL diatas adalah sebagai berikut:


OrderId CustomerId EmployeeId OrderDate ShipName
1997-01-14
10414 FAMIA 2 Familia Arquibaldo
00:00:00.000
1997-01-17
10418 QUICK 4 QUICK-Stop
00:00:00.000
1997-01-22
10422 FRANS 2 Franchi S.p.A.
00:00:00.000

Kemudian kita akan menampilkan data dari tabel “Orders” dimana field “OrderDate” bernilai
antara tanggal 1 Januari 1997 sampai dengan tanggal 31 Januari 1997, maka perintah SQL yang kita
gunakan adalah sebagai berikut:
SELECT * FROM Orders
WHERE OrderDate BETWEEN '1997-02-01' AND '1997-02-20'

Hasil dari perintah SQL diatas adalah sebagai berikut:


OrderId CustomerId EmployeeId OrderDate ShipName
1997-02-14
10447 RICAR 4 Ricardo Adocicados
00:00:00.000
1997-02-19
10451 QUICK 4 QUICK-Stop
00:00:00.000

Sebaliknya apabila kita ingin menampilkan record pada tabel “Orders” dimana nilai pada field
“OrderDate” TIDAK bernilai tanggal 1 Januari 1997 sampai dengan tanggal 31 Januari 1997, maka
perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT * FROM Orders
WHERE OrderDate NOT BETWEEN '1997-02-01' AND '1997-02-20'

Hasil dari perintah SQL diatas adalah sebagai berikut:


OrderId CustomerId EmployeeId OrderDate ShipName
1997-01-14
10414 FAMIA 2 Familia Arquibaldo
00:00:00.000
1997-01-17
10418 QUICK 4 QUICK-Stop
00:00:00.000
1997-01-22
10422 FRANS 2 Franchi S.p.A.
00:00:00.000

SQL ALIAS
SQL ALIAS digunakan untuk memberi nama alias pada tabel atau field yang kita inginkan. Hal ini
akan dapat membantu kita dalam menuliskan dan mengenali tabel atau field yang memiliki nama terlalu
panjang dan kompleks. Kita bebas untuk menggunakan nama alias yang kita inginkan, namun karena
fungsinya adalah untuk menyederhanakan nama suatu tabel atau field, maka pada umumnya nama alias
dibuat dengan format yang cukup singkat dan jelas. Format penulisan SQL Alias adalah sebagai berikut:
SQL Alias untuk suatu tabel:
SELECT column_name(s)
FROM table_name
AS alias_name

SQL Alias untuk suatu field:


SELECT column_name AS alias_name
FROM table_name

Misalnya kita memiliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Kita dapat memberikan nama alias untuk tabel “Persons” tersebut dengan perintah SQL sebagai
berikut:
SELECT p.LastName, p.FirstName
FROM Persons AS p
WHERE p.LastName='Hansen' AND p.FirstName='Ola'

Ketika perintah SQL tersebut dijalankan, tabel “Persons” akan dikenali dengan nama “p”, jadi pada
saat kita akan menampilkan field dari tabel tersebut, kita juga harus mendeklarasikan “p” sebelum
mengetikkan nama field (p.LastName, p.FirstName). Namun perlu diperhatikan bahwa
perintah diatas tidak merubah nama dari tabel “Persons” menjadi “p”, tapi hanya membuat nama
pengenal baru utnuk tabel tersebut.

Sekarang kita akan membuat nama alias untuk field yang ada pada tabel “ Persons” dengan
menggunakan perintah SQL sebagai berikut:
SELECT LastName AS L_Nm, FirstName AS F_Nm
FROM Persons

Hasil dari perintah SQL diatas adalah sebagai berikut:


L_Nm F_Nm
Hansen Ola
Svendson Tove
Pettersen Kari

Nama field “LastName” dan “FirstName” hasil perintah SQL tersebut dikenali sebagai “L_Nm” dan
“F_Nm”. Namun pada struktur tabelnya, nama kedua field tersebut TIDAK berubah.

POST TEST:
Kembangkan perintah SQL IN, SQL SUB-QUERY, SQL BETWEEN, SQL ALIAS terhadap tabel-tabel pada
database Northwind.
SQL ADVANCED 3 (SELECT INTO & SQL DATES)
PRE TEST:
a. Apa yang dimaksud dengan backup (table).
b. Jelaskan tentnag perintah SQL SELECT.
c. Jelaskan tentang perintah SQL INSERT INTO.
d. Jelaskan tentang tipe data DateTime pada SQL.

TIU:
a. Mahasiswa mengerti tentang konsep dasar Backup / menyalin tabel pada SQL dengan menggunakan
perintah SELECT INTO.
b. Mahasiswa mampu menggunakan dan mengembangkan penggunaan perintah SELECT INTO.
c. Mahasiswa mengerti tentang konsep dasar dari SQL Dates.
d. Mahasiswa mampu menggunakan dan mengembangkan fungsi-fungsi SQL Dates (GETDATE,
DATEPART, DATEADD, DATEDIFF).

SQL SELECT INTO


Perintah ini digunakan untuk memilih suatu record pada sebuah tabel, kemudian menyimpan
record terpilih tersebut kedalam suatu tabel baru. Pada umumnya perintah ini digunakan untuk
membuat salinan atau cadangan suatu tabeL. Berikut adalah format penulisan perintah SQL Select Into:
SELECT *
INTO new_table_name
FROM old_tablename

ATAU

SELECT column_name(s)
INTO new_table_name
FROM old_tablename

Misalnya kita memIliki sebuah tabel dengan nama “Persons” sebagai berikut:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Sekarang kita akan membuat salinan dari tabel tersebut dengan nama tabel “Persons_Backup”,
maka perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT *
INTO Persons_Backup
FROM Persons

Untuk membuat salinan tabel “Persons” dengan memilih beberapa kolom saja, kita dapat
menggunakan perintah SQL berikut:
SELECT LastName,FirstName
INTO Persons_Backup2
FROM Persons

Untuk membuat salinan tabel “Persons” dengan memilih record dengan kriteria tertentu, kita
dapat menambahkan klausa “WHERE” pada perintah SQL Select Into, seperti berikut:
SELECT LastName,FirstName
INTO Persons_Backup3
FROM Persons
WHERE City = 'Sandnes'

SQL DATES
Salah satu bagian tersulit dalam bekerja dengan tipe data “date” adalah memastikan apakah
format tanggal yang akan kita masukkan sudah sesuai dengan format kolom/field pada database atau
belum. Berikut adalah beberapa fungsi SQL Dates yang umum digunakan:

SQL GETDATE Function


Digunakan untuk mendapatkan tanggal dan waktu dari server. Syntax SQL untuk fungsi GETDATE()
adalah sebagai berikut:
GETDATE()

Contoh penggunaan fungsi GETDATE() adalah:


SELECT GETDATE() AS CurrentDateTime
Perintah diatas akan menampilkan sebuah result-set dengan record berupa tanggal dan waktu
(dengan format sampai millisecond) dari server, yaitu sebagai berikut:
CurrentDateTi
me
2008-11-11
12:45:34.243

SQL DATEPART Function


Digunakan untuk mengembalikan satu bagian dari tanggal atau waktu, seperti tahun, bulan, hari,
jam, menit, dll. Syntax SQL untuk fungsi DATEPART() adalah sebagai berikut:

DATEPART(datepart,date)

DatePart Format
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw, w
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns

Misalnya kita memiliki sebuah tabel sebagai berikut:


OrderId ProductName OrderDate
1 Jarlsberg Cheese 2008-11-11 13:23:44.657

Sekarang kita akan menampilkan tahun, bulan, dan tanggal dari kolom “OrderDate” pada result-
set dari tabel diatas. Perintah SQL yang kita gunakan adalah sebagi berikut:
SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay,
FROM Orders
WHERE OrderId=1

Perintah SQL diatas akan menghasilkan suatu result-set berupa tahun, bulan, dan tanggal yang
diambil dari kolom “OrderDate”, yaitu sebagi berikut:
OrderDa
OrderYear OrderMonth
y
2008 11 11

SQL DATEADD Function


Digunakan untuk menambah atau mengurangi interval pada waktu tertentu dari suatu tanggal.
Syntax SQL untuk fungsi DATEADD() adalah sebagai berikut:
DATEADD(datepart,number,date)

Number adalah nilai interval yang digunakan untuk menambahkan atau mengurangi nilai
datepart. Nilai positif untuk menambahkan nilai, sedangkan nilai negatif untuk mengurangi nilai.

DatePart Format
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw, w
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns

Misalnya kita memiliki sebuah tabel sebagai berikut:


OrderId ProductName OrderDate
1 Jarlsberg Cheese 2008-11-11 13:23:44.657
Sekarang kita akan menambahkan nilai interval 45 hari pada record di kolom “OrderDate”, maka
perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT OrderId,DATEADD(day,45,OrderDate) AS OrderPayDate
FROM Orders

Perintah SQL diatas akan mengahasilkan result-set sebagai berikut:


OrderId OrderPayDate
2008-11-11 2008-12-26
12:45:34.243 13:23:44.657

SQL DATEDIFF Function


Digunakan untuk mendapatkan selisih interval waktu antara dua buah tanggal. Syntax SQL untuk
fungsi DATEDIFF() adalah sebagai berikut:
DATEDIFF(datepart,startdate,enddate)

Startdate adalah tanggal awal, sedangkan Enddate adalah tanggal akhir yang akan dicari selisih
waktunya.
Misalnya kita akan mencari selisih hari dari dua buah tanggal dapat dengan menggunakan
perintah SQL sebagai berikut:
SELECT DATEDIFF(day,'2008-06-05','2008-08-05') AS DiffDate

Perintah diatas akan menghasilkan result-set yang akan menampilkan selisih hari dari tanggal 5
Juni 2008 dan 5 Agustus 2008, yaitu sebagai berikut:
DiffDate
61

Perhatikan perintah SQL berikut:


SELECT DATEDIFF(day,'2008-08-05','2008-06-05') AS DiffDate

Pada perintah diatas nilai tanggal pertama (startdate) lebih awal dibandingkan dengan tanggal
kedua (enddate), sehingga result-set dari perintah tersebut akan menghasilkan nilai negatif.
DiffDate
-61
POST TEST:
Kembangkan perintah SQL Insert Into dan fungsi-fungsi SQL Dates terhadap tabel-tabel yang terdapat
pada Database Northwind.
SQL BUILT IN FUNCTIONS (AVG, COUNT, MAX, MIN, SUM, UPPER, LOWER,
SUBSTRING, LEFT, RIGHT, LEN)
PRE TEST:
a. Sebut dan jelaskan beberapa contoh SQL Functions yang Anda ketahui!
b. Apa yang dimaksud dengan SQl Agregate function?
c. Apa yang dimaksud dengan SQl Scalar function?
d. Kenali SQL Function berikut: AVG, COUNT, MAX, MIN, SUM, UPPER, LOWER, SUBSTRING, LEFT,
RIGHT, dan LEN.

TIU:
a. Mahasiswa mengerti tentang konsep dasar SQL Built In Function.
b. Mahasiswa mampu mengenali jenis-jenis dari SQL Built In Function.
c. Mahasiswa mampu menggunakan dan mengembangkan penggunaan perintah SQL Built In
Function.

SQL memiliki banyak fungsi built-in untuk melakukan perhitungan pada data, fungsi-fungsi
tersebut dibagi menjadi dua bagian, yaitu fungsi agregat (aggregate) dan fungsi skalar (scalar). Fungsi
agregat SQL mengembalikan nilai tunggal, dihitung dari nilai-nilai dalam kolom, sedangkan fungsi skalar
SQL mengembalikan nilai tunggal, berdasarkan pada nilai masukan. Berikut akan dibahas beberapa
fungsi agregat dan scalar yang umum digunakan pada SQL.

SQL AVG Function


Digunakan untuk mendapatkan nilai rata-rata (average) dari suatu kolom bertipe numerik. Syntax
SQL untuk fungsi AVG() adalah sebagai berikut:
SELECT AVG(column_name) FROM table_name

Misalkan kita memiliki sebuah tabel dengan nama tabel “Orders” sebagai berikut:
O_I OrderPric
OrderDate Customer
d e
2008/11/1
1 1000 Hansen
2
2008/10/2
2 1600 Nilsen
3
2008/09/0
3 700 Hansen
2
2008/09/0
4 300 Hansen
3
2008/08/3
5 2000 Jensen
0
2008/10/0
6 100 Nilsen
4

Sekarang kita akan menampilkan nilai rata-rata dari kolom OrderPrice dari tabel diatas, perintah
SQL yang kita gunakan adalah sebagai berikut:
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders

Perintah diatas akan menghasilkan result-set sebagai berikut:


OrderAverage
950

Kita juga dapat menggunakan nilai result-set dari hasil fungsi AVG() sebagai kriteria pada suatu
perintah SQL Select, contohnya:
SELECT * FROM Orders
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)

Perintah diatas akan menghasilkan suatu result-set yang menampilkan daftar Orders yang memiliki
nilai OrderPrice diatas nilai rata-rata (average) yaitu 950.
O_I OrderPric
OrderDate Customer
d e
2008/11/1
1 1000 Hansen
2
2008/10/2
2 1600 Nilsen
3
2008/08/3
5 2000 Jensen
0

SQL COUNT Function


Digunakan untuk menampilkan jumlah baris yang cocok dengan kriteria tertentu pada perintah
SQL Select. SQL Count dibagi menjadi 3 (tiga) perintah dasar, yaitu:
Perintah SQL Count yang digunakan untuk menghitung seluruh baris yang ada ada suatu tabel:
SELECT COUNT(*) FROM table_name

Perintah SQL Count yang digunakan untuk menghitung baris pada suatu kolom dalam sebuah tabel
(Nilai Null pada kolom tersebut tidak akan ikut dihitung):
SELECT COUNT(column_name) FROM table_name

Perintah SQL Count diatas digunakan untuk menghitung jumlah baris pada suatu kolom dengan
nilai yang unik. Dengan kata lain, apabila pada kolom tersebut terdapat lebih dari satu nilai record yang
sama, maka hanya akan tetap dihitung satu kali saja:
SELECT COUNT(DISTINCT column_name) FROM table_name

Misalnya kita memiliki sebuah tabel dengan nama “Orders” yaitu sebagai berikut:
O_I OrderDate OrderPric Customer
d e
1 2008/11/1 1000 Hansen
2
2 2008/10/2 1600 Nilsen
3
3 2008/09/0 700 Hansen
2
4 2008/09/0 300 Hansen
3
5 2008/08/3 2000 Jensen
0
6 2008/10/0 100 Nilsen
4

Sekarang kita akan menghitung jumlah baris pada tabel tersebut, perintah SQL yang kita gunakan
adalah sebagai berikut:
SELECT COUNT(*) AS NumberOfOrders FROM Orders

Result-set dari perintah diatas adalah sebagai berikut:


NumberOfOrders
6
Sekarang kita akan menghitung jumlah baris dari tabel diatas dimana nilai pada kolom “Customer”
adalah “Nilsen”, perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Nilsen'

Hasil dari perintah diatas adalah sebuah result set yang menghasilkan nilai 2, hal tersebut
dikarenakan pada tabel “Orders” hanya terdapat 2 buah record yang nilai pada kolom “Customer”
adalah “Nilsen”, yaitu sebagai barikut:
CustomerNilsen
2

Sekarang kita akan menghitung jumlah Customer yang unik dari tabel "Orders", perintah SQL yang
kita gunakan adalah sebagai berikut:
SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM
Orders

Result-set dari perintah diatas adalah sebagai berikut:


NumberOfCusto
mers
3

SQL MAX Function


Digunakan untuk mencari nilai tertinggi pada suatu kolom. Syntax SQL untuk fungsi Max() adalah
sebagai berikut:
SELECT MAX(column_name) FROM table_name

Misalkan kita memiliki sebuah tabel dengan nama tebel “Orders”, yaitu sebagai berikut:
O_Id OrderDate OrderPrice Customer
1 2008/11/12 1000 Hansen
2 2008/10/23 1600 Nilsen
3 2008/09/02 700 Hansen
4 2008/09/03 300 Hansen
5 2008/08/30 2000 Jensen
6 2008/10/04 100 Nilsen
Sekarang kita akan menampilkan nilai tertinggi pada kolom “OrderPrice” dari tabel diatas,
perintah SQL yang kita gunakan adalah sebagi berikut:
SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders

Result-set dari perintah SQL diatas adalah sebagai berikut:


LargestOrderPrice
2000

SQL MIN Function


Digunakan untuk mencari nilai terendah pada suatu kolom. Syntax SQL untuk fungsi Min() adalah
sebagai berikut:
SELECT MIN(column_name) FROM table_name

Misalkan kita memiliki sebuah tabel dengan nama “Orders”, yaitu sebagai berikut:
O_Id OrderDate OrderPrice Customer
1 2008/11/12 1000 Hansen
2 2008/10/23 1600 Nilsen
3 2008/09/02 700 Hansen
4 2008/09/03 300 Hansen
5 2008/08/30 2000 Jensen
6 2008/10/04 100 Nilsen

Sekarang kita akan menampilkan nilai terendah pada kolom OrderPrice dari tabel diatas, perintah
SQL yang kita gunakan adalah sebagi berikut:
SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders

Result-set dari perintah SQL diatas adalah sebagai berikut:


SmallestOrderPrice
100

SQL SUM Function


Digunakan untuk mendapatkan nilai jumlah total nilai (Summary) dari suatu kolom yang bertipe
numerik. Syntax SQL untuk fungsi Sum() adalah sebagai berikut:
SELECT SUM(column_name) FROM table_name

Misalkan kita memiliki sebuah tabel dengan nama tebel “Orders”, yaitu sebagai berikut:
O_Id OrderDate OrderPrice Customer
1 2008/11/12 1000 Hansen
2 2008/10/23 1600 Nilsen
3 2008/09/02 700 Hansen
4 2008/09/03 300 Hansen
5 2008/08/30 2000 Jensen
6 2008/10/04 100 Nilsen

Sekarang kita akan menampilkan total nilai dari kolom “OrderPrice” pada tabel diatas, perintah
SQL yang kita gunakan adalah sebagai berikut:
SELECT SUM(OrderPrice) AS OrderTotal FROM Orders

Result-set dari perintah diatas adalah sebagai berikut:


OrderTotal
5700

SQL UPPER Function


Digunakan untuk mengubah nilai result-set menjadi huruf besar atau kapital (uppercase). Syntax
SQL untuk fungsi Upper() adalah sebagai berikut:
SELECT UPPER(column_name) FROM table_name

Misalkan kita memiliki sebuah tabel dengan nama “Persons”, yaitu sebagai berikut:
P_I LastNam FirstName Address City
d e
1 Hansen Ola Timoteivn Sandnes
10
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan menampilkan isi dari kolom "LastName" dan "FirstName" di atas, dan
mengubah nilai dari kolom "LastName" ke huruf besar (uppercase), perintah SQL yang kita gunakan
adalah sebagai berikut:
SELECT UPPER(LastName) as LastName,FirstName FROM Persons

Result-set dari perintah SQL diatas adalah sebagai berikut:


LastName FirstName
HANSEN Ola
SVENDSON Tove
PETTERSEN Kari

SQL LOWER Function


Digunakan untuk mengubah nilai result-set menjadi huruf kecil (lowercase). Syntax SQL untuk
fungsi LOWER() adalah sebagai berikut:
SELECT LOWER(column_name) FROM table_name

Misalkan kita memiliki sebuah tabel dengan nama “Persons”, yaitu sebagai berikut:
P_I LastNam FirstName Address City
d e
1 Hansen Ola Timoteivn Sandnes
10
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan menampilkan isi dari kolom "LastName" dan "FirstName" pada tabel di atas,
dan mengubah nilai dari kolom "LastName" ke huruf kecil (lowercase), perintah SQL yang kita gunakan
adalah sebagai berikut:
SELECT LOWER(LastName) as LastName,FirstName FROM Persons

Result-set dari perintah SQL diatas adalah sebagai berikut:


LastName FirstName
hansen Ola
svendson Tove
pettersen Kari
SQL SUBSTRING Function
Digunakan untuk mengambil sejumlah karakter dari suatu record pada kolom. Syntax SQL untuk
fungsi SUBSTRING() adalah sebagai berikut:
SELECT SUBSTRING(column_name, start, length) FROM table_name

Colum_name adalah nama kolom pada tabel yang akan diambil nilainya. Start adalah posisi
karakter pertama yang akan diambil. Length adalah jumlah atau panjang karakter yang akan ditampilkan.
Misalkan kita memiliki sebuah tabel dengan nama “Persons”, yaitu sebagai berikut:
P_I LastNam FirstName Address City
d e
1 Hansen Ola Timoteivn Sandnes
10
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita ingin menampilkan 4 (empat) karakter pertama dari kolom “City” pada tabel di atas,
perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT SUBSTRING(City,1,4) as SmallCity FROM Persons

Result-set dari perintah SQL diatas adalah sebagai berikut:


SmallCity
Sand
Sand
Stav

SQL LEFT Function


Digunakan untuk mengambil atau menampilkan suatu karakter pada suatu kolom yang dimulai
dari sisi kiri. Syntax SQL untuk fungsi LEFT() adalah sebagai berikut:
SELECT LEFT(column_name, length) FROM table_name

Colum_name adalah nama kolom pada tabel yang akan diambil nilainya. Length adalah panjang
atau jumlah karakter yang akan ditampilkan.
Misalkan kita memiliki sebuah tabel dengan nama “Persons”, yaitu sebagai berikut:
P_I LastNam FirstName Address City
d e
1 Hansen Ola Timoteivn Sandnes
10
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan menampilkan 5 (lima) karakter pertama pada kolom “LastName”, perintah SQL
yang kita gunakan adalah sebagai berikut:
SELECT LEFT(LastName, 5)as LastNameLeft FROM Persons

Result-set dari perintah SQL diatas adalah sebagai berikut:


LastNameLeft
Hanse
Svend
Pette

SQL RIGHT Function


Digunakan untuk mengambil atau menampilkan suatu karakter pada suatu kolom yang dimulai
dari sisi kanan. Syntax SQL untuk fungsi RIGHT() adalah sebagai berikut:
SELECT RIGHT(column_name, length) FROM table_name

Colum_name adalah nama kolom pada tabel yang akan diambil nilainya. Length adalah panjang
atau jumlah karakter yang akan ditampilkan.
Misalkan kita memiliki sebuah tabel dengan nama “Persons”, yaitu sebagai berikut:
P_I LastNam FirstName Address City
d e
1 Hansen Ola Timoteivn Sandnes
10
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita akan menampilkan 5 (lima) karakter terakhir pada kolom “LastName”, perintah SQL
yang kita gunakan adalah sebagai berikut:
SELECT RIGHT(LastName, 5)as LastNameRight FROM Persons

Result-set dari perintah SQL diatas adalah sebagai berikut:


LastNameRight
ansen
ndson
ersen

SQL LEN Function


Digunakan untuk mencari panjang suatu karakter pada suatu kolom dalam tabel. Syntax SQL untuk
fungsi LEN() adalah sebagai berikut:
SELECT LEN(column_name) FROM table_name

Misalkan kita memiliki sebuah tabel dengan nama “Persons”, yaitu sebagai berikut:
P_I LastNam FirstName Address City
d e
1 Hansen Ola Timoteivn Sandnes
10
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Sekarang kita ingin menampilkan jumlah karakter dari kolom “Address” pada tabel di atas,
perintah SQL yang kita gunakan adalah sebagai berikut:
SELECT LEN(Address) as LengthOfAddress FROM Persons

Result-set dari perintah SQL diatas adalah sebagai berikut:


LengthOfAddres
s
12
9
9

POST TEST:
Kembangkan perintah SQL Built In Functions terhadap tabel-tabel yang ada pada database Northwind.

You might also like