Table of Content
NOTE: TESTED IN HEIDISQL!
Introduction
Kenapa gue tertarik untuk mempelajari SQL? Karena gue udah 2x interview dapet test coding live yg berkaitan dengan SQL. Setelah gue tanya temen kerja gue (Puspa, data analyst) ternyata sangat penting terkait mengelola data secara optimal.
SQL vs Eloquent / Lainnya
SQL (Structured Query Language):
- Apa itu: Bahasa standar yang digunakan untuk berinteraksi langsung dengan database relasional (seperti MySQL, PostgreSQL, SQLite).
- Kelebihan:
- Kontrol Penuh: Memberikan kontrol penuh atas query yang dijalankan, memungkinkan optimasi yang sangat tepat.
- Performa: Query bisa dioptimalkan secara manual untuk performa maksimal.
- Transparansi: Kamu tahu persis query apa yang dikirim ke database.
- Fleksibilitas: Bisa menulis query kompleks yang mungkin sulit atau tidak efisien dilakukan melalui ORM.
- Universal: Sama untuk berbagai bahasa pemrograman backend.
- Kekurangan:
- Raw Code: Membutuhkan penulisan query manual, bisa lebih banyak kode untuk operasi dasar.
- Kebisingan: Lebih banyak kode boilerplate.
- Keamanan: Rentan terhadap serangan SQL Injection jika tidak di-sanitize dengan benar.
- Ketergantungan Database: Sintaks bisa sedikit berbeda antar jenis database.
ORM (Object-Relational Mapping)
- Apa itu: Alat (biasanya library) yang digunakan dalam bahasa pemrograman (misalnya Eloquent di Laravel untuk PHP, Eloquent di Laravel, atau Query Builder) yang memetakan objek di kode ke tabel dan record di database. Ini memungkinkan kamu berinteraksi dengan database menggunakan sintaks bahasa pemrograman yang kamu gunakan.
- Kelebihan:
- Productivitas: Mempercepat pengembangan karena operasi database menjadi lebih sederhana dan terstruktur.
- Readable: Kode bisa menjadi lebih mudah dibaca dan dipahami, terutama untuk pemula.
- Abstraksi Database: Seringkali memudahkan migrasi antar jenis database.
- Keamanan: Biasanya menyertakan proteksi bawaan terhadap SQL Injection melalui query binding.
- Integrasi: Lebih mudah diintegrasikan dengan struktur kode OOP.
- Kekurangan:
- Kurang Kontrol: Abstraksi bisa menyembunyikan query sebenarnya, membuat sulit untuk mengoptimalkan.
- Performa: Abstraksi bisa menambah overhead dan terkadang menghasilkan query yang tidak efisien jika tidak digunakan dengan hati-hati.
- Kurva Belajar: Perlu mempelajari API/DSL (Domain Specific Language) dari ORM tersebut.
- Kompleksitas Query: Query kompleks mungkin tetap perlu ditulis dalam raw SQL bahkan di dalam ORM.
Kesimpulan
- Pilih SQL jika: Kamu menginginkan kontrol penuh atas database, optimasi performa yang ketat, atau bekerja dengan query kompleks. Ini sering dipilih untuk sistem dengan beban tinggi atau proyek-proyek besar yang membutuhkan efisiensi maksimal.
- Pilih ORM jika: Kamu mengutamakan kecepatan pengembangan, kemudahan pemeliharaan kode, dan integrasi yang mulus dengan kode OOP. Ini populer dalam pengembangan aplikasi web modern, termasuk framework seperti Laravel (yang kamu gunakan) yang menyertakan Query Builder dan Eloquent ORM.
Syntax
- Sebagian besar transaksi Database menggunakan SQL.
- Database berisi 1 atau lebih table. Setiap table memiliki records (rows).
Perlu diingat:
- SQL tidak sensitif case dimana kalimat select sama dengan SELECT.
- Semicolon (;) diwajibkan.
Important Statement:
SELECT- extracts data from a databaseUPDATE- updates data in a databaseDELETE- deletes data from a databaseINSERT INTO- inserts new data into a databaseCREATE DATABASE- creates a new databaseALTER DATABASE- modifies a databaseCREATE TABLE- creates a new tableALTER TABLE- modifies a tableDROP TABLE- deletes a tableCREATE INDEX- creates an index (search key)DROP INDEX- deletes an index
Date: 19-10-2025