Ketentuan dan Aturan Umum dalam Pernyataan SQL

SQL (Structured Query Languange) merupakan bahasa pemrograman yang digunakan untuk mengakses tabel dalam database, baik database client tunggal maupun client-server. Nama tabel, nama kolom (fields), alias tabel/fields, dalam pernyataan SQL mempunyai aturannya sendiri.

1. Nama Tabel
Nama tabel hanya boleh terdiri atas karakter alphanumeric dan lambang garis bawah “_”. Untuk database client tunggal seperti dBASE, Paradox, Foxpro dinyataan berada dalam tanda kutip (tunggal/ganda), sedang database client-server biasanya tidak perlu ada tanda kutip. Nama tabel juga dapat dideklarasikan secara lengkap bersama file path-nya, contoh :

SELECT *
FROM 'Parts.dbf'

atau

SELECT *
FROM "c:sampleparts.dbf"

Nama alias dapat disertakan dalam deklarasi nama tabel, caranya deklarasikan nama alias yang berada di antara tanda titik dua sebelum nama tabel kemudian tutup dengan tanda kutip seperti di bawah ini.

SELECT *
FROM ":DBDEMOS:Customer.db"

2. Nama Kolom
Aturannya sama dengan penulisan nama tabel.

3. Format Data bertipe Date
Format data tanggal yang diterima adalah format tanggal Amerika dan Eropa. Jika tanda pemisah data adalah garis miring (“/”) dan mode shortdate-nya menempatkan bulan sebelum hari maka format tanggal yang digunakan adalah format Amerika yaitu MM/DD/YY atau MM/DD/YYYY. Format Eropa menggunakan tanda pemisah titik (“.”) dan mode shortdate-nya menempatkan hari sebelum bulan, yaitu DD.MM.YY atau DD.MM.YYYY. Kombinasi dengan mode sortdate, penempatan bulan sebelum hari dan tanda pemisah titik tidak diterima oleh Local SQL. Contoh format Amerika

SELECT *
FROM Orders
WHERE (SaleDate <= "1/23/1998")

Contoh format Eropa

SELECT *
FROM Orders
WHERE (SaleDate <= "23.1.1998")

4. Format Data bertipe Time
SQL menyarankan literal Time berformat hh:mm:ss AM/PM, dimana hh adalah jam, mm adalah menit dan ss adalah detik. Penanda AM/PM adalah suatu opsi dan bersifat case-insensitive (“AM” sama dengan “am”). Literal Time harus berada dalam tanda kutip.

INSERT INTO WorkOrder
  (ID, StartTime)
VALUES ("B00120","10:30:00 PM")

AM atau PM mengindikasikan separuh hari, jika tidak dinyatakan maka data waktu dibandingkan dengan jam 12. Jika kurang dari jam 12 waktu dalam AM, jika lebih besar dari jam 12 adalah petang (PM). Sebagai contoh, pernyataan berikut hanya akan menampilkan data dimana kolom Event_time berisi nilai “1:00:00 PM” dan mengabaikan nilai “1:00:00 AM

SELECT *
FROM "Events.db"
WHERE (Event_Time = "13:00:00")

5. Nilai Boolean
Literal Boolean bernilai True dan False dapat dinyatakan dalam pernyataan SQL dengan atau tanpa kutip dan bersifat case-insensitive (huruf besar/kecil bernilai sama).

SELECT *
FROM Transfers
WHERE (Paid = TRUE)
      AND NOT (Incomplete = "False")

Nilai tipe Boolean dapat dikonversi menjadi bertipe lain dengan menggunakan fungsi CAST. Hasil konversi nilai True ke tipe data Integer adalah 1 (satu), False menjadi 0 (nol), dan kosong (NULL) menjadi kosong (NULL). Dalam tipe Char, nilai True adalah T, False menjadi F, dan kosong (NULL) menjadi kosong (NULL). Nilai Boolean juga dapat diekpresikan secara langsung sebagai “T” untuk nilai True dan “F” untuk nilai False, pendeklarasiannya harus menyertakan tanda kutip.

SELECT *
FROM Transfers
WHERE (Paid = "T")
      AND NOT (Incomplete = "F")

6. Nama Alias Tabel
Nama alias tabel dapat digunakan untuk menghubungkan suatu kolom dengan tabel dimana kolom tersebut berasal. Hal ini berguna ketika berbagai kolom dengan nama yang sama dinyatakan dalam query yang sama, khususnya query multi-tabel. Nama alias tabel didefinisikan dalam klausa FROM pada pernyataan SELECT dengan identitas yang khas. Identitas ini, nama alias tabel, dapat digunakan untuk mengawali nama kolom. Jika nama tabel bukan string dalam tanda kutip, secara ekplisit nama alias tabel adalah nama tabel tersebut dan dapat digunakan untuk mengawali nama kolom.

SELECT *
FROM Customer
LEFT OUTER JOIN Orders ON (Customer.CustNo = Orders.CustNo)

Untuk database client tunggal, jika nama tabel berada dalam tanda kutip maka awali nama kolom dengan string yang berada dalam tanda kutip tersebut,

SELECT *
FROM "Customer.db"
LEFT OUTER JOIN "Orders.db" ON ("Customer.db".CustNo = "Orders.db".CustNo)

atau gunakan nama lengkap tabel sebagai nama alias tabel yang didefinisikan dalam klausa FROM (dan awali semua kolom dengan nama tersebut),

SELECT *
FROM "Customer.db" CUSTOMER
LEFT OUTER JOIN "Orders.db" ORDERS ON (CUSTOMER.CustNo = ORDERS.CustNo)

atau gunakan suatu karakter pembeda sebagai nama alias tabel yang didefinisikan dalam klausa FROM (dan awali semua kolom dengan karakter tersebut).

SELECT *
FROM "Customer.db" C
LEFT OUTER JOIN "Orders.db" O ON (C.CustNo = O.CustNo)

7. Nama Alias Kolom
Gunakan kata kunci AS untuk menetapkan nama alias suatu kolom, nilai aggregate, atau nilai literal. Nama alias kolom tidak diperbolehkan berada dalam tanda kutip dan juga tidak boleh mengandung spasi. Pernyataan berikut menetapkan Sub dan Word sebagai nama alias kolom.

SELECT
  SUBSTRING(Company FROM 1 FOR 1) AS Sub,
  "Text" AS Word
FROM Customer

Nuwun..

Related Posts

  1. Relasi Tabel dalam Pernyataan SQL
  2. Pernyataan Data Manipulation Language (DML) SQL
  3. Fungsi-fungsi dalam Pernyataan SQL
  4. Pernyataan Data Definition Language (DDL) SQL
  5. Operator dan Predikat Pernyataan SQL

About the Author

rumono Bukan siapa-siapa, hanya seorang ‘manusia’ yang pernah lahir di suatu tempat di Brebes, Jawa Tengah. Sangat gemar bacaan sejarah dunia masa lalu, sejarah perang dan pribadi-pribadi yang memberi warna sejarah dunia. Nge-game pun bisa dilakoni sampai berhari-hari asal ada hubungannya dengan sejarah dunia dan perang...