Di dunia dengan peningkatan digitalisasi, data besar, dan komputasi awan saat ini, manajemen data adalah salah satu keterampilan terpenting yang dapat dimiliki oleh seorang insinyur perangkat lunak. Untuk tujuan ini, salah satu alat database yang paling kuat adalah SQL.
SQL (Structured Query Language) adalah bahasa pemrograman standar yang digunakan untuk memanipulasi objek struktur data. Mereka beroperasi pada data yang terkandung dalam sistem manajemen basis data relasional (RDBMS). Beberapa RDBMS yang terkenal adalah MySQL dan PostgreSQL.
Dalam panduan ini, Anda mempelajari tentang subset bahasa SQL dan cara menggunakan beberapa perintah SQL dasar, seperti SELECT
, INSERT
, UPDATE
, dan DELETE
.
Subset dari SQL
Daftar di bawah ini mencakup subset bahasa yang berbeda dari berbagai perintah SQL. Setiap subset memiliki fungsi dan tujuannya sendiri.
- Bahasa Definisi Data (DDL):Ini memungkinkan Anda untuk membuat, menghapus, dan memperbarui definisi skema database (yaitu, tabel dan indeks), tanpa benar-benar memanipulasi data di dalam tabel database.
- Bahasa Kueri Data (DQL):DQL digunakan untuk mengambil data dari database menggunakan
SELECT
pernyataan. - Bahasa Manipulasi Data (DML):Subbahasa ini memungkinkan manipulasi data dalam database menggunakan
INSERT
,UPDATE
, danDELETE
pernyataan.
Panduan ini menggunakan contoh database untuk sekolah untuk mendemonstrasikan lebih lanjut perintah SQL untuk setiap subset yang tercantum di atas. Database sekolah memiliki beberapa tabel, untuk siswa, mata kuliah, nilai, dan lain sebagainya. Definisi Student
tabel berisi kolom untuk SSNumber
siswa , Firstname
, dan Lastname
, dan definisi CourseTaken
tabel berisi kolom untuk SSNumber
, CourseId
, NumericGrade
, dan YearTaken
.
Contoh mengasumsikan bahwa ada tiga siswa di sekolah, yang masing-masing telah menyelesaikan dua kursus. Contoh data ditunjukkan pada tabel di bawah ini:
SSNumber | LastName | FirstName | Id Kursus | NumericGrade | YearDiambil |
---|---|---|---|---|---|
111111111 | Smith | John | CSC101 | 98 | 2021 |
111111111 | Smith | John | ENG101 | 95 | 2020 |
2222222222 | Jones | Maria | CSC101 | 100 | 2020 |
2222222222 | Jones | Maria | EEE101 | 75 | 2020 |
3333333333 | Hansen | Robert | POL101 | 92 | 2021 |
3333333333 | Hansen | Robert | SOC103 | 84 | 2020 |
Buat, Ubah, dan Jatuhkan Tabel menggunakan Perintah SQL
Dari baris perintah, gunakan CREATE TABLE
perintah diikuti dengan nama tabel dan data tabel. Perintah di bawah ini membuat Student
tabel.
CREATE TABLE Student (
SSNumber CHAR(9) NOT NULL,
LastName VARCHAR(30) NOT NULL,
FirstName VARCHAR(20) NOT NULL
);
Tanda kurung mengapit data tabel, dimulai dengan kolom yang memberi label pada data setiap baris. Kolom berikutnya menunjukkan tipe data yang dimiliki baris ini. CHAR
menunjukkan tipe data string dengan panjang tetap dan VARCHAR
menunjukkan tipe data string dengan panjang variabel. Di kolom terakhir, NOT NULL
atribut memastikan bahwa catatan tidak dapat ditambahkan ke tabel jika salah satu dari NOT NULL
kolom tidak memiliki data yang terkait dengannya.
Catatan CREATE TABLE
pernyataan dibatasi dengan tanda titik koma (;), meskipun ada kemungkinan bahwa beberapa sistem database relasional komersial mungkin tidak memerlukan pembatas itu.
Catatan Kecuali disebutkan sebaliknya, semua perintah database yang ditunjukkan dalam panduan ini berfungsi dengan baik di MySQL dan PostgreSQL .
Untuk membuat CourseTaken
tabel, jalankan perintah berikut:
CREATE TABLE CourseTaken (
SSNumber CHAR(9) NOT NULL,
CourseId CHAR(6) NOT NULL,
NumericGrade INT NOT NULL
);
YearTaken
kolom ini sengaja tidak disertakan dalam CourseTaken
tabel untuk mendemonstrasikan penggunaan ALTER TABLE
memerintah. Untuk menambahkan YearTaken
kolom di CourseTaken
tabel, Anda tidak perlu membuang CourseTaken
meja seluruhnya. Sebagai gantinya, Anda dapat menggunakan ALTER TABLE
DDL memerintah. Perintah berikut mengubah CourseTaken
tabel dengan menambahkan kolom yang hilang ke tabel.
ALTER TABLE CourseTaken
ADD (YearTaken INT NOT NULL);
Perintah di atas mengikuti sintaks yang sama seperti sebelumnya. Ini membutuhkan nama tabel serta tiga argumen:nama baris, tipe data baris, dan NOT NULL
atribut. Jika Anda ingin menghapus CourseTaken
tabel seluruhnya, keluarkan DROP TABLE
DDL perintah diikuti dengan nama tabel.
DROP TABLE CourseTaken;
Hati-hati Menjatuhkan tabel akan menghapus semua data dalam tabel.
Cara Menyisipkan Data Ke dalam Tabel di SQL
Untuk memasukkan data ke dalam tabel, gunakan SQL INSERT INTO
penyataan. Untuk memanggil perintah ini, berikan nama tabel dan daftar nama baris (dalam tanda kurung) yang ingin Anda sisipkan datanya. Ini diikuti oleh VALUES
kata kunci dan nilai aktual (dalam tanda kurung) yang ingin Anda sisipkan. Nilai-nilai tersebut dimasukkan ke dalam baris-baris sesuai urutan pemanggilannya.
Catatan
- Perintah SQL dapat dipecah lintas baris. Akhir dari perintah SQL dibatasi oleh titik koma (
;
).- Data karakter dibatasi oleh apostrof pembuka dan penutup (
‘
), sedangkan data numerik tidak.
Berikut INSERT
perintah memasukkan tiga baris ke dalam Student
meja. Perintah ini menggunakan beberapa INSERT
pernyataan.
INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('111111111', 'Smith', 'John');
INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('222222222', 'Jones', 'Mary');
INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('333333333', 'Hansen', 'Robert');
Demikian pula, Anda juga dapat menyisipkan beberapa baris ke dalam tabel dalam satu kueri SQL seperti yang ditunjukkan di bawah ini:
INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
CatatanAnda dapat menggunakan
INSERT INTO
perintah yang sama di PostgreSQL untuk menambahkan baris ke tabel. Pastikan nilainya cocok dengan urutan kolom dalam definisi tabel.INSERT INTO student VALUES ('111111111', 'Smith', 'John');
Hapus Data Dari Tabel
Untuk menghapus data dari tabel, gunakan SQL DELETE FROM
penyataan. Gunakan WHERE
klausa untuk menentukan kondisi, dan jika ada lebih dari satu kondisi, gunakan AND
klausa bersama dengan WHERE
.
Misalnya, perintah berikut menghapus catatan dari CourseTaken
tabel dengan SSNumber 333333333
dan Id Kursus POL101
.
Hati-hati Jika Anda menghilangkan WHERE
klausa, semua catatan dalam tabel akan dihapus.
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';
Perintah SQL untuk Memperbarui Data dalam Tabel
Untuk memperbarui catatan yang ada dalam tabel, gunakan SQL UPDATE
memerintah. SET
klausa digunakan untuk mengatur (memperbarui) nilai baru ke kolom tertentu dan WHERE
klausa digunakan untuk memperbarui baris yang dipilih.
Misalnya, perintah berikut memperbarui NumericGrade
kolom CourseTaken
tabel untuk catatan dengan SSNumber 222222222
dan Id Kursus EEE101
.
UPDATE CourseTaken
SET NumericGrade = 95
WHERE SSNumber = '222222222' AND CourseId = 'EEE101';
Perintah SQL untuk Mengambil Data Dari Tabel
Kekuatan sebenarnya dari sistem database relasional adalah kemampuannya untuk mengambil informasi dalam skema multi-tabel, melalui SQL SELECT
perintah, dan kemampuan untuk menggabungkan tabel melalui kunci umum. Meskipun panduan pengantar ini tidak memeriksa pembuatan kunci dan indeks yang menggunakan kunci tersebut, panduan ini menggunakan SSNumber
kolom setiap tabel sebagai kendaraan (kunci) untuk menghubungkan (atau menggabungkan) tabel untuk menghasilkan informasi. Contoh berikut memberikan kasus penggunaan yang berbeda dari penggunaan SQL SELECT
perintah dari baris perintah.
Contoh 1: Untuk mengambil daftar semua siswa di sekolah.
SELECT * from Student;
Keluaran:
+-----------+----------+-----------+
| SSNumber | LastName | FirstName |
+-----------+----------+-----------+
| 111111111 | Smith | John |
| 222222222 | Jones | Mary |
| 333333333 | Hansen | Robert |
+-----------+----------+-----------+
Contoh 2: Untuk mengambil daftar semua siswa dan kursus yang telah mereka ambil.
SELECT Student.SSNumber, Student.LastName,
Student.FirstName, CourseTaken.CourseId
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber;
Keluaran:
+-----------+----------+-----------+----------+
| SSNumber | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith | John | CSC101 |
| 111111111 | Smith | John | ENG101 |
| 222222222 | Jones | Mary | CSC101 |
+-----------+----------+-----------+----------+
Catatan Pada perintah di atas, dua tabel,Student
danCourseTaken
bergabung untuk mengambil informasi yang diperlukan. Nama kolom diSELECT
danWHERE
klausa diawali dengan nama tabel mereka untuk kejelasan. Namun, dalam kasusSSNumber
kolom, kita diminta untuk menentukan awalan nama tabel yang sesuai, karena kedua tabel memiliki nama kolom yang sama.FROM
klausa menunjukkan tabel yang digunakan dalam kueri ini.
Contoh 3: Ambil daftar siswa dengan CourseId CSC101
dan tahun mereka mengambil kursus ini.
SELECT Student.LastName, Student.FirstName,
CourseTaken.CourseId, CourseTaken.YearTaken
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.CourseId = 'CSC101';
Keluaran:
+----------+-----------+----------+-----------+
| LastName | FirstName | CourseId | YearTaken |
+----------+-----------+----------+-----------+
| Smith | John | CSC101 | 2021 |
| Jones | Mary | CSC101 | 2022 |
+----------+-----------+----------+-----------+
Contoh 4: Mengambil daftar nama mahasiswa, mata kuliah yang diambil dan nilai yang diterima, bagi yang memiliki nilai mata kuliah di atas 90
.
SELECT Student.LastName, Student.FirstName,
CourseTaken.CourseId, CourseTaken.NumericGrade
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.NumericGrade > 90;
Keluaran:
+----------+-----------+----------+--------------+
| LastName | FirstName | CourseId | NumericGrade |
+----------+-----------+----------+--------------+
| Smith | John | ENG101 | 95 |
| Smith | John | CSC101 | 98 |
| Jones | Mary | CSC101 | 100 |
+----------+-----------+----------+--------------+
Catatan AND
klausa dalam perintah di atas memungkinkan Anda untuk memfilter hasil dengan tes skor nilai bersyarat.
Kesimpulan
Panduan tentang perintah SQL ini adalah pengantar utama tentang cara membuat skema database dan memanipulasi data di dalam database tersebut. Meskipun konsep yang diperkenalkan di sini hanya menggores permukaan sehubungan dengan penggunaan sistem basis data relasional, ini sebagai titik awal yang baik untuk perintah dan konsep dasar dan esensial.