Pengantar
MySQL memelihara data yang dikelolanya dalam tabel dan database. Tabel menyimpan data dalam skema kolom dan tipe data yang telah ditentukan sebelumnya. Basis data adalah struktur yang dapat menampung banyak tabel, indeks, prosedur, dan membantu menentukan ruang lingkup untuk hak istimewa, penyesuaian, dan lainnya.
Dalam panduan ini, kami akan menunjukkan cara membuat tabel dan database di MySQL. Kami akan menunjukkan cara mengelola beberapa fitur dari kedua struktur tersebut, lalu kami akan membahas cara menghapusnya untuk membersihkan jika Anda tidak lagi membutuhkannya.
Prasyarat
Untuk mengikuti panduan ini, Anda harus masuk ke server MySQL dengan pengguna dengan hak administratif menggunakan mysql
klien baris perintah.
Jika Anda tidak ingin masuk dengan root
Akun administratif MySQL, pengguna Anda memerlukan setidaknya CREATE
hak istimewa untuk melakukan tindakan yang dijelaskan dalam panduan ini.
Anda dapat memeriksa hak istimewa pengguna yang tersedia dengan mengetik:
SHOW GRANTS\G
Bagaimana cara membuat database baru?
Hal pertama yang akan kita tunjukkan bagaimana melakukannya adalah membuat database baru. Di MySQL, database berisi tabel, indeks, prosedur, dan sumber daya lain yang biasanya terkait dengan satu proyek. Setiap sumber daya tersebut harus dibuat dalam database, jadi mempelajari cara membuat database baru adalah langkah awal yang baik.
Sintaks dasar yang digunakan untuk membuat database baru terlihat seperti ini:
CREATE DATABASE <db_name>;
Ganti <db_name>
dengan nama yang ingin Anda berikan pada database Anda sebelum menjalankan perintah. Perintah ini akan membuat database dengan nama yang diberikan dan menetapkan pengguna saat ini sebagai pemilik database baru.
Basis data akan menggunakan default seluruh sistem untuk kumpulan karakter, susunan, dan properti enkripsi:
- SET KARAKTER: mengatur set karakter untuk database baru. Ini adalah opsi pelokalan yang memengaruhi karakter yang dianggap sebagai huruf besar, huruf kecil, dan angka.
- Kumpulkan: menyetel kolasi , atau mengurutkan urutan untuk database. Ini adalah opsi pelokalan yang menentukan cara item diatur saat dipesan.
- ENKRIPSI: menyetel enkripsi untuk untuk database baru. Ini adalah opsi boolean yang dapat berupa 'Y' untuk ya, atau 'N' untuk tidak.
Anda dapat menemukan set karakter yang tersedia untuk instalasi Anda dengan mengetik:
SHOW CHARACTER SET;
Demikian juga, Anda dapat menemukan koleksi yang tersedia dengan mengetik:
SHOW COLLATION;
Jika Anda ingin menentukan nilai non-default untuk salah satu parameter ini, Anda dapat melakukannya dengan menambahkannya setelah pernyataan pembuatan utama seperti ini:
CREATE DATABASE <db_name> CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_0900_ai_ci' ENCRYPTION = 'Y';
Untuk mengikuti contoh dalam panduan ini, buat database bernama school
menggunakan setelan lokal default instance Anda dan rangkaian karakter UTF8:
CREATE DATABASE school CHARACTER SET = 'utf8mb4';
Ini akan membuat database baru Anda menggunakan spesifikasi yang Anda berikan.
Mencantumkan database yang ada
Untuk membuat daftar database yang tersedia di server Anda, ketik:
SHOW DATABASES;
Ini akan mencantumkan setiap database yang saat ini ditentukan dalam lingkungan:
+--------------------+ Database |+--------------------+ information_schema | mysql | performance_schema | school | sys | testing |+--------------------+6 rows in set (0.00 sec)
Anda dapat memverifikasi bahwa setelan yang Anda berikan telah diterapkan ke school
baru database menggunakan SHOW CREATE DATABASE
perintah:
SHOW CREATE DATABASE school;
Output akan menampilkan perintah dan opsi yang digunakan untuk membuat database, mengisi opsi dengan nilai default apa pun yang diterapkan:
+----------+----------------------------------------------------------------------------------------------------------------------------------+ Database | Create Database |+----------+----------------------------------------------------------------------------------------------------------------------------------+ school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |+----------+----------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)
Cara mengubah ke database lain di MySQL
Setelah database Anda dibuat, Anda dapat menggunakannya dengan beberapa cara berbeda.
Opsi pertama adalah menentukan database sebagai argumen di setiap perintah yang Anda gunakan. Untuk menghemat waktu jika Anda menjalankan beberapa perintah yang terkait dengan objek database, Anda juga dapat "beralih ke" atau "menggunakan" database untuk mengatur database baru Anda sebagai konteks default untuk setiap perintah terkait database yang akan Anda jalankan .
Untuk mengubah ke database yang berbeda, ketik:
USE <db_name>;
Dalam kasus kami, kami dapat beralih ke school
database yang kita buat dengan mengetik:
USE school;
Buat tabel dalam database
Setelah Anda membuat database, Anda dapat menentukan tabel dan objek lain di dalamnya untuk menyimpan dan mengelola data Anda. Di MySQL, tabel terdiri dari nama tabel, definisi kolom (ini pada gilirannya mencakup nama, tipe data, dan batasan antara lain), dan opsi tabel.
Apa sintaks CREATE TABLE
MySQL perintah?
Sintaks dasar untuk membuat tabel menggunakan CREATE TABLE
MySQL perintahnya seperti ini:
CREATE TABLE <table_name> ( <column_name> <data_type> [<column_constraint>], [<table_constraint>,]);
Kita dapat memecah template perintah di atas menjadi komponen-komponen berikut:
CREATE TABLE <table_name>
:Pernyataan pembuatan dasar.<table_name>
placeholder harus diganti dengan nama tabel yang ingin Anda gunakan.<column_name> <data_type>
:Mendefinisikan kolom dasar dalam tabel.<column_name>
placeholder harus diganti dengan nama yang ingin Anda gunakan untuk kolom Anda.<data_type>
menentukan tipe data MySQL kolom. Data yang disimpan dalam tabel harus sesuai dengan struktur kolom dan tipe data kolom yang akan diterima.<column_constraint>
:Batasan kolom adalah batasan opsional menambahkan persyaratan tambahan untuk data. Misalnya, Anda dapat mewajibkan entri bukan nol, unik, atau bilangan bulat positif.<table_constraint>
:Batasan tabel mirip dengan batasan kolom tetapi melibatkan interaksi beberapa kolom. Misalnya, Anda dapat memiliki batasan tabel yang memeriksa bahwaDATE_OF_BIRTH
sebelumDATE_OF_DEATH
dalam sebuah tabel.
Bagaimana cara membuat tabel hanya jika belum ada?
Perilaku default MySQL adalah memunculkan kesalahan jika Anda mencoba membuat tabel yang sudah ada. Namun, opsional IF NOT EXISTS
klausa dapat ditambahkan ke pernyataan pembuatan untuk mengesampingkan perilaku ini.
Anda dapat menggunakan IF NOT EXISTS
klausa dengan memasukkannya ke dalam perintah setelah CREATE TABLE
frase tetapi sebelum nama tabel:
CREATE TABLE IF NOT EXISTS table_name ( column_name TYPE [column_constraint], [table_constraint,]);
Ini akan mengubah perilaku perintah sebagai berikut:Jika nama tabel yang ditentukan sudah ada, MySQL akan memunculkan peringatan, bukan kesalahan. Perilaku perintah lainnya tetap sama.
Membuat tabel dalam database MySQL
Template perintah yang diberikan di atas sudah cukup untuk membuat tabel dasar. Untuk melanjutkan contoh kita, kita akan membuat dua tabel di school
basis data. Satu tabel akan disebut supplies
dan yang lainnya akan disebut teachers
:
Dalam supplies
tabel, kami akan menyertakan bidang berikut:
- id: ID unik untuk setiap jenis perlengkapan sekolah.
- nama: Nama item sekolah tertentu.
- deskripsi: Deskripsi singkat tentang item tersebut.
- produsen: Nama produsen barang.
- warna: Warna barangnya.
- persediaan: Jumlah barang yang kami miliki untuk jenis perlengkapan sekolah tertentu. Ini tidak boleh kurang dari 0.
Kita dapat membuat supplies
tabel dengan kualitas di atas menggunakan SQL berikut:
CREATE TABLE supplies ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), description VARCHAR(255), manufacturer VARCHAR(255), color VARCHAR(255), inventory INT CHECK (inventory >= 0));
Ini akan membuat supplies
tabel di dalam school
basis data. PRIMARY KEY
batasan kolom adalah batasan khusus yang digunakan untuk menunjukkan kolom yang secara unik dapat mengidentifikasi catatan dalam tabel. Dengan demikian, batasan menentukan bahwa kolom tidak boleh nol dan harus unik. MySQL membuat indeks untuk kolom kunci utama untuk meningkatkan kecepatan kueri.
Verifikasi bahwa tabel baru ada dengan mengetik:
SHOW TABLES;
+------------------+ Tables_in_school |+------------------+ supplies |+------------------+1 row in set (0.01 sec)
Anda dapat memverifikasi bahwa skema mencerminkan definisi Anda dengan mengetik:
SHOW CREATE TABLE supplies\G
*************************** 1. row *************************** Table: suppliesCreate Table: CREATE TABLE `supplies` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, `manufacturer` varchar(255) DEFAULT NULL, `color` varchar(255) DEFAULT NULL, `inventory` int DEFAULT NULL, PRIMARY KEY (`id`), CONSTRAINT `supplies_chk_1` CHECK ((`inventory` >= 0))) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec
Kolom, tipe data, dan batasan yang kami tentukan ada di output, meskipun urutan dan tampilannya mungkin berbeda.
Selanjutnya, buat teachers
meja. Dalam tabel ini, kolom berikut harus ada:
- id :Nomor identifikasi karyawan yang unik.
- nama_depan :Nama depan guru.
- nama_belakang :Nama belakang guru.
- subjek :Mata pelajaran yang direkrut guru untuk mengajar.
- tingkat_kelas :Tingkat kelas siswa yang direkrut untuk mengajar.
Buat teachers
tabel dengan skema di atas dengan SQL berikut:
CREATE TABLE teachers ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(255), last_name VARCHAR(255), subject VARCHAR(255), grade_level INT);
Cara membuat tabel dengan kunci utama dan kunci asing
Anda dapat menemukan informasi tentang membuat tabel dengan kunci utama dan asing di beberapa panduan MySQL kami yang lain. Kunci utama dan kunci asing keduanya merupakan jenis batasan basis data dalam MySQL.
Kunci utama adalah kolom atau kolom khusus yang dijamin unik di seluruh baris dalam tabel yang sama. Semua kunci utama dapat digunakan untuk mengidentifikasi baris tertentu secara unik. Kunci utama tidak hanya memastikan bahwa setiap baris memiliki nilai unik untuk kolom kunci utama, tetapi juga memastikan bahwa tidak ada baris yang berisi NULL
nilai untuk kolom itu. Seringkali, kunci utama di MySQL menggunakan format berikut untuk menentukan kunci utama yang bertambah secara otomatis:id INT AUTO_INCREMENT PRIMARY KEY
.
Kunci asing adalah cara untuk memastikan bahwa kolom atau kolom dalam satu tabel cocok dengan nilai yang terkandung dalam tabel lain. Ini membantu memastikan integritas referensial antar tabel.
Cara melihat tabel di MySQL
Di MySQL Anda dapat membuat daftar tabel dalam beberapa cara berbeda tergantung pada informasi apa yang Anda cari.
Jika Anda ingin melihat tabel apa yang tersedia dalam database Anda, ketik:
SHOW TABLES;
+------------------+ Tables_in_school |+------------------+ supplies | teachers |+------------------+2 rows in set (0.00 sec)
Anda juga dapat memeriksa apakah skema untuk tabel sesuai dengan spesifikasi Anda:
DESCRIBE teachers;
+--------------+--------------+------+-----+---------+----------------+ Field | Type | Null | Key | Default | Extra |+--------------+--------------+------+-----+---------+----------------+ id | int | NO | PRI | NULL | auto_increment | name | varchar(255) | YES | | NULL | | description | varchar(255) | YES | | NULL | | manufacturer | varchar(255) | YES | | NULL | | color | varchar(255) | YES | | NULL | | inventory | int | YES | | NULL | |+--------------+--------------+------+-----+---------+----------------+6 rows in set (0.00 sec)
teachers
tabel tampaknya cocok dengan definisi kita.
Cara mengubah tabel dengan ALTER TABLE
perintah
Jika Anda perlu mengubah skema tabel yang ada di MySQL, Anda dapat menggunakan ALTER TABLE
memerintah. ALTER TABLE
perintahnya sangat mirip dengan CREATE TABLE
perintah, tetapi beroperasi pada tabel yang ada.
Mengubah sintaks tabel
Sintaks dasar untuk memodifikasi tabel di MySQL terlihat seperti ini:
ALTER TABLE <table_name> <change_command> <change_parameters>;
<change_command>
menunjukkan jenis perubahan yang tepat yang ingin Anda buat, apakah itu melibatkan pengaturan opsi yang berbeda pada tabel, menambah atau menghapus kolom, atau mengubah jenis atau batasan. <change_parameters>
bagian dari perintah berisi informasi tambahan apa pun yang dibutuhkan MySQL untuk menyelesaikan perubahan.
Menambahkan kolom ke tabel
Anda dapat menambahkan kolom ke tabel MySQL dengan ADD
ubah perintah. Parameter perubahan akan menyertakan nama kolom, jenis, dan opsi, seperti yang Anda tentukan di CREATE TABLE
perintah.
Misalnya, untuk menambahkan kolom bernama missing_column
dari text
ketik ke tabel bernama some_table
, Anda akan mengetik:
ALTER TABLE some_table ADD missing_column text;
Menghapus kolom dari tabel
Sebaliknya, jika Anda ingin menghapus kolom yang ada, Anda dapat menggunakan DROP COLUMN
perintah sebagai gantinya. Anda perlu menentukan nama kolom yang ingin Anda jatuhkan sebagai parameter perubahan:
ALTER TABLE some_table DROP COLUMN useless_column;
Mengubah tipe data kolom
Untuk mengubah tipe data kolom, Anda dapat menggunakan ALTER COLUMN
ubah perintah dengan MODIFY COLUMN
perintah kolom. Parameter dalam konteks ini termasuk nama kolom dan tipe barunya:
ALTER TABLE resident MODIFY COLUMN id INT;
Perubahan tabel lainnya
Banyak jenis perubahan lain yang dapat dicapai dengan ALTER TABLE
memerintah. Untuk informasi lebih lanjut tentang opsi yang tersedia, lihat dokumentasi resmi MySQL untuk ALTER TABLE
.
Lepas tabel
Jika Anda ingin menghapus tabel, Anda dapat menggunakan DROP TABLE
pernyataan SQL. Ini akan menghapus tabel serta semua data yang tersimpan di dalamnya.
Sintaks dasarnya terlihat seperti ini:
DROP TABLE <table_name>;
Ini akan menghapus tabel jika ada dan membuat kesalahan jika nama tabel tidak ada.
Jika Anda ingin menghapus tabel jika ada dan tidak melakukan apa pun jika tidak ada, Anda dapat menyertakan IF EXISTS
kualifikasi dalam pernyataan:
DROP TABLE IF EXISTS <table_name>;
Tabel yang memiliki dependensi pada tabel atau objek lain tidak dapat dihapus secara default selama dependensi tersebut ada.
Hapus supplies
tabel yang kita buat tadi dengan mengetik:
DROP TABLE supplies;
Kami akan menjaga teachers
database untuk menunjukkan bahwa pernyataan untuk menghapus database juga menghapus semua objek anak seperti tabel.
Lepaskan database
DROP DATABASE
pernyataan memberitahu MySQL untuk menghapus database yang ditentukan. Sintaks dasarnya terlihat seperti ini:
DROP DATABASE <database_name>;
Ganti <database_name>
placeholder dengan nama database yang ingin Anda hapus. Ini akan menghapus database jika ditemukan. Jika database tidak dapat ditemukan, akan terjadi kesalahan:
DROP DATABASE some_database;
ERROR 1008 (HY000): Can't drop database 'some_database'; database doesn't exist
Jika Anda ingin menghapus database jika ada dan tidak melakukan apa-apa, sertakan IF EXISTS
opsional pilihan:
DROP DATABASE IF EXISTS some_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Ini akan menghapus database atau tidak melakukan apa pun jika tidak dapat ditemukan.
Untuk menghapus school
database yang kami gunakan dalam panduan ini, buat daftar database yang ada di sistem Anda:
SHOW DATABASES;
+--------------------+ Database |+--------------------+ information_schema | mysql | performance_schema | school | sys | testing |+--------------------+6 rows in set (0.00 sec)
Hapus school
database dengan perintah berikut:
DROP DATABASE school;
Ini akan menghapus school
database bersama dengan teachers
tabel yang ditentukan di dalamnya.
Kesimpulan
Artikel ini membahas dasar-dasar cara membuat dan menghapus database dan tabel dengan MySQL. Ini adalah beberapa perintah paling dasar yang diperlukan untuk menyiapkan sistem database dan mendefinisikan struktur data Anda.
Seperti disebutkan sebelumnya, pernyataan SQL yang tercakup dalam tutorial MySQL ini, khususnya CREATE TABLE
pernyataan, memiliki banyak parameter tambahan yang dapat digunakan untuk mengubah perilaku sistem. Anda dapat mengetahui lebih lanjut tentang ini dengan melihat dokumentasi resmi MySQL.