Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pengantar Perintah SQL

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 , dan DELETE 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);
Catatan

Anda 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 dan CourseTaken bergabung untuk mengambil informasi yang diperlukan. Nama kolom di SELECT dan WHERE klausa diawali dengan nama tabel mereka untuk kejelasan. Namun, dalam kasus SSNumber 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LOAD DATA INFILE Kode Kesalahan:13

  2. Batasan untuk mencegah penyisipan string kosong di MySQL

  3. MySQL mengonversi output timediff ke format hari, jam, menit, detik

  4. Bisakah Anda menambahkan pernyataan if di ORDER BY?

  5. MySQL vs MySQLi saat menggunakan PHP