Bahasa kueri terstruktur (SQL) adalah bahasa pemrograman standar khusus domain yang digunakan untuk berinteraksi dengan sistem manajemen basis data relasional (RDBMS) seperti MySQL, SQL Server, IBM® Db2, PostgreSQL, dan Oracle Database.
SQL Query (juga dikenal sebagai perintah SQL atau pernyataan SQL) memungkinkan pengguna untuk dengan mudah menambahkan, mengambil, memperbarui, menghapus, mengumpulkan, dan mengelola data dalam database relasional (atau SQL database). Dalam sistem ini, data terstruktur diurutkan ke dalam baris dan kolom, yang bersama-sama membentuk tabel. Data biasanya terstruktur di beberapa tabel terkait yang dapat ditautkan menggunakan kunci utama atau kunci asing.
Tidak seperti bahasa pemrograman lainnya, SQL adalah bahasa deklaratif, yang berarti bahasa ini menjelaskan apa yang pengguna ingin komputer lakukan, bukan bagaimana cara mencapainya. Hal ini berbeda dengan bahasa imperatif atau prosedural (seperti Java dan COBOL) yang membutuhkan instruksi langkah demi langkah.
Contohnya, saat pengguna menulis SQL query untuk mengambil data, mereka tidak perlu menguraikan langkah-langkah yang harus diambil database untuk mengumpulkan data tersebut; mereka hanya perlu mendeskripsikan seperti apa hasil yang akan diperoleh.
SELECT nama, email
FROM pelanggan
WHERE kota = 'New York' ;
SQL adalah alat fundamental dan serbaguna dalam tumpukan teknologi modern, yang dikenal karena kemampuan manipulasi datanya, pemrosesan kueri yang cepat, dan fitur keamanan yang kuat. Ini juga menawarkan kompatibilitas di berbagai sistem, skalabilitas untuk menangani kebutuhan data yang berkembang dan dukungan sumber terbuka dan komunitas yang kuat.
Pada 1970-an, ilmuwan IBM Donald Chamberlin dan Raymond Boyce mengembangkan dan memperkenalkan SQL. Bahasa ini berasal dari konsep model relasional dan pada awalnya disebut bahasa kueri bahasa Inggris terstruktur (structured English query language, SEQUEL) sebelum disingkat menjadi SQL. Ini menjadi tersedia secara komersial pada tahun 1979 dan sejak itu telah menjadi standar global untuk sistem manajemen database relasional.
SQL distandardisasi oleh American National Standards Institute (ANSI) pada tahun 1986 dan International Organization for Standardization (ISO) pada tahun 1987. Meskipun merupakan sebuah standar, SQL memiliki berbagai dialek, seperti T-SQL untuk Microsoft SQL Server dan PL/SQL untuk Oracle Database. Dialek SQL ini memenuhi kebutuhan sistem yang spesifik namun tetap sesuai dengan perintah standar inti ANSI seperti SELECT, UPDATE, DELETE, INSERT, dan WHERE.
Buletin industri
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.
Sejak dikembangkan pada tahun 1970-an, SQL telah menjadi tulang punggung sistem database modern.
Tidak seperti bahasa pemrograman tujuan umum, SQL dibuat khusus untuk database relasional—dan database relasional, pada gilirannya, dioptimalkan untuk SQL. Desain bersama ini menjadikan SQL sebagai alat manajemen data yang sangat efisien.
Sifat deklaratif SQL membuatnya dapat diakses bahkan oleh pengguna dengan pengalaman pemrograman yang terbatas, menjadikannya bahasa yang ideal untuk pemula. Penggunaan yang luas dan Integrasi dengan bahasa pemrograman lain seperti Python dan Java juga menjadikannya keterampilan yang berharga dalam pemrograman yang lebih luas dan lingkungan data.
Analis data, ilmuwan data, dan administrator database secara teratur menggunakan SQL karena SQL unggul dalam tugas-tugas seperti pemrosesan data, definisi data, kontrol akses, berbagi data, Integrasi, dan big data.
Dalam ilmu data, SQL digunakan untuk membuat database yang menyimpan kumpulan data besar yang diperlukan untuk analisis data. Kemampuannya untuk memanipulasi dan mengambil data dari kumpulan data yang luas dan terstruktur ini juga sangat penting dalam pengembangan aplikasi kecerdasan buatan (AI) dan pembelajaran mesin (ML), yang bergantung pada data berkualitas tinggi untuk pelatihan.
Dengan mematuhi sifat ACID — atomisitas, konsistensi, isolasi, dan daya tahan — SQL membantu memastikan pemrosesan transaksi yang andal untuk contoh penggunaan penting dan penanganan data sensitif. Sistem ini juga mendukung pengambilan keputusan berbasis data yang lebih akurat, analitik tingkat lanjut, dan intelijen bisnis yang lebih baik.
SQL menawarkan banyak keuntungan, itulah sebabnya mengapa SQL tetap menjadi salah satu bahasa pemrograman yang paling banyak digunakan dan bertahan lama.
Perintah sederhana SQL (seperti GROUP BY, ORDER BY, GRANT dan REVOKE) memberdayakan pengguna dari semua tingkat keahlian untuk bekerja dengan database.
Indeks SQL dan teknik pengoptimalan kueri meningkatkan kecepatan pengambilan data, dan selanjutnya, meningkatkan kinerja database.
SQL Database mencakup fitur seperti otentikasi pengguna, kontrol akses dan enkripsi untuk melindungi data.
SQL mematuhi standar ANSI dan ISO SQL, yang membantu memastikan kompatibilitas dengan berbagai sistem dan platform, termasuk lingkungan cloud dan big data.
SQL dapat secara efektif mengelola database kecil dan besar, beradaptasi dengan kebutuhan data yang terus berkembang tanpa kehilangan kinerja yang signifikan.
Banyak database SQL yang bersifat sumber terbuka dan didukung oleh komunitas yang besar dan aktif yang berkontribusi pada peningkatan dan pemecahan masalah yang berkelanjutan.
Database relasional mengatur data dalam format tabel (baris dan kolom) dan memfasilitasi hubungan antara tabel yang berbeda. Sebagai contoh, database layanan pelanggan dapat menggunakan tabel terpisah untuk informasi pelanggan, pembelian, kode produk, dan kontak, yang dihubungkan dengan kunci seperti ID pelanggan yang unik.
SQL memungkinkan pengguna untuk menulis kueri (dan subkueri) guna memanipulasi data ini. Perintah-perintah ini dijalankan melalui beberapa komponen perangkat lunak selama proses SQL:
Parser memverifikasi kebenaran pernyataan SQL dan mengonversinya ke dalam format yang dapat dimengerti oleh database, seperti simbol-simbol yang diberi tanda. Langkah ini melibatkan analisis sintaks dan pemeriksaan semantik. Parser juga akan membantu memastikan pengguna berwenang untuk melakukan operasi.
Kemudian, mesin relasional—juga dikenal sebagai pengoptimal kueri—merencanakan strategi pengambilan, modifikasi, atau penambahan data yang paling efisien. Hal itu dilakukan dengan mengevaluasi berbagai rencana eksekusi kueri. Pengoptimal kueri menulis rencana dalam bytecode, yang merupakan bahasa mesin virtual . Langkah ini sangat penting untuk mengoptimalkan kinerja dan penggunaan sumber daya database.
Terakhir,mesin penyimpanan memproses bytecode, menjalankan pernyataan SQL, dan mengelola penyimpanan data fisik. Ini menangani representasi fisik data, termasuk format file dan buffering data. Ini juga mengembalikan hasil ke pengguna atau aplikasi. Langkah ini membantu memastikan akses data yang efisien dan pembaruan pada disk. Hubungan ini sering kali melibatkan hubungan, seperti satu-ke-banyak atau banyak-ke-banyak, yang dibuat dengan menggunakan kunci primer dan kunci asing untuk membantu memastikan integritas data.
Sistem manajemen database relasional (juga disebut sistem SQL) terdiri dari banyak komponen, termasuk:
Perintah SQL secara tradisional dibagi ke dalam kategori berikut:
Bahasa definisi data mengelola objek database seperti tabel, tampilan, dan indeks. Ini mendefinisikan struktur dan organisasi data yang disimpan dan hubungan antara item data yang disimpan.
Bahasa manipulasi data mengelola data di dalam database melalui operasi seperti INSERT, UPDATE, dan OUTER JOIN-yang menambah, memodifikasi, dan menggabungkan data.
Bahasa kontrol data mengontrol akses data melalui perintah seperti GRANT (untuk memberikan izin) dan REVOKE (untuk menghapus izin). Hal ini dapat membatasi kemampuan pengguna untuk mengambil, menambah dan memodifikasi data.
Bahasa kueri data mengeksekusi kueri data untuk mengambil informasi, biasanya menggunakan perintah SELECT. Itu dapat mengambil item data tertentu atau berbagai item.
Bahasa kontrol transaksi mengelola perubahan transaksi untuk membantu memastikan integritas data dan mendukung operasi ROLLBACK dan COMMIT untuk membatalkan atau menyimpan perubahan, masing-masing. Ini digunakan untuk mengoordinasikan berbagi data oleh pengguna bersamaan.
Database SQL mendukung berbagai pernyataan SQL untuk operasi data. Namun, perintah SQL dapat bervariasi tergantung pada database, yang mungkin menggunakan sintaks SQL-nya sendiri.
Perintah SQL dasar meliputi:
Mengambil data dari satu atau lebih tabel.
SELECT nama, email
FROM pelanggan
WHERE kota = 'New York' ;Pernyataan ini mengambil nama dan email semua pelanggan yang tinggal di New York dari tabel pelanggan.
Menambahkan baris baru ke tabel.
INSERT INTO pelanggan (nama, email, kota)
VALUES ('Jane Doe', 'jane.doe@example.com', 'Los Angeles') ;
Pernyataan ini menambahkan baris baru ke tabel pelanggan dengan nama 'Jane Doe', email 'jane.doe@example.com' dan kota 'Los Angeles'.
Memodifikasi data yang ada dalam tabel.
UPDATE pelanggan
SET email = 'new.email@example.com'
WHERE name = 'John Doe';
Pernyataan ini memperbarui email pelanggan bernama 'John Doe' di tabel pelanggan menjadi 'new.email@example.com'.
Menghapus baris dari tabel berdasarkan suatu kondisi.
DELETE FROM pelanggan
WHERE kota = 'Boston';
Pernyataan ini menghapus semua baris dari tabel pelanggan yang kotanya adalah 'Boston'.
Mendefinisikan tabel baru dan strukturnya.
CREATE TABLE produk ( product_id INT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10, 2) ) ;
Pernyataan ini membuat tabel baru bernama produk dengan tiga kolom: product_id sebagai kunci utama integer, nama sebagai string karakter variabel hingga 100 karakter, dan harga sebagai desimal dengan sepuluh digit dan dua angka di belakang koma.
Memodifikasi struktur tabel yang ada.
Pelanggan ALTER TABLE
ADD COLUMN tanggal lahir DATE;
Pernyataan ini menambahkan kolom ulang tahun baru dari tipe DATE ke tabel pelanggan yang ada.
Menghapus tabel dan semua data yang ada di dalamnya.
DROP TABLE old_customer ;
Pernyataan ini menghapus tabel old_customers beserta semua datanya.
Menggabungkan baris dari dua atau lebih tabel berdasarkan kolom terkait.
SELECT c.name, p.name AS product_name
FROM pelanggan c
JOIN order o ON c.customer_id = o.customer_id
JOIN
products p ON o.product_id = p.product_id
WHERE
c.city = 'New York' ;
Pernyataan SQL JOIN mengambil nama pelanggan dan nama produk yang mereka pesan. Tabel ini menggabungkan tabel pelanggan, pesanan, dan produk berdasarkan customer_id dan product_id, dan hanya memilih pelanggan yang tinggal di New York.
SQL Database adalah database relasional, di mana data terstruktur disimpan dalam baris dan tabel yang dihubungkan dengan berbagai cara. SQL adalah bahasa standar untuk berinteraksi dengan database ini.
Database NoSQL (atau database non-relasional) muncul pada akhir 2000-an untuk menangani data dengan struktur yang lebih sedikit. Jenis database ini (seperti MongoDB) menawarkan model data yang lebih fleksibel dibandingkan dengan SQL Database.
Perbedaan utama meliputi:
Database NoSQL dapat diskalakan secara horizontal, mengelola lalu lintas yang lebih tinggi dengan menambahkan lebih banyak server. Sebaliknya, database SQL secara tradisional dapat diskalakan secara vertikal, membutuhkan perangkat keras yang lebih kuat untuk menangani peningkatan beban.
Database SQL menggunakan struktur berbasis tabel yang ideal untuk transaksi multi-baris dan kueri kompleks di seluruh data terkait, berkat kemampuan pengindeksan yang kuat dan penggabungan. NoSQL menawarkan berbagai struktur, seperti penyimpanan nilai-kunci, dokumen, grafik, atau kolom yang lebar, yang memenuhi kebutuhan yang berbeda dan memungkinkan fleksibilitas lebih besar dengan data semistruktur atau tidak terstruktur.
SQL Database dioptimalkan untuk kueri kompleks dengan konsistensi data yang ketat, mengikuti prinsip ACID. NoSQL database, yang mengikuti prinsip-prinsip BASE (pada dasarnya tersedia, kondisi lunak, konsistensi akhirnya), memberikan kinerja yang lebih cepat untuk jenis data tertentu tetapi dengan jaminan konsistensi yang berbeda.
SQL Database sering dipilih untuk aplikasi yang memerlukan transaksi kompleks, data konsisten, dan kepatuhan skema ketat, seperti sistem keuangan, platform e-commerce, atau database CRM. NoSQL lebih disukai untuk data skala besar atau semiterstruktur yang berubah dengan cepat, seperti di jejaring sosial, analitik real-time, atau sistem manajemen konten.
Database SQL memiliki sumber daya yang lebih luas, seperti tutorial dan dukungan komunitas karena sejarahnya yang lebih panjang dan adopsi yang luas. NoSQL sering kali tidak memerlukan desain yang terlalu rumit dan lebih mudah untuk menskalakan, namun sering kali membutuhkan pengembangan yang lebih khusus untuk query yang kompleks dan konsistensi data.
Database SQL memerlukan desain skema yang cermat dan dapat menuntut dalam hal pemeliharaan untuk perubahan skema. DBMS NoSQL menawarkan skalabilitas dan kemampuan beradaptasi yang lebih mudah untuk perubahan skema tanpa waktu henti atau restrukturisasi yang lama.
Terlepas dari kekuatan keamanan dari banyak SQL Database, aplikasi lain dapat rentan terhadap masalah keamanan—seperti autentikasi yang lemah, desain yang tidak aman, dan kesalahan konfigurasi. Karena kerentanan ini, injeksi SQL tetap menjadi ancaman dunia nyata bagi organisasi.
Injeksi SQL terjadi ketika peretas memanipulasi SQL Query untuk mengakses atau merusak informasi database. Memahami kerentanan ini dan menerapkan langkah-langkah keamanan yang kuat sangat penting untuk melindungi data SQL.
Buat dan kelola pipeline data streaming cerdas melalui antarmuka grafis yang intuitif, yang memfasilitasi integrasi data tanpa batas di seluruh lingkungan hybrid dan multicloud.
watsonx.data memungkinkan Anda untuk menskalakan analitik dan AI dengan semua data Anda, di mana pun data berada, melalui penyimpanan data yang terbuka, hybrid, dan diatur.
Buka nilai data perusahaan dengan IBM Consulting, membangun organisasi berbasis insight yang memberikan keuntungan bisnis.