Halo gaes, maaf adakah yang berkenan membantu saya? saya sedang buntu nih ngulik perintah SQL untuk menampilkan tabel-tabel yang berelasi di database. Dalam proses belajar ini saya masih menggunakan HeidiSQL, selain terbantu dengan UI nya, lebih mudah juga untuk observasi perintah-perintah SQL, kebetulan studi kasus saya menggunakan northwind database.
Mohon saya dikasih pencerahan dong, atau minimal dikasih petunjuk, atau clue, atau apalah semacamnya agar saya bisa tau arah dan tujuan mempelajari ini, dan tidak tersesat saat browsing-browsing nanti.
Terimakasih,
Oya, sebagai catatan bahwa para mastah tidak perlu khawatir untuk menjelaskan, karena saya sudah mempelajari konsep dasar perintah SQL, untuk meyakinkannya saya coba rangkum beberapa hal sebagai gambaran umum.
Intro
SQL adalah salah satu bahasa generasi ke-4 (4th GL) yang awalnya dikembangkan oleh IBM di San Jose Research Laboratory. SQL generasi ke-4 bersifat request oriented dan non-prosedural sehingga mudah untuk dipelajari. SQL terdiri atas:
- DDL (Data Definition Language), yaitu bahasa yang memiliki kemampuan untuk mendefinisikan data yang berhubungan dengan pembuatan dan penghapusan obyek. Seperti CREATE, DROP dan ALTER.
- DML (Data Manipulation Langauge), yaitu bahasa yang berhubungan dengan proses manipulasi data. Seperti INSERT, SELECT, UPDATE dan DELETE.
Tipe Data
Tipe data yang didukung oleh SQL Server 2000 yaitu:
- Numeric untuk menampung data angka terdiri dari bigint, int, smallint, tinyint, bit, decimal dan numeric.
- Money untuk menampung data nilai mata uang terdiri dari money dan smallmoney.
- Numeric Precission untuk menampung data angka dengan presisi tinggi yaitu float dan real.
- Date Time untuk menampung data tanggal waktu terdiri dari datetime dan smalldatetime.
- Strings untuk menampung data karakter terdiri dari char, varchar dan text.
- Unicode Character Strings untuk menampung data karakter dengan ukuran tertentu terdiri dari nchar, nvarchar dan ntext.
- Binary Strings untuk menampung data binary terdiri dari binary, varbinary dan image.
- Serta tipe data lainnya seperti cursor, timestamp dan uniqueidentifier.
Operator
Hampir semua operator yang ada pada bahasa pemrograman dapat digunakan pada SQL Server 2000. Berikut urutan operator berdasarkan urutan evaluasi:
- + (positif), - (negatif) dan ~ (bitwise NOT).
- * (perkalian), / (pembagian) dan % (modulus).
- + (penjumlahan), + (penggabungan dan -- (pengurangan).
- = > < >= <= <> != !> !<
- ALL, ANY, BETWEEN, IN LIKE, OR dan SOME
- = (penugasan)
Perintah yang sangat baik kemampuannya dalam menampilkan relasi data adalah operasi SELECTION, PROJECTION dan JOIN dalam perintah SQL tunggal.
1. SELECTION
Operasi SELECTION bekerja pada relasi tunggal R dan mendefinisikan relasi yang hanya berisi touple R yang memenuhi kondisi tertentu (predikat). Misalnya adalah mencari gaji pegawai yang lebih dari 10000. Predikat dapat dihasilkan dari operasi logika AND, OR dan NOT.
2. PROJECTION
Operasi PROJECTION bekerja pada relasi tunggal R dan mendefinisikan releasi yang berisi bagian secara vertikal dari R, mengambil nilai dari atribut yang ditenttukan dan menghilangkan duplikat.
3. JOIN
Operasi JOIN sama halnya dengan operasi cross-product yang melakukan pencarian data yang sama pada kolom yang berkaitan antara 2 tabel dalam query. Dalam memenuhi kondisi query tertentu, penggunaan operasi JOIN lebih baik daripada operasi CROSS-PRODUCT dalam efisiensi waktu dan pencarian yang dilakukan. Operasi JOIN akan mengkombinasikan dua relasi ke bentuk relasi yang baru, yang merupakan operasi dasar dalam relational algebra.
4. Optimimasi Perintah JOIN
Berikut ini adalah cara-cara bagaimana Optimizer menganalisis perintah JOIN yang akan dijalankan dalam query. Untuk mengeksekusi sebuah perintah JOIN maka Optimizer harus mengidentifikan beberapa hal, yaitu:
- Cara Akses Perintah JOIN. Untuk perintah-perintah yang sederhana, Optimizer harus menentukan cara mengakses yang paling optimal untuk mendapatkan data dari setiap tabel yang di- JOIN.
- Metode JOIN. Setiap ada perintah JOIN maka Optimizer akan menentukan metode JOIN mana yang paling tepat untuk digunakan, baik itu Nested Loop, Sort Merge, Cartesian atau Hash Joins.
- Urutan Join. Untuk mengeksekusi lebih dari 2 tabel maka Optimizer akan melakukan JOIN dua tabel terlebih dahulu. Hasil dari join 2 tabel tersebut akan di - JOIN - kan lagi terhadap tabel berikutnya sampai semua tabel selesai di JOIN.