Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สร้างคอลัมน์ในตารางของฉันที่อนุญาตค่า null แต่ถูกตั้งค่าเป็นค่าว่างตามค่าเริ่มต้น (ไม่ใช่ null) หรือไม่


คุณต้องใช้คำหลักเริ่มต้นสำหรับสิ่งนี้ ไวยากรณ์มีดังนี้ −

แก้ไขตาราง yourTableName เพิ่ม yourColumnName yourDataType NULL Default '';

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง AllowNullDefaulNotNullDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> ชื่อผู้ใช้ varchar(20), -> คีย์หลัก (Id) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.65 วินาที) 

ให้เราเพิ่มคอลัมน์ใหม่ที่อนุญาตค่า NULL แต่ค่าเริ่มต้นตั้งเป็น NOT NULL แบบสอบถามมีดังนี้ −

mysql> แก้ไขตาราง AllowNullDefaulNotNullDemo เพิ่ม UserAddress varchar (20) NULL Default''; แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.04 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0

ตรวจสอบคำอธิบายของตารางโดยใช้คำสั่ง DESC แบบสอบถามมีดังนี้ −

mysql> อธิบาย AllowNullDefaulNotNullDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------------+-------------+------+----+----- ----+----------------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------------+-------------+------+ -----+------ ---------------------+| รหัส | int(11) | ไม่ | PRI | NULL | auto_increment || ชื่อผู้ใช้ | varchar(20) | ใช่ | | NULL | || ที่อยู่ผู้ใช้ | varchar(20) | ใช่ | | | |+-------------+-------------+------+----+------- --+----------------+3 แถวในชุด (0.17 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก ในแบบสอบถามด้านล่างคอลัมน์ UserAddress อนุญาตค่า NULL และตั้งค่าเริ่มต้นเป็น NOT NULL

ให้เราแทรกบันทึกในคอลัมน์นี้ แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า AllowNullDefaulNotNullDemo(UserAddress) ('US'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน AllowNullDefaulNotNullDemo (UserAddress) ค่า (NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> แทรกลงในค่า AllowNullDefaulNotNullDemo() (); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)

ตรวจสอบบันทึกเฉพาะของคอลัมน์ที่เพิ่มใหม่ เช่น UserAddress แบบสอบถามมีดังนี้ −

mysql> เลือก UserAddress จาก AllowNullDefaulNotNullDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------------+| ที่อยู่ผู้ใช้ |+-------------+| สหรัฐอเมริกา || NULL || |+-------------+3 แถวในชุด (0.00 วินาที)