Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Mengubah Kolom Dari NULL menjadi NOT NULL

Terkadang Anda mungkin perlu mengubah kolom nullable dengan nilai NULL menjadi kolom tanpa nilai NULL. Pada artikel ini, kita akan melihat cara mengubah kolom dari nilai NULL menjadi NOT NULL. Anda dapat menggunakan langkah-langkah ini untuk mengubah kolom dari NULL menjadi NOT NULL di MySQL, PostgreSQL, dan SQL Server.


Cara Mengubah Kolom Dari Null menjadi Bukan Null

Berikut adalah langkah-langkah untuk mengubah kolom dari NULL menjadi NOT NULL.


1. Perbarui Tabel untuk Menghapus Nilai Null.

Langkah pertama adalah menghapus nilai null dari kolom kita. Katakanlah Anda memiliki tabel penjualan(id, jumlah, tanggal_pesanan)

mysql> create table sales(id int, amount int,order_date date);

mysql> insert into sales(id, amount)
       values(1, 100),(2,300),(3,45);

mysql> insert into sales(id, order_date)
       values(4,'2020-11-01');

mysql> select * from sales;
+------+--------+------------+
| id   | amount | order_date |
+------+--------+------------+
|    1 |    100 | NULL       |
|    2 |    300 | NULL       |
|    3 |     45 | NULL       |
|    4 |   NULL | 2020-11-01 |
+------+--------+------------+

Seperti yang Anda lihat, tabel di atas berisi nilai null di order_date dan jumlah kolom.

Katakanlah Anda ingin mengubah kolom jumlah dari nol menjadi tidak nol. Jadi pertama-tama kita akan menghapus nilai null dari kolom ini menggunakan pernyataan UPDATE.

mysql> update sales set amount=0 
       where amount is null;

mysql> select * from sales;
+------+--------+------------+
| id   | amount | order_date |
+------+--------+------------+
|    1 |    100 | NULL       |
|    2 |    300 | NULL       |
|    3 |     45 | NULL       |
|    4 |      0 | 2020-11-01 |
+------+--------+------------+

Demikian pula, jika Anda ingin mengubah tanggal_pesanan kolom dari nol ke bukan nol, perbarui dulu nilai nol ke nilai bukan nol, seperti yang ditunjukkan di bawah ini.

mysql> update sales set order_date='0000-00-00' 
       where order_date is null;

mysql> select * from sales;
+------+--------+------------+
| id   | amount | order_date |
+------+--------+------------+
|    1 |    100 | 0000-00-00 |
|    2 |    300 | 0000-00-00 |
|    3 |     45 | 0000-00-00 |
|    4 |      0 | 2020-11-01 |
+------+--------+------------+


2. Ubah Tabel dan Ubah Kolom

Selanjutnya, kita akan mengubah kolom jumlah dari nol menjadi tidak nol, menggunakan pernyataan ALTER TABLE.

Berikut sintaksnya.

ALTER TABLE table_name ALTER COLUMN col_name data_type NOT NULL;

Ganti table_name, col_name dan data_type masing-masing dengan nama tabel, nama kolom dan tipe data.

Berikut query SQL untuk mengubah kolom jumlah dari NULL menjadi NOT NULL.

For MySQL
---------
ALTER TABLE sales
MODIFY COLUMN amount int NOT NULL;

For SQL Server/PostgreSQL
-------------------------
ALTER TABLE sales
ALTER COLUMN amount int NOT NULL;

Demikian pula, berikut adalah kueri SQL untuk mengubah kolom order_date dari NULL menjadi NOT NULL

For MySQL
---------
ALTER TABLE sales
MODIFY COLUMN order_date date NOT NULL;

For SQL Server/PostgreSQL
-------------------------
ALTER TABLE sales
ALTER COLUMN order_date date NOT NULL;

Kami memverifikasi perubahan di atas dengan menjalankan perintah tabel deskripsi di MySQL.

mysql> describe sales;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id         | int(11) | YES  |     | NULL    |       |
| amount     | int(11) | NO   |     | NULL    |       |
| order_date | date    | NO   |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

Anda akan melihat bahwa jumlah kolom dan tanggal_pesanan mengandung nilai NO untuk kolom NULL yang menunjukkan bahwa mereka tidak diizinkan untuk menyimpan nilai NULL.

Ubiq memudahkan untuk memvisualisasikan data, dan memantaunya di dasbor waktu nyata. Coba Ubiq gratis.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SCD Tipe 2

  2. Pelajari cara menggunakan SQL SELECT dengan contoh

  3. SQL BUKAN Operator

  4. Dasar-dasar Ekspresi Tabel, Bagian 13 – Fungsi Bernilai Tabel Sebaris, Lanjutan

  5. Inisialisasi File Instan:Dampak Selama Penyiapan