Kamis, 18 April 2013

Structure Query Language (SQL)

Sql logo
Bahasa Permintaan Struktur

Bahasa Permintaan Struktur adalah bahasa pemrograman yang bertujuan khusus dirancang untuk mengelola data dalam sistem manajemen database relasional (RDBMS).
Awalnya berdasarkan aljabar relasional dan kalkulus relasional tupel. SQL terdiri dari bahasa definisi dan manipulasi data. Ruang lingkup SQL meliputi memasukan data, menanyakan, memperbarui, menghapus, penciptaan, modifikasi skema, dan kontrol akses data. Meskipun SQL sering digambarkan, sebagai dan untuk sebagian besar adalah, bahasa deklaratif (4GL), juga mencakup unsur-unsur prosedural.

SQL adalah salah satu bahasa komersial pertama untuk model relasional Edgar F. Codd, seperti yang dijelaskan pada tahun 1970 makalahnya berpengaruh "A Relational Model Data Besar Shared Bank Data". Meski tidak mengikuti model relasional seperti yang dijelaskan oleh Codd, menjadi bahasa database yang paling banyak digunakan.




SQL menjadi standar dari "American National Standards Institute" (ANSI) pada tahun 1986, dan "International Organization for Standar" (ISO) pada tahun 1987. Sejak itu, standar tersebut telah ditingkatkan beberapa kali dengan fitur yang ditambahkan. Tetapi kode ini tidak benar-benar portabel antara sistem database yang berbeda, yang dapat menyebabkan vendor lock-in. Para pembuat yang berbeda tidak sempurna mengikuti standar, mereka menambahkan ekstensi, dan standar itu kadang-kadang ambigu.

Sejarah

SQL awalnya dikembangkan di IBM oleh Donald D. Chamberlin dan Raymond F. Boyce pada awal tahun 1970. Versi ini, awalnya disebut sekuel (Structured English Query Language), dirancang untuk memanipulasi dan mengambil data yang disimpan dalam sistem yang asli IBM kuasi-relasional manajemen database, Sistem R, yang kelompok di IBM San Jose Research Laboratory telah dikembangkan selama tahun 1970-an. Akronim sekuel kemudian diubah menjadi SQL karena "sekuel" adalah merek dagang yang berbasis di Inggris Hawker Siddeley adalah perusahaan pesawat terbang.

Pada akhir 1970-an, Relational Software, Inc (sekarang Oracle Corporation) melihat potensi konsep yang dijelaskan oleh Codd, Chamberlin, dan Boyce dan dikembangkan sendiri RDBMS berbasis SQL dengan aspirasi menjualnya ke Angkatan Laut AS, Central Intelligence Agency , dan badan-badan pemerintah AS lainnya. Pada bulan Juni 1979, Relational Software, Inc memperkenalkan tersedia secara komersial pertama pelaksanaan SQL, Oracle V2 (Version2) untuk komputer VAX.

Setelah pengujian SQL di lokasi uji pelanggan untuk menentukan kegunaan dan kepraktisan sistem, IBM mulai mengembangkan produk komersial berdasarkan Sistem mereka R prototipe termasuk System/38, SQL / DS, dan DB2, yang tersedia secara komersial pada tahun 1979, 1981, dan 1983, masing-masing.


Unsur Bahasa

Sebuah grafik yang menunjukkan beberapa unsur bahasa SQL yang membentuk pernyataan tunggal
Bahasa SQL dibagi menjadi beberapa unsur bahasa, termasuk:


  • Klausul, yang merupakan komponen penyusun pernyataan dan pertanyaan. (Dalam beberapa kasus, ini adalah opsional.).
  • Ekspresi, yang dapat menghasilkan baik nilai skalar, atau tabel yang terdiri dari kolom dan baris data.
  • Predikat, yang menetapkan kondisi yang dapat dievaluasi untuk SQL tiga nilai logika (3VL) atau Boolean (benar / salah / tidak diketahui) nilai-nilai kebenaran dan yang digunakan untuk membatasi efek dari pernyataan dan pertanyaan, atau untuk mengubah aliran program.
  • Pertanyaan, yang mengambil data berdasarkan kriteria tertentu. Ini merupakan elemen penting dari SQL.
  • Laporan, yang mungkin memiliki efek yang gigih pada skemata dan data, atau yang dapat mengontrol transaksi, alur program, koneksi, sesi, atau diagnosa.Pernyataan SQL juga mencakup titik koma (";") pernyataan terminator. Meskipun tidak diperlukan pada setiap platform, yang didefinisikan sebagai bagian standar dari tata bahasa SQL.
  • Signifikan spasi umumnya diabaikan dalam pernyataan SQL dan permintaan, sehingga lebih mudah untuk memformat kode SQL untuk dibaca.

Pertanyaan

Operasi yang paling umum dalam SQL adalah query, yang dilakukan dengan pernyataan SELECT deklaratif. SELECT mengambil data dari satu atau lebih tabel, atau ekspresi. Pernyataan SELECT standar tidak memiliki efek yang gigih pada database. Beberapa implementasi non-standar SELECT dapat memiliki efek yang gigih, seperti SELECT INTO sintaks yang ada di beberapa database.
Pertanyaan memungkinkan pengguna untuk menggambarkan data yang diinginkan, meninggalkan sistem manajemen database (DBMS) bertanggung jawab untuk perencanaan, optimasi, dan melakukan operasi fisik yang diperlukan untuk menghasilkan hasil yang seperti memilih.
Sebuah query mencakup daftar kolom untuk dimasukkan dalam hasil akhir segera setelah kata kunci SELECT. Tanda bintang ("*") juga dapat digunakan untuk menentukan bahwa permintaan harus mengembalikan semua kolom dari tabel query. SELECT adalah pernyataan yang paling kompleks di SQL, dengan kata kunci opsional dan klausa yang meliputi:

  • Klausa yang menunjukkan tabel (s) dari mana data akan diambil. Klausa dapat mencakup opsional BERGABUNG subclauses untuk menentukan aturan untuk bergabung tabel.
  • Klausa WHERE termasuk predikat perbandingan, yang membatasi baris yang dikembalikan oleh query. Klausa WHERE menghilangkan semua baris dari hasil set yang predikat perbandingan tidak mengevaluasi ke True.
  • Klausa GROUP BY digunakan untuk baris proyek yang telah memiliki nilai-nilai umum ke dalam satu set yang lebih kecil dari baris. GROUP BY sering digunakan dalam hubungannya dengan fungsi agregasi SQL atau untuk menghilangkan duplikasi baris dari hasil set. Klausa WHERE diterapkan sebelum klausa GROUP BY.
  • Klausa HAVING termasuk predikat yang digunakan untuk menyaring baris yang dihasilkan dari klausa GROUP BY. Karena bekerja pada hasil klausa GROUP BY, fungsi agregasi dapat digunakan dalam HAVING predikat klausa.
  • ORDER BY klausa mengidentifikasi kolom mana yang digunakan untuk mengurutkan data yang dihasilkan, dan ke arah mana mereka harus diurutkan (opsi naik atau turun). Tanpa klausa ORDER BY, urutan baris yang dikembalikan oleh query SQL tidak terdefinisi.









Tidak ada komentar:

Posting Komentar