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

Cara membuat dan menghapus database dan tabel di MySQL


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 bahwa DATE_OF_BIRTH sebelum DATE_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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengubah Format Datetime di MySQL

  2. Kelola MySQL dengan phpMyAdmin di Ubuntu 9.10 (Karmic)

  3. Cara Mendapatkan Catatan dari 10 Menit Terakhir di MySQL

  4. Pengumuman MySQL 5.6 EOL

  5. 2 Cara Mengembalikan Baris yang Hanya Mengandung Karakter Non-Alfanumerik di MySQL