Pendahuluan

Selesai

Bahasa SQL

SQL adalah akronim dari Bahasa Permintaan Terstruktur/Structured Query Language. SQL digunakan untuk berkomunikasi dengan database hubungan. Pernyataan SQL digunakan untuk melakukan tugas seperti memperbarui data dalam database, atau mengambil data dari database. Sebagai contoh, pernyataan SQL SELECT digunakan untuk kueri database dan mengembalikan satu set baris data. Beberapa sistem manajemen database relasional umum yang menggunakan SQL meliputi Microsoft SQL Server, MySQL, PostgreSQL, MariaDB, dan Oracle.

Ada standar bahasa SQL yang ditentukan oleh American National Standards Institute (ANSI). Setiap vendor menambahkan variasi dan ekstensi mereka sendiri.

A SQL SELECT query retrieves a table of data from a database

Dalam modul ini, Anda akan mempelajari cara:

  • Memahami tentang SQL dan bagaimana penggunaannya
  • Mengidentifikasi objek database dalam skema
  • Mengidentifikasi jenis pernyataan SQL
  • Menggunakan pernyataan SELECT untuk kueri tabel dalam database
  • Bekerja dengan tipe data
  • Handel NUL

Transact-SQL

Pernyataan laporan SQL, seperti SELECT, INSERT, UPDATE, dan DELETE tersedia apa pun sistem database hubungan yang sedang Anda kerjakan. Meskipun pernyataan SQL ini adalah bagian dari standar SQL ANSI, banyak sistem manajemen database yang juga memiliki ekstensinya sendiri. Ekstensi ini menyediakan fungsionalitas yang tidak dicakup oleh standar SQL, dan mencakup area seperti manajemen keamanan dan programabilitas. Sistem database Microsoft seperti SQL Server, Azure SQL Database, Azure Synapse Analytics, dan lainnya menggunakan dialek SQL yang disebut Transact-SQL, atau T-SQL. T-SQL mencakup ekstensi bahasa untuk menulis prosedur dan fungsi tersimpan, yaitu kode aplikasi yang disimpan dalam database, dan mengelola akun pengguna.

SQL adalah bahasa Deklaratif

Bahasa pemrograman dapat dikategorikan sebagai prosedural atau deklaratif. Bahasa prosedural memungkinkan Anda menentukan urutan instruksi yang diikuti komputer untuk melakukan tugas. Bahasa deklaratif memungkinkan Anda untuk mendeskripsikan output yang Anda inginkan, dan meninggalkan detail langkah-langkah yang diperlukan untuk menghasilkan output ke mesin eksekusi.

SQL mendukung beberapa sintaks prosedural, tetapi kueri data dengan SQL biasanya mengikuti semantik deklaratif. Anda menggunakan SQL untuk menjelaskan hasil yang Anda inginkan, dan prosesor kueri mesin database mengembangkan rencana kueri untuk mengambilnya. Prosesor kueri menggunakan statistik tentang data dalam database dan indeks yang ditentukan pada tabel untuk menghasilkan rencana kueri yang baik.

Database relasional

SQL paling sering (meskipun tidak selalu) digunakan untuk kueri data dalam databasehubungan. Sebuah database hubungan adalah salah satu data yang telah diatur dalam beberapa tabel (secara teknis disebut sebagai hubungan), masing-masing mewakili jenis entitas tertentu (seperti pelanggan, produk, atau pesanan penjualan). Atribut entitas ini (misalnya, nama pelanggan, harga produk, atau tanggal pesanan penjualan) ditetapkan sebagai kolom, atau atribut, dari tabel, dan setiap baris dalam tabel mewakili instans dari jenis entitas (misalnya, pelanggan, produk, atau pesanan penjualan tertentu).

Tabel dalam database terkait satu sama lain menggunakan kolom kunci yang secara unik mengidentifikasi entitas tertentu yang diwakili. Kunci utama ditetapkan untuk setiap tabel, dan referensi ke kunci ini ditetapkan sebagai kunci asing dalam tabel terkait apa pun. Ini lebih mudah dipahami dengan melihat contoh:

A relational database containing four tables

Diagram menunjukkan database hubungan yang berisi empat tabel:

  • Pelanggan
  • SalesOrderHeader
  • SalesOrderDetail
  • Produk

Setiap pelanggan diidentifikasi oleh bidang CustomerID yang unik - bidang ini adalah kunci primer untuk tabel Pelanggan. Tabel SalesOrderHeader memiliki kunci utama bernama OrderID untuk mengidentifikasi setiap pesanan, dan juga menyertakan kunci asingCustomerID yang mereferensikan kunci primer dalam tabel Pelanggan sehingga mengidentifikasi pelanggan mana yang terkait dengan setiap pesanan. Data tentang masing-masing item dalam pesanan disimpan dalam tabel SalesOrderDetail, yang memiliki kunci utama komposit yang menggabungkan OrderID dalam tabel SalesOrderHeader dengan nilai LineItemNo. Kombinasi nilai ini secara unik mengidentifikasi item baris. Bidang OrderID juga digunakan sebagai kunci asing untuk menunjukkan urutan item baris milik, bidang ProductID digunakan sebagai kunci asing untuk kunci primer ProductID dari tabel Produk untuk menunjukkan produk mana yang dipesan.

Pemrosesan berbasis set

Set theory adalah salah satu dasar matematika dari model relasional manajemen data dan merupakan dasar untuk bekerja dengan database hubungan. Meskipun Anda mungkin dapat menulis kueri di T-SQL tanpa pemahaman yang menyeluruh tentang set, pada akhirnya Anda mungkin mengalami kesulitan menulis beberapa jenis pernyataan yang lebih kompleks yang mungkin diperlukan untuk performa optimal.

Tanpa memahami matematika teori himpunan, Anda dapat menganggap himpunan sebagai "kumpulan objek tertentu dan berbeda yang dianggap sebagai keseluruhan". Dalam istilah yang diterapkan ke database SQL Server, Anda dapat menganggap kumpulan sebagai kumpulan objek berbeda yang berisi nol atau lebih anggota dengan jenis yang sama. Misalnya, tabelPelangganmewakili satu set: khususnya, set semua pelanggan. Anda akan melihat bahwa hasil pernyataan SELECT juga membentuk satu set.

Saat Anda mempelajari lebih lanjut tentang kueri T-SQL, penting untuk selalu memikirkan seluruh set, bukan anggota individual. Pola pikir ini akan lebih baik membekali Anda untuk menulis kode berbasis set, daripada berpikir satu baris pada satu waktu. Bekerja dengan set membutuhkan pemikiran dalam hal operasi yang terjadi "sekaligus" alih-alih satu per satu.

Salah satu fitur penting yang perlu diperhatikan tentang teori set adalah bahwa tidak ada spesifikasi mengenai pemesanan anggota set. Kurangnya pesanan ini berlaku untuk tabel database hubungan. Tidak ada konsep baris pertama, baris kedua, atau baristerakhir. Elemen dapat diakses (dan diambil) dalam pesanan apa pun. Jika Anda perlu mengembalikan hasil dalam pemesanan tertentu, Anda harus menentukannya secara eksplisit dengan menggunakan klausa ORDER BY di kueri SELECT Anda.