Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML).Implementasi DDL dan DML berbeda untuk tiap sistemmanajemen basis data (SMBD),namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yangditetapkan ANSI.Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan padakebanyakan SMBD.
Data Definition Language
DDLdigunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yangdiperlukan dalam basis data, misalnya tabel, view, user,dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuatobjek baru, USE untuk menggunakan objek, ALTER untuk mengubahobjek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanyadigunakan olehadministrator basisdata dalam pembuatan sebuah aplikasi basis data.
CREATE
CREATE digunakan untuk membuat basis data maupunobjek-objek basis data. SQL yang umum digunakan adalah:
CREATEDATABASE nama_basis_data
CREATEDATABASE membuat sebuahbasis data baru.
CREATETABLE nama_tabel
CREATETABLE membuat tabel barupada basis data yang sedang aktif. Secara umum, perintah ini memiliki bentuk
CREATETABLE [nama_tabel]
(
nama_field1tipe_data [constraints][,
nama_field2tipe_data,
...]
)
atau
CREATETABLE [nama_tabel]
(
nama_field1tipe_data [,
nama_field2tipe_data,
...]
[CONSTRAINTnama_field constraints]
)
dengan:
nama_field adalahnama kolom (field)yang akan dibuat. Beberapa sistem manajemen basis data mengizinkan penggunaanspasi dan karakter nonhuruf pada nama kolom.
tipe_data tergantungimplementasi sistem manajemen basis data. Misalnya, pada MySQL,tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya.
constraints adalahbatasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantungimplementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Inidapat digunakan untuk mendefinisikan kunciprimer (primary key) dan kunciasing (foreign key).
Satutabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankanmendefinisikan paling tidak satu kolom sebagai kunci primer.
Contoh:
CREATETABLE user
(
usernameVARCHAR(30) CONSTRAINT PRIMARY KEY,
passwdVARCHAR(20) NOT NULL,
tanggal_lahirDATETIME
);
akanmembuat tabel user seperti berikut:
username
|
passwd
|
tanggal_lahir
|
DataManipulation Language
DMLdigunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yangumum dilakukan adalah:
§ SELECT untuk menampilkandata
§ INSERT untuk menambahkandata baru
§ UPDATE untuk mengubahdata yang sudah ada
§ DELETE untuk menghapusdata
SELECT
SELECT adalah perintah yang paling seringdigunakan pada SQL, sehingga kadang-kadang istilahquery dirujukkanpada perintah SELECT. SELECT digunakan untuk menampilkan data dari satuatau lebih tabel, biasanya dalam sebuah basis data yang sama. Secara umum,perintah SELECT memiliki bentuk lengkap: ( QUERY BUDIN )Cilegon.
SELECT[nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]
FROMnama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON kondisi_penghubung]
[,nama_tabel3 [AS alias3], ...]
[WHEREkondisi]
[ORDERBY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]]
[GROUPBY nama_field1[, nama_field2, ...]]
[HAVINGkondisi_aggregat]
dengan:
§ kondisi adalah syarat yang harus dipenuhi suatu data agarditampilkan.
§ kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.
Kondisidapat dihubungkan dengan operator logika, misalnya AND, OR, dan sebagainya.
Contoh:
Diasumsikanterdapat tabel user yang berisi data sebagai berikut.
username
|
passwd
|
tanggal_lahir
|
jml_transaksi
|
total_transaksi
|
Aris
|
6487AD5EF
|
09-09-1987
|
6
|
10.000
|
Budi
|
97AD4erD
|
01-01-1994
|
0
|
0
|
Charlie
|
548794654
|
06-12-1965
|
24
|
312.150
|
Daniel
|
FLKH947HF
|
24-04-1980
|
3
|
0
|
Erik
|
94RER54
|
17-08-1945
|
34
|
50.000
|
Contoh1: Tampilkan seluruh data.
SELECT*
FROMuser
Contoh2: Tampilkan pengguna yang tidak pernah bertransaksi.
SELECT*
FROMuser
WHEREtotal_transaksi = 0
Contoh3: Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainyalebih dari 1.000.
SELECTusername
FROMuser
WHEREjml_transakai < 10 AND total_transaksi > 1000
Contoh4: Tampilkan total nominal transaksi yang sudah terjadi.
SELECTSUM(total_transaksi) AS total_nominal_transaksi
FROMuser
Contoh5: Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar keterkecil.
SELECT*
FROMuser
ORDERBY jml_transaksi DESC
Fungsiaggregat
BeberapaSMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkansekelompok data (aggregat). Secara umum fungsi aggregat adalah:
§ SUM untuk menghitungtotal nominal data
§ COUNT untuk menghitungjumlah kemunculan data
§ AVG untuk menghitungrata-rata sekelompok data
§ MAX dan MIN untuk mendapatkannilai maksimum/minimum dari sekelompok data.
Fungsiaggregat digunakan pada bagian SELECT. Syarat untuk fungsi aggregat diletakkan padabagian HAVING, bukan WHERE.
Subquery
Adakalanya query dapat menjadi kompleks, terutama jika melibatkanlebih dari satu tabel dan/atau fungsi aggregat. Beberapa SMBD mengizinkanpenggunaan subquery. Contoh:
Tampilkanusername pengguna yang memiliki jumlah transaksi terbesar.
SELECTusername
FROMuser
WHEREjml_transaksi =
(
SELECTMAX(jml_transaksi)
FROMuser
)
INSERT
Untukmenyimpan data dalam tabel dipergunakan sintaks:
INSERTINTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])
Contoh:
INSERTINTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass');
UPDATE
Untukmengubah data menggunakan sintaks:
UPDATE[NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]
Contoh:
UPDATEMsuser set password="123456" where username="abc"
DELETE
Untukmenghapus data dipergunakan sintaks:
DELETEFROM [nhew andiz] [KONDISI]
Contoh:
DELETEFROM TEST WHERE NAMA='test';
1 Data Definition Language (DDL)- CREATE/DROP DATABASE dbname;
- SHOW DATABASES;
- USE dbname;
- CREATE TABLE table field name type table_name (field_type,..,
constraints,..);
- SHOW TABLES;
- table name;
SHOW COLUMNS FROM table_ DROP TABLE table_name;
2. Data Manipulation Language (DML)
- INSERT INTO table_name [(field_name,..)]
VALUES (value ); value,..);
- DELETE FROM table_name
WHERE diti condition;
- UPDATE table_name
SET fi ld l field_name=value,..
[WHERE condition];
MySQL
- Data manipulation(2) p ()
- SELECT field_name [as field_name],..
table FROM table_name
[WHERE condition]
[ORDER BY field_name];
- =, <, >, AND, OR, NOT
(field_name LIKE “_%….”)
MEMBUAT
0 Komentar