MYSQL - ALTER, DROP, RENAME, MODIFY

Anonim

APAKAH PERINTAH ALTER?

Seperti kata pepatah Perubahan adalah satu-satunya pemalar

Dengan berlalunya masa, keperluan perniagaan juga berubah. Apabila keperluan perniagaan berubah, reka bentuk Pangkalan Data juga perlu berubah.

MySQL menyediakan fungsi ALTER yang membantu kami menggabungkan perubahan pada reka bentuk pangkalan data yang sudah ada .

Perintah alter digunakan untuk mengubah pangkalan data, jadual, pandangan atau objek pangkalan data yang ada yang mungkin perlu diubah selama kitaran hidup pangkalan data.

Anggaplah kita telah melengkapkan reka bentuk pangkalan data kita dan ia telah dilaksanakan. Pengguna pangkalan data kami menggunakannya dan kemudian mereka menyedari beberapa maklumat penting yang ditinggalkan dalam fasa reka bentuk. Mereka tidak mahu kehilangan data yang ada tetapi hanya ingin memasukkan maklumat baru. Perintah alter sangat berguna dalam situasi seperti itu. Kita dapat menggunakan perintah alter untuk mengubah jenis data bidang dari string katakan menjadi angka, mengubah nama bidang menjadi nama baru atau bahkan menambahkan lajur baru dalam tabel.

Alter- sintaks

Sintaks asas yang digunakan untuk menambahkan lajur ke jadual yang sudah ada ditunjukkan di bawah

ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;

SINI

  • "ALTER TABLE` table_name` " adalah perintah yang memberitahu pelayan MySQL untuk mengubah jadual bernama` table_name`.
  • "TAMBAHKAN COLUMN` column_name` `data_type`" adalah perintah yang menyuruh pelayan MySQL untuk menambahkan lajur baru bernama `column_name` dengan jenis data` data_type '.

Anggaplah bahawa Myflix telah memperkenalkan bil dan pembayaran dalam talian. Menjelang akhir itu, kami telah diminta untuk menambahkan ruang untuk nombor kad kredit di jadual ahli kami. Kita boleh menggunakan perintah ALTER untuk melakukannya. Mari lihat struktur jadual ahli terlebih dahulu sebelum kita membuat sebarang pindaan. Skrip yang ditunjukkan di bawah ini membantu kita untuk melakukannya.

SHOW COLUMNS FROM `members`;
 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Kita boleh menggunakan skrip yang ditunjukkan di bawah ini untuk menambahkan medan baru ke jadual ahli.

ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);

Melaksanakan skrip di atas di MySQL terhadap Myflixdb menambahkan lajur baru bernama nombor kad kredit ke jadual ahli dengan VARCHAR sebagai jenis data. Melaksanakan skrip lajur tayangan memberi kita hasil berikut.

SHOW COLUMNS FROM `members`;
 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
credit_card_number varchar(25) YES

Seperti yang anda lihat dari hasil yang dikembalikan, nombor kad kredit telah ditambahkan ke jadual ahli. Data yang terdapat dalam data anggota tidak terpengaruh oleh penambahan lajur baru.

APA ITU PERINTAH HABIS?

Perintah DROP digunakan untuk

  1. Padamkan pangkalan data dari pelayan MySQL
  2. Padamkan objek (seperti Jadual, Lajur) dari pangkalan data.

Sekarang mari kita lihat contoh praktikal yang menggunakan perintah DROP.

Dalam contoh sebelumnya pada Perintah Alter, kami menambahkan lajur bernama nombor kad kredit ke jadual ahli.

Katakan fungsi pengebilan dalam talian memerlukan sedikit masa dan kami mahu MENGHABIS lajur kad kredit

Kita boleh menggunakan skrip berikut

ALTER TABLE `members` DROP COLUMN `credit_card_number`;

Melaksanakan skrip di atas menjatuhkan nombor kredit_card_nom dari jadual ahli

Sekarang mari kita lihat lajur di jadual ahli untuk mengesahkan sama ada lajur kami telah dijatuhkan.

SHOW COLUMNS FROM `members`;

Melaksanakan skrip di atas di MySQL workbench terhadap myflixdb memberikan hasil berikut.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Perhatikan bahawa nombor kad kredit telah dikeluarkan dari senarai bidang.

JADUAL HABIS

Sintaks untuk MENGHABISKAN jadual dari Pangkalan Data adalah seperti berikut -

DROP TABLE `sample_table`;

Mari kita lihat contoh

DROP TABLE `categories_archive`;

Melaksanakan skrip di atas akan menghapuskan jadual bernama `profiles_archive` dari pangkalan data kami.

APAKAH PERINTAH RENAME?

Perintah ganti nama digunakan untuk mengubah nama objek pangkalan data yang ada (seperti Jadual, Lajur) menjadi nama baru .

Menamakan semula jadual tidak membuatnya kehilangan data yang terkandung di dalamnya.

Sintaks: -

Perintah ganti nama mempunyai sintaks asas berikut.

RENAME TABLE `current_table_name` TO `new_table_name`;

Anggaplah bahawa kita mahu menamakan semula jadual movierentals menjadi movie_rentals, kita boleh menggunakan skrip yang ditunjukkan di bawah untuk mencapainya.

RENAME TABLE `movierentals` TO `movie_rentals`;

Melaksanakan skrip di atas menamakan semula jadual `movierentals` menjadi` movie_rentals`.

Kami sekarang akan menamakan semula jadual movie_rentals kepada nama asalnya.

RENAME TABLE `movie_rentals` TO `movierentals`;

TUKAR KATA KUNCI

Tukar Kata Kunci membolehkan anda

  1. Tukar Nama Lajur
  2. Tukar Jenis Data Lajur
  3. Tukar Kekangan Lajur

Mari lihat contohnya. Medan nama penuh dalam jadual ahli adalah jenis data varchar dan mempunyai lebar 150.

SHOW COLUMNS FROM `members`;

Melaksanakan skrip di atas di MySQL workbench terhadap myflixdb memberikan hasil berikut.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(150) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Andaikan kita mahu

  1. Tukar nama medan dari "nama penuh" menjadi "nama penuh
  2. Ubahnya menjadi jenis data char dengan lebar 250
  3. Tambahkan kekangan TIDAK NULL

Kami dapat menyelesaikannya dengan menggunakan perintah perubahan seperti berikut -

ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;

Menjalankan skrip di atas di MySQL workbench terhadap myflixdb dan kemudian melaksanakan skrip show columns yang diberikan di atas memberikan hasil berikut.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(250) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

KATA KUNCI MODIFY

Kata kunci MODIFY membolehkan anda

  1. Ubahsuai Jenis Data Lajur
  2. Ubah Kekangan Lajur

Dalam contoh PERUBAHAN di atas, kita harus menukar nama medan dan juga perincian lain. Menghilangkan nama medan dari pernyataan TUKAR akan menghasilkan ralat. Katakan kita hanya berminat mengubah jenis data dan kekangan di lapangan tanpa menjejaskan nama bidang, kita boleh menggunakan kata kunci MODIFY untuk mencapainya.

Skrip di bawah mengubah lebar medan "nama penuh" dari 250 hingga 50.

ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;

Melaksanakan skrip di atas di MySQL workbench terhadap myflixdb dan kemudian melaksanakan skrip show columns yang diberikan di atas memberikan hasil berikut seperti di bawah ini.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

SELEPAS KATA KUNCI

Anggaplah bahawa kita mahu menambahkan lajur baru pada kedudukan tertentu dalam jadual.

Kita boleh menggunakan perintah alter bersama dengan kata kunci SELEPAS.

Skrip di bawah ini akan menambah "tarikh_daftar_tepat" sejurus tarikh lahir di jadual ahli.

ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;

Melaksanakan skrip di atas di MySQL workbench terhadap myflixdb dan kemudian melaksanakan skrip show columns yang diberikan di atas memberikan hasil berikut seperti di bawah ini.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
date_of_registration date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

Ringkasan

  • Perintah alter digunakan ketika kita ingin memodifikasi pangkalan data atau objek apa pun yang terdapat dalam pangkalan data.
  • Perintah drop digunakan untuk menghapus pangkalan data dari pelayan MySQL atau objek dalam pangkalan data.
  • Perintah ganti nama digunakan untuk menukar nama jadual menjadi nama jadual baru.
  • Kata kunci Ubah membolehkan anda menukar nama lajur, jenis data dan kekangan
  • Kata Kunci Ubahsuai membolehkan anda mengubah jenis dan kekangan data lajur
  • Kata kunci Selepas digunakan untuk menentukan kedudukan lajur dalam jadual