แนวปฏิบัติที่ดีที่สุดสำหรับการสร้างเขตข้อมูลyes/noคืออะไรBooleanเมื่อแปลงจากaccess databaseหรือโดยทั่วไป
แนวปฏิบัติที่ดีที่สุดสำหรับการสร้างเขตข้อมูลyes/noคืออะไรBooleanเมื่อแปลงจากaccess databaseหรือโดยทั่วไป
คำตอบ:
เทียบเท่าเป็นBITสนาม
ในSQLคุณใช้0และ1ตั้งค่าฟิลด์บิต (เช่นเดียวกับฟิลด์ใช่ / ไม่ใช่ใน Access) ใน Management Studio จะแสดงเป็นค่าเท็จ / จริง (อย่างน้อยในเวอร์ชันล่าสุด)
เมื่อเข้าถึงฐานข้อมูลผ่าน ASP.NET ระบบจะแสดงฟิลด์เป็นค่าบูลีน
BITประเภทข้อมูลโดยทั่วไปจะใช้ในการจัดเก็บbooleanค่า ( 0สำหรับfalse, 1สำหรับtrue)
BITระบุไว้ใน SQL มาตรฐานหรือไม่ ฉันพบว่ามันยาก ที่ใกล้ที่สุดที่ฉันเห็นคือ "ประเภทบูลีน"
คุณสามารถใช้bitประเภทคอลัมน์
คุณสามารถใช้BITสนาม
สำหรับการเพิ่มคอลัมน์ BIT ในตารางที่มีอยู่คำสั่ง SQL จะมีลักษณะดังนี้:
ALTER TABLE table_name ADD yes_no BIT
CREATE TABLE table_name (yes_no BIT)หากคุณต้องการที่จะสร้างตารางใหม่ที่คุณสามารถทำ:
คุณสามารถใช้ชนิดข้อมูล bit
แทรกค่าที่มากกว่า 0 จะถูกเก็บเป็น '1'
ใส่ค่าที่น้อยกว่า 0 จะถูกเก็บเป็น '1'
ค่าที่แทรกเป็น '0' จะถูกเก็บไว้เป็น '0'
สิ่งนี้ถือเป็นจริงสำหรับ MS SQL Server 2012 Express
0เป็นเท็จไม่ใช่0ตัวเลขใด ๆเป็นจริง มันก็เป็นเรื่องธรรมดาสำหรับ -1 ที่จะเป็นค่าเริ่มต้นสำหรับจริงเพราะในไบนารีที่ลงนามแล้วมันมีทุกชุดบิตเป็น 1 ทุกวันนี้มันเป็นเรื่องธรรมดามากที่จะเห็น 1 เป็นค่าเริ่มต้นสำหรับจริง (เฉพาะชุดบิตที่สำคัญน้อยที่สุด)
มีคำตอบที่บอกว่าใช้ Bit อยู่แล้ว ฉันจะเพิ่มคำตอบเหล่านี้ให้มากขึ้น
คุณควรใช้บิตเพื่อแทนค่าบูลีน
ข้อสังเกตจากบทความ MSDN
บิตสามารถรับค่า 1, 0 หรือ NULL
โปรแกรมฐานข้อมูลเซิร์ฟเวอร์ SQL จะปรับการจัดเก็บคอลัมน์บิตให้เหมาะสม หากมี 8 บิตหรือน้อยกว่าคอลัมน์ในตารางคอลัมน์จะถูกจัดเก็บเป็น 1 ไบต์ หากมีตั้งแต่ 9 ถึง 16 บิตคอลัมน์จะถูกเก็บไว้เป็น 2 ไบต์และอื่น ๆ
ค่าสตริง TRUE และ FALSE สามารถแปลงเป็นค่าบิต: TRUE ถูกแปลงเป็น 1 และ FALSE ถูกแปลงเป็น 0
การแปลงเป็นบิตจะส่งเสริมค่าที่ไม่ใช่ศูนย์ใด ๆ ให้เป็น 1
NOT NULLBit มีค่า 1, 0 และ NULL ดูตารางความจริงสำหรับสิ่งนี้ ดังนั้นวางแผนค่าให้เหมาะสม มันอาจเพิ่มความสับสนโดยอนุญาตให้ค่า NULL สำหรับชนิดข้อมูลบิต
ตัวอย่างการใช้งานขณะสร้างตาราง:
[ColumnName] BIT NULL DEFAULT 0
คุณสามารถใช้BITสนาม
วิธีสร้างตารางใหม่:
CREATE TABLE Tb_Table1
(
ID INT,
BitColumn BIT DEFAULT 1
)
การเพิ่มคอลัมน์ในตารางที่มีอยู่:
ALTER TABLE Tb_Table1 ADD BitColumn BIT DEFAULT 1
ในการแทรกบันทึก:
INSERT Tb_Table1 VALUES(11,0)
bitจะง่ายที่สุดและยังใช้พื้นที่น้อยที่สุด ไม่ verbose มากเมื่อเทียบกับ "Y / N" แต่ฉันไม่เป็นไร
bitเป็นตัวเลือกที่เหมาะสมที่สุด ไม่เช่นนั้นฉันเคยใช้intเพื่อจุดประสงค์นั้น 1สำหรับtrueและสำหรับ0false
ใน SQL Server Management Studio ทุกรุ่นให้ใช้
BITเป็น Data Type
ซึ่งจะให้ตัวเลือกTrueหรือFalseค่าแก่คุณ ในกรณีที่คุณต้องการใช้อย่างเดียว1หรือ0จากนั้นคุณสามารถใช้วิธีนี้:
CREATE TABLE SampleBit(
bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)
แต่ผมจะให้คำแนะนำอย่างเคร่งครัดBITในฐานะที่ดีที่สุดตัวเลือก หวังอย่างเต็มที่มันช่วยคน