MANIPULASI DATA SQL
Manipulasi Data SQL
A. Objectives of SQL
- SQL adalah transform-oriented language, bahasa yang didesain untuk
menggunakan relation untuk mengubah input menjadi output yang dibutuhkan
- Mempunyai 2 komponen utama
o DDL untuk mendefinisikan struktur database
o DML untuk membetulkan dan mengupdate data
- SQL lumayan mudah untuk dipelajari
o Merupakan non-prosedur, dimana kamu menspesifikasikan informasi apa
yang kamu butuhkan dibandingkan dengan bagaimana cara
mendapatkannya.
o Memiliki format yang bebas secara esensial
- Terdiri dari bahasa Inggris standar
o CREATE TABLE …;
o INSERT INTO … VALUES(…);
o SELECT … FROM … WHERE …;
- Bisa digunakan oleh semua pengguna
- Sebuah standar ISO saat ini sudah ada untuk SQL, membuat keduanya formal
dan bahasa standar secara de facto untuk relational database
B. Menulis perintah SQL
- Pernyataan SQL terdiri atas reserved word dan user-defined word
- Reserved word merupakan bagian yang sudah ada di dalam SQL dan harus
ditulis sesuai dengan yang dibutuhkan dan tidak dapat dijadikan variabel.
- User defined word merupakan kata yang dibuat oleh pengguna dan
merepresentasikan nama dari objek database seperti relation, kolom, dan view
- Semua komponen dalam SQL Statement adalah case insensitive (besar kecilnya
huruf tidak berpengaruh) , kecuali untuk karakter data literal
o Contoh: Saat mencari kata ‘SMITH’, data tidak menampilkan kata
‘Smith’
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
C. Literal
- Literal adalah pernyataan yang sering digunakan di SQL
- Semua literal non numerik harus menggunakan kutipan ( Contoh: ‘London’)
- Semua literal numeric tidak menggunakan kutipan (Contoh :650.00)
D. Select Statement
SELECT[DISTINCT|ALL]
{*| [columnExpression[AS newName]] [ , …]}
FROM TableName [alias] [ , …]
[WHERE condition]
[GROUP BY columList] [HAVING condition]
[ORDER BY columnList]
Penjelasan:
FROM : menjelaskan tabel yang akan digunakan
WHERE : menjelaskan kondisi
GROUP BY : membentuk kelompok baris dengan nilai kolom yang sama
HAVING : menyaring subjek kelompok ke beberapa kondisi
SELECT : menjelaskan kolom mana yang akan ditampilkan dalam output
ORDER BY : menjelaskan perintah output
o Urutan pada klausa tidak bisa diubah
o Hanya SELECT dan FROM yang merupakan perintah yang harus ada
E. CONTOH
- Semua Kolom dan Semua baris
SELECT staffNo, fName, lName, position, sex, DOB, salary, branchNo ( bisa
diganti dengan * sehingga menjadi SELECT *)
FROM Staff;
OUTPUT
- Kolom Tertentu dan Semua baris
Misal kita hanya ingin menampilkan
staffNo,fName,lName, dan salary
SELECT staffNo, fName, lName,
salary,
FROM Staff;
- Menggunakan DISTINCT
Kegunaan DISTINCT adalah untuk menghapus
duplikasi
SELECT DISTINCT position
FROM Staff
- Menghitung Fields
Menampilkan daftar gaji bulanan staff dan
hanya menampilkan staffNo, fName,
lName dan salary.
SELECT staffNo, fName,lName,
salary/12
FROM Staff
Untuk mengubah nama kolom pada salary
SELECT staffNo, fName,lName, salary/12
AS monthlySalary
Position
Manager
Assisstant
Supervisor
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
FROM Staff
- Membandingkan Hasil Pencarian
o Daftar staff dengan gaji lebih dari 10000
SELECT staffNo, fName, lName, position, salary
FROM Staff
WHERE salary>10000
OUTPUT
o Daftar kantor cabang yang berada di London atau Glassgow
SELECT *
From Branch
WHERE city= ‘London’ OR city= ‘Glasgow’;
OUTPUT
o Daftar staff dengan gaji antara 20000 sampai 30000
SELECT staffNo,fName,lName,position,salary
FROM Staff
WHERE salary BETWEEN 20000 AND 30000;
OUTPUT
Cara lain :
SELECT staffNo,fName,lName,position,salary
FROM Staff
WHERE salary >= 20000 AND salary<=30000;
Pernyataan BETWEEN juga memiliki negasi yaitu NOT BETWEEN
- Mengatur Anggota
Daftar manager dan supervisor
SELECT
staffNo,fName,lName,position
FROM Staff
WHERE position IN (‘Manager’,
‘Supervisor’);
Versi negatif dari IN adalah NOT IN
Cara lain penulisan
SELECT staffNo,fName,lName,position
FROM Staff
WHERE position=‘Manager’ OR position= ‘Supervisor’;
Catatan : IN lebih efisien jika nilai yang dicari banyak.
- Mencocokan Pola pada Pencarian
Menemukan semua pemiliki yang memiliki kata ‘Glasgow’ pada kolom
alamatnya
SELECT ownerNo,fName,lName,address,telNo
FROM PrivateOwner
WHERE address LIKE ‘%Glasgow%’;
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Output
SQL mempunyai 2 simbol pencocokan pola khusus:
o % : rangkaian 0 atau lebih karakter
o _ : satu karakter
LIKE ‘%Glasgow%’ berarti karakter yang memiliki kata ‘Glasgow’
- Pencarian pada kondisi NULL
SELECT clientNo, viewDate
FROM Viewing
WHERE propertyNo= ‘PG4’ AND
comment IS NULL
- Single Column Ordering
Daftar gaji semua staff diurutkan dari
yang terbesar
SELECT staffNo, fName, lName, salary
FROM Staff
ORDER BY salary DESC;
- Standar ISO mempunyai 5 fungsi agregat
o COUNT : menghitung banyaknya nilai pada kolom yang dipilih
SELECT COUNT (*) AS myCount
FROM PropertyForRent
WHERE rent >350;
o SUM : menjumlahkan nilai pada kolom yang dipilih
Select SUM (salary)
FROM Staff
WHERE position= ‘Manager’;
o AVG : menghasilkan rata-rata pada kolom yang dipilih
SELECT AVG (salary)
FROM Staff;
o MIN : mencari nilai minimal pada kolom yang dipilih
SELECT MIN (salary)
FROM Staff;
o MAX : mencari nilai maksimal pada kolom yang dipilih
SELECT MAX (salary)
FROM Staff;
- Setiap operasi pada salah satu kolom dan menghasilkan sebuah nilai
- COUNT, MIN, MAX digunakan pada numeric dan non-numerik, tetapi SUM
dan AVG digunakan pada numeric saja
- Selain COUNT, setiap fungsi menghapus nilai null dahulu lalu menjalankan
operasinya
- Gunakan klausa GROUP BY untuk mendapatkan sub-total
- SELECT dan GROUP BY terintegrasi secara dekat : setiap item di daftar
SELECT harus bernilai satu per grup
- Jika WHERE digunakan dengan GROUP BY, WHERE ditulis terlebih dahulu
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- Contoh
SELECT branchNo, COUNT (staffNo)
AS myCount, SUM (salary) AS
mySum
FROM Staff
GROUP BY branchNo
ORDER BY branch No;
- Menggunakan Having
Untuk setiap cabang dengan member lebih dari 1 orang, temukan jumlah
staff di setiap cabang dan jumlahkan gajinya
SELECT branchNo, COUNT(staffNo) AS myCount, SUM(salary) AS
mySum
FROM Staff
GROUP BY branchNo
HAVING COUNT(staffNo) > 1
ORDER BY branchNo;
SQL Data Manipulation (2)
A. Objectives of SQL
- SQL adalah transform-oriented language, bahasa yang didesain untuk
menggunakan relation untuk mengubah input menjadi output yang dibutuhkan
- Mempunyai 2 komponen utama
o DDL untuk mendefinisikan struktur database
o DML untuk membetulkan dan mengupdate data
- SQL lumayan mudah untuk dipelajari
o Merupakan non-prosedur, dimana kamu menspesifikasikan informasi apa
yang kamu butuhkan dibandingkan dengan bagaimana cara
mendapatkannya.
o Memiliki format yang bebas secara esensial
- Terdiri dari bahasa Inggris standar
o CREATE TABLE …;
o INSERT INTO … VALUES(…);
o SELECT … FROM … WHERE …;
- Bisa digunakan oleh semua pengguna
- Sebuah standar ISO saat ini sudah ada untuk SQL, membuat keduanya formal
dan bahasa standar secara de facto untuk relational database
B. Menulis perintah SQL
- Pernyataan SQL terdiri atas reserved word dan user-defined word
- Reserved word merupakan bagian yang sudah ada di dalam SQL dan harus
ditulis sesuai dengan yang dibutuhkan dan tidak dapat dijadikan variabel.
- User defined word merupakan kata yang dibuat oleh pengguna dan
merepresentasikan nama dari objek database seperti relation, kolom, dan view
- Semua komponen dalam SQL Statement adalah case insensitive (besar kecilnya
huruf tidak berpengaruh) , kecuali untuk karakter data literal
o Contoh: Saat mencari kata ‘SMITH’, data tidak menampilkan kata
‘Smith’
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
C. Literal
- Literal adalah pernyataan yang sering digunakan di SQL
- Semua literal non numerik harus menggunakan kutipan ( Contoh: ‘London’)
- Semua literal numeric tidak menggunakan kutipan (Contoh :650.00)
D. Select Statement
SELECT[DISTINCT|ALL]
{*| [columnExpression[AS newName]] [ , …]}
FROM TableName [alias] [ , …]
[WHERE condition]
[GROUP BY columList] [HAVING condition]
[ORDER BY columnList]
Penjelasan:
FROM : menjelaskan tabel yang akan digunakan
WHERE : menjelaskan kondisi
GROUP BY : membentuk kelompok baris dengan nilai kolom yang sama
HAVING : menyaring subjek kelompok ke beberapa kondisi
SELECT : menjelaskan kolom mana yang akan ditampilkan dalam output
ORDER BY : menjelaskan perintah output
o Urutan pada klausa tidak bisa diubah
o Hanya SELECT dan FROM yang merupakan perintah yang harus ada
E. CONTOH
- Semua Kolom dan Semua baris
SELECT staffNo, fName, lName, position, sex, DOB, salary, branchNo ( bisa
diganti dengan * sehingga menjadi SELECT *)
FROM Staff;
OUTPUT
- Kolom Tertentu dan Semua baris
Misal kita hanya ingin menampilkan
staffNo,fName,lName, dan salary
SELECT staffNo, fName, lName,
salary,
FROM Staff;
- Menggunakan DISTINCT
Kegunaan DISTINCT adalah untuk menghapus
duplikasi
SELECT DISTINCT position
FROM Staff
- Menghitung Fields
Menampilkan daftar gaji bulanan staff dan
hanya menampilkan staffNo, fName,
lName dan salary.
SELECT staffNo, fName,lName,
salary/12
FROM Staff
Untuk mengubah nama kolom pada salary
SELECT staffNo, fName,lName, salary/12
AS monthlySalary
Position
Manager
Assisstant
Supervisor
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
FROM Staff
- Membandingkan Hasil Pencarian
o Daftar staff dengan gaji lebih dari 10000
SELECT staffNo, fName, lName, position, salary
FROM Staff
WHERE salary>10000
OUTPUT
o Daftar kantor cabang yang berada di London atau Glassgow
SELECT *
From Branch
WHERE city= ‘London’ OR city= ‘Glasgow’;
OUTPUT
o Daftar staff dengan gaji antara 20000 sampai 30000
SELECT staffNo,fName,lName,position,salary
FROM Staff
WHERE salary BETWEEN 20000 AND 30000;
OUTPUT
Cara lain :
SELECT staffNo,fName,lName,position,salary
FROM Staff
WHERE salary >= 20000 AND salary<=30000;
Pernyataan BETWEEN juga memiliki negasi yaitu NOT BETWEEN
- Mengatur Anggota
Daftar manager dan supervisor
SELECT
staffNo,fName,lName,position
FROM Staff
WHERE position IN (‘Manager’,
‘Supervisor’);
Versi negatif dari IN adalah NOT IN
Cara lain penulisan
SELECT staffNo,fName,lName,position
FROM Staff
WHERE position=‘Manager’ OR position= ‘Supervisor’;
Catatan : IN lebih efisien jika nilai yang dicari banyak.
- Mencocokan Pola pada Pencarian
Menemukan semua pemiliki yang memiliki kata ‘Glasgow’ pada kolom
alamatnya
SELECT ownerNo,fName,lName,address,telNo
FROM PrivateOwner
WHERE address LIKE ‘%Glasgow%’;
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Output
SQL mempunyai 2 simbol pencocokan pola khusus:
o % : rangkaian 0 atau lebih karakter
o _ : satu karakter
LIKE ‘%Glasgow%’ berarti karakter yang memiliki kata ‘Glasgow’
- Pencarian pada kondisi NULL
SELECT clientNo, viewDate
FROM Viewing
WHERE propertyNo= ‘PG4’ AND
comment IS NULL
- Single Column Ordering
Daftar gaji semua staff diurutkan dari
yang terbesar
SELECT staffNo, fName, lName, salary
FROM Staff
ORDER BY salary DESC;
- Standar ISO mempunyai 5 fungsi agregat
o COUNT : menghitung banyaknya nilai pada kolom yang dipilih
SELECT COUNT (*) AS myCount
FROM PropertyForRent
WHERE rent >350;
o SUM : menjumlahkan nilai pada kolom yang dipilih
Select SUM (salary)
FROM Staff
WHERE position= ‘Manager’;
o AVG : menghasilkan rata-rata pada kolom yang dipilih
SELECT AVG (salary)
FROM Staff;
o MIN : mencari nilai minimal pada kolom yang dipilih
SELECT MIN (salary)
FROM Staff;
o MAX : mencari nilai maksimal pada kolom yang dipilih
SELECT MAX (salary)
FROM Staff;
- Setiap operasi pada salah satu kolom dan menghasilkan sebuah nilai
- COUNT, MIN, MAX digunakan pada numeric dan non-numerik, tetapi SUM
dan AVG digunakan pada numeric saja
- Selain COUNT, setiap fungsi menghapus nilai null dahulu lalu menjalankan
operasinya
- Gunakan klausa GROUP BY untuk mendapatkan sub-total
- SELECT dan GROUP BY terintegrasi secara dekat : setiap item di daftar
SELECT harus bernilai satu per grup
- Jika WHERE digunakan dengan GROUP BY, WHERE ditulis terlebih dahulu
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- Contoh
SELECT branchNo, COUNT (staffNo)
AS myCount, SUM (salary) AS
mySum
FROM Staff
GROUP BY branchNo
ORDER BY branch No;
- Menggunakan Having
Untuk setiap cabang dengan member lebih dari 1 orang, temukan jumlah
staff di setiap cabang dan jumlahkan gajinya
SELECT branchNo, COUNT(staffNo) AS myCount, SUM(salary) AS
mySum
FROM Staff
GROUP BY branchNo
HAVING COUNT(staffNo) > 1
ORDER BY branchNo;
SQL Data Manipulation (2)
Komentar
Posting Komentar