# set up the connection and save it into the workspace#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~library(RMySQL)library(DBI)dhela <-dbConnect(RMySQL::MySQL(),dbname='new_mariadb',username='root',password='',host='localhost',port=3306)knitr::opts_chunk$set(connection ="dhela") #set up the connection
SELECT
SELECT digunakan untuk mengambil data dari tabel database yang
mengembalikan data ini dalam bentuk tabel hasil.
SELECT CustomerName, Address, City, CountryFROM CUSTOMERS;
DISTINCT berfungsi untuk menampilkan nilai yang berbeda.
Biasanya dalam tabel terdapat kolom yang memiliki nilai duplikat, kita
bisa menggunakan Distinct untuk menghilangkan nilai duplikat tersebut.
Cara menggunakan Distinct yaitu bersamaan dengan Select seperti syntax
di bawah ini :
SELECTDISTINCT CountryFROM customers;
Displaying records 1 - 10
Country
Germany
Mexico
UK
Sweden
France
Spain
Canada
Argentina
Switzerland
Brazil
WHERE
WHERE berfungsi untuk menyaring atau memfilter record.
Dengan kata lain, Where juga dipakai dalam menentukan kondisi ketika
bergabung dengan beberapa tabel atau mengambil data dari satu tabel.
Selain bersamaan dengan SELECT, Where juga bisa digunakan
bersamaan dengan UPDATE, DELETE, dan perintah dasar
SQL lainnya. Berikut ini syntax untuk memilih semua Customer dari negara
Mexico :
Untuk menggunakan WHERE, kita harus memahami operator-operator yang
digunakan dalam WHERE. Operator tersebut yaitu : 1. = (sama dengan)
2. > (lebih besar dari) 3. < (lebih kecil dari) 4.
>= (lebih besar sama dengan) 5. <= (lebih kecil sama dengan)
6. <> atau != (tidak sama) 7. IS NULL atau IS NOT NUL
(field tanpa nilai) 8. BETWEEN (antara range tertentu) 9. LIKE
(mencari pola) 10. IN (menentukan beberapa kemungkinan nilai untuk
kolom)
BETWEEN
BETWEEN berfungsi untuk memilih nilai dalam range tertentu.
nilai tersebut bisa berupa angka, teks, ataupun tanggal. Between bisa
digunakan bersamaan dengan SELECT, INSERT, UPDATE, atau DELETE.
Di bawah ini merupakan syntax Between menggunakan range angka :
SELECT*FROM ProductsWHERE PriceBETWEEN10AND20;
Displaying records 1 - 10
ProductID
ProductName
SupplierID
CategoryID
Unit
Price
1
Chais
1
1
10 boxes x 20 bags
18.00
2
Chang
1
1
24 - 12 oz bottles
19.00
3
Aniseed Syrup
1
2
12 - 550 ml bottles
10.00
15
Genen Shouyu
6
2
24 - 250 ml bottles
15.50
16
Pavlova
7
3
32 - 500 g boxes
17.45
21
Sir Rodney’s Scones
8
3
24 pkgs. x 4 pieces
10.00
25
NuNuCa Nuß-Nougat-Creme
11
3
20 - 450 g glasses
14.00
31
Gorgonzola Telino
14
4
12 - 100 g pkgs
12.50
34
Sasquatch Ale
16
1
24 - 12 oz bottles
14.00
35
Steeleye Stout
16
1
24 - 12 oz bottles
18.00
Di bawah ini merupakan syntax Between menggunakan range tanggal :
IN berfungsi untuk menentukan beberapa kemungkinan nilai untuk kolom.
Kita bisa gunakan IN bersamaan dengan WHERE jika ingin menggunakan lebih
dari 2 kondisi. Berikut ini syntax dengan memilih semua Customer yang
berlokasi di “Germany”, “France”, atau “UK” :
LIKE berfungsi untuk mencari pola yang spesifik pada kolom.
Like digunakan bersamaan dengan WHERE. Biasanya pada like, kita juga
menggunakan % (mewakili multi character) atau _ (mewakili single
character). Di bawah ini syntax dengan memilih semua Customer yang
CustomerName-nya dimulai dengan huruf “a” :
Penerapan % dan _ sebagai berikut : 1. WHERE CustomerName LIKE
‘a%’ (mencari nilai berawalan “a”) 2. WHERE CustomerName LIKE ‘%a’
(mencari nilai berakhiran “a”) 3. WHERE CustomerName LIKE ‘%or%’
(mencari nilai yang memiliki “or” di suatu posisi) 4. WHERE
CustomerName LIKE ‘r%’ (mencari nilai yang memiliki “r” di posisi
kedua) 5. WHERE CustomerName LIKE ’a%’ (mencari nilai
berawalan “a” dan setidaknya 2 karakter panjangnya) 6. WHERE
CustomerName LIKE ’a__%’ (mencari nilai berawalan “a” dan setidaknya 3
karakter panjangnya) 7. WHERE ContactName LIKE ‘a%o’
AND, OR and NOT
Argumen ini bisa dikombinasikan dengan argumen WHERE. - operasi
AND dimana akan terlihat hasilnya jika kedua data tersebut sama atau
bernilai TRUE dan akan eror jika ada salah satu yang tidak sama atau
bernilai FALSE. - operasi OR dimana akan terlihat hasilnya jika
salah satu data tersebut bernilai TRUE atau sesuai dengan kondisi yang
diingikan. - operasi NOT adalah operasi yang menampilkan hasil yang
bernilai FALSE.
Syntax di bawah ini memilih semua field dari “Customers” yang
negaranya adalah “Germany” dan kotanya “Berlin atau”München” :
ORDER BY berfungsi untuk mengurutkan data dari besar ke
kecil (z-a) atau bisa juga kecil ke besar (a-z) berdasarkan satu atau
lebih kolom. - DESC atau descending yaitu mengurutkan data dari
besar ke kecil. - ASC atau ascending yaitu mengurutkan data dari
kecil ke besar. - Akan tetapi jika kita tidak menggunakan keyword
DESC atau ASC maka data akan diurutkan otomatis dengan ASC.
LIMIT berfungsi untuk menentukan jumlah record yang akan
ditampilkan. Selain bersamaan dengan WHERE dan ORDER BY, LIMIT juga bisa
dipadukan dengan OFFSET.
SELECT CustomerName, Address, City, CountryFROM customersORDERBY City, Country DESCLIMIT3, 5;
5 records
CustomerName
Address
City
Country
Rattlesnake Canyon Grocery
2817 Milton Dr.
Albuquerque
USA
Old World Delicatessen
2743 Bering St.
Anchorage
USA
Old World Delicatessen
2743 Bering St.
Anchorage
USA
Vaffeljernet
Smagsløget 45
Ã…rhus
Denmark
Vaffeljernet
Smagsløget 45
Ã…rhus
Denmark
MIN and MAX
MIN dan MAX berfungsi untuk menentukan nilai
terkecil dan terbesar dalam bidang berdasakan pengelompokan yang
ditentukan.
syntax min untuk menentukan harga produk termurah:
SELECTMIN(Price) AS SmallestPriceFROM Products;
1 records
SmallestPrice
2.5
syntax max untuk menentukan harga produk terbesar:
SELECTMAX(Price) AS LargestPriceFROM Products;
1 records
LargestPrice
263.5
COUNT, SUM and AVG
COUNT berfungsi untuk menentukan jumlah baris yang cocok
dengan kriteria tertentu. SUM berfungsi untuk menjumlah total
kolom numerik. AVG berfungsi untuk menghitung nilai rata-rata
kolom numerik.
syntax count :
SELECTCOUNT(P.Price)FROM Products P;
1 records
COUNT(P.Price)
154
syntax sum :
SELECTSUM(P.Price)FROM Products P;
1 records
SUM(P.Price)
4445.42
syntax avg :
SELECTAVG(P.Price)FROM Products P;
1 records
AVG(P.Price)
28.86636
HAVING
HAVING digunakan sebagai pengganti WHERE dengan fungsi
agregat (COUNT, MAX, MIN, SUM, AVG).
SELECT OrderID, Quantity,CASEWHEN Quantity >30THEN'The quantity is greater than 30'WHEN Quantity =30THEN'The quantity is 30'ELSE'The quantity is under 30'ENDAS QuantityTextFROM OrderDetails;
Displaying records 1 - 10
OrderID
Quantity
QuantityText
10248
12
The quantity is under 30
10248
10
The quantity is under 30
10248
5
The quantity is under 30
10249
9
The quantity is under 30
10249
40
The quantity is greater than 30
10250
10
The quantity is under 30
10250
35
The quantity is greater than 30
10250
15
The quantity is under 30
10251
6
The quantity is under 30
10251
15
The quantity is under 30
SELECT CustomerName, City, CountryFROM CustomersORDERBY(CASEWHEN City ISNULLTHEN CountryELSE CityEND);
Displaying records 1 - 10
CustomerName
City
Country
Drachenblut Delikatessend
Aachen
Germany
Drachenblut Delikatessend
Aachen
Germany
Rattlesnake Canyon Grocery
Albuquerque
USA
Rattlesnake Canyon Grocery
Albuquerque
USA
Old World Delicatessen
Anchorage
USA
Old World Delicatessen
Anchorage
USA
Vaffeljernet
Ã…rhus
Denmark
Vaffeljernet
Ã…rhus
Denmark
GalerÃa del gastrónomo
Barcelona
Spain
GalerÃa del gastrónomo
Barcelona
Spain
Exercise
# set up the connection and save it into the workspace#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~library(RMySQL)library(DBI)dhela<-dbConnect(RMySQL::MySQL(),dbname='new_mariadb',username='root',password='',host='localhost',port=3306)knitr::opts_chunk$set(connection ="dhela") #set up the connecti
1. Select Some attributes of suppliers in alphabetical order!