ชนิดข้อมูลเซิร์ฟเวอร์ SQL พร้อมตัวอย่าง
ประเภทข้อมูลคืออะไร?
A ประเภทข้อมูล ในเซิร์ฟเวอร์ SQL หมายถึงประเภทของข้อมูลที่คอลัมน์หรือตัวแปรใด ๆ สามารถจัดเก็บได้ เป็นประเภทของข้อมูลที่ออบเจ็กต์เก็บ เช่น จำนวนเต็ม อักขระ สตริง ฯลฯ ในขณะที่สร้างตารางหรือตัวแปรใดๆ นอกเหนือจากการระบุชื่อแล้ว คุณยังตั้งค่าประเภทข้อมูลที่จะจัดเก็บด้วย
วิธีใช้ประเภทข้อมูล MS SQL
- คุณต้องกำหนดล่วงหน้าถึงประเภทของข้อมูลที่คอลัมน์หรือตัวแปรสามารถจัดเก็บได้ การกำหนดประเภทข้อมูลยังจำกัดผู้ใช้จากการป้อนข้อมูลที่ไม่คาดคิดหรือไม่ถูกต้อง
- คุณสามารถใช้หน่วยความจำอย่างมีประสิทธิภาพได้โดยการกำหนดประเภทข้อมูลที่เหมาะสมให้กับตัวแปรหรือคอลัมน์ ซึ่งจะจัดสรรเฉพาะจำนวนหน่วยความจำระบบที่ต้องการสำหรับข้อมูลของคอลัมน์ที่เกี่ยวข้อง
- MS SQL นำเสนอประเภทข้อมูลพื้นฐานใน SQL หลายประเภทตามความต้องการของผู้ใช้ เช่น วันที่ รูปภาพไบนารี ฯลฯ
เหตุใดจึงต้องใช้ DataType
เรามายกตัวอย่างง่ายๆ กัน หน้าลงทะเบียน ของแอปพลิเคชันเว็บไซต์ ช่องป้อนข้อมูลสามช่อง ได้แก่ ชื่อ นามสกุล และหมายเลขติดต่อ
เราควรทราบไว้ ณ ที่นี้แบบเรียลไทม์:
- "ชื่อนามสกุล" จะเป็นเสมอ ตัวอักษร.
- "ติดต่อ" จะเป็นเสมอ เป็นตัวเลข.
- จากภาพด้านบนถือว่าคุ้มค่าที่จะกำหนด "ชื่อนามสกุล" เป็น ตัวอักษร และ "ติดต่อ" ในฐานะที่เป็น จำนวนเต็ม.
เห็นได้ชัดว่าในแอปพลิเคชันใดๆ ทุกฟิลด์มีข้อมูลประเภทใดประเภทหนึ่ง เช่น ตัวเลข ตัวอักษร วันที่ และอื่นๆ อีกมากมาย
นอกจากนี้ โปรดทราบว่าประเภทข้อมูลที่ต่างกันมีความต้องการหน่วยความจำที่แตกต่างกัน ดังนั้นจึงเหมาะสมกว่าที่จะกำหนดคอลัมน์หรือ ตัวแปร ด้วยประเภทข้อมูลที่จะเก็บไว้เพื่อการใช้หน่วยความจำอย่างมีประสิทธิภาพ
ชนิดข้อมูลที่มีอยู่ใน MS SQL Server
นี่คือรายการประเภทข้อมูลเซิร์ฟเวอร์ MS SQL:
เซิร์ฟเวอร์ MS SQL รองรับประเภทข้อมูลประเภทต่อไปนี้:
- ตัวเลขที่แน่นอน
- ตัวเลขโดยประมาณ
- วันและเวลา
- สายอักขระ
- สตริงอักขระ Unicode
- สตริงไบนารี
- ประเภทข้อมูลอื่นๆ
ประเภทข้อมูลตัวเลขที่แน่นอนใน SQL
ตัวเลขที่แน่นอนมีประเภทข้อมูลย่อยเก้าประเภทในเซิร์ฟเวอร์ SQL
ประเภทข้อมูลตัวเลขที่แน่นอน
ประเภทข้อมูล | Descriptไอออน | ขีด จำกัด ต่ำกว่า | ขีด จำกัด บน | หน่วยความจำ |
---|---|---|---|---|
ใหญ่ | มันเก็บตัวเลขจำนวนเต็มในช่วงที่กำหนด | −2^63 (−9,223,372, 036,854,775,808) | 2^63−1 (−9,223,372, 036,854,775,807) | ไบต์ 8 |
int | มันเก็บตัวเลขจำนวนเต็มในช่วงที่กำหนด | −2^31 (−2,147, 483,648) | 2^31−1 (−2,147, 483,647) | ไบต์ 4 |
ขนาดเล็ก | มันเก็บตัวเลขจำนวนเต็มในช่วงที่กำหนด | −2^15 (−32,767) | 2^15 (−32,768) | ไบต์ 2 |
Tinyint | มันเก็บตัวเลขจำนวนเต็มในช่วงที่กำหนด | 0 | 255 | 1 ไบต์ |
บิต | อาจใช้ค่า 0, 1 หรือ NULL | 0 | 1 | คอลัมน์ 1 ไบต์/8 บิต |
ทศนิยม | ใช้สำหรับมาตราส่วนและตัวเลขความแม่นยำคงที่ | −10^38+1 | 10^381−1 | 5 ถึง 17 ไบต์ |
เป็นตัวเลข | ใช้สำหรับมาตราส่วนและตัวเลขความแม่นยำคงที่ | −10^38+1 | 10^381−1 | 5 ถึง 17 ไบต์ |
เงิน | ข้อมูลทางการเงินที่ใช้แล้ว | -922,337, 203, 685,477.5808 | +922,337, 203, 685,477.5807 | ไบต์ 8 |
เงินขนาดเล็ก | ข้อมูลทางการเงินที่ใช้แล้ว | -214,478.3648 | +214,478.3647 | ไบต์ 4 |
ชนิดข้อมูลตัวเลขที่แน่นอนใน เซิร์ฟเวอร์ SQL พร้อมตัวอย่าง:
ค้นหา:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
เอาท์พุต
2
วากยสัมพันธ์
ทศนิยม (ป,ส)
ที่นี่
- P คือความแม่นยำ
- S คือสเกล
ค้นหา:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
เอาท์พุต
2.31
ประเภทข้อมูลตัวเลขโดยประมาณใน SQL
SQL หมวดหมู่ตัวเลขโดยประมาณประกอบด้วยจุดลอยตัวและค่าจริง ประเภทข้อมูลเหล่านี้ใน SQL ส่วนใหญ่จะใช้ในการคำนวณทางวิทยาศาสตร์
ประเภทข้อมูลตัวเลขโดยประมาณ
ประเภทข้อมูล | Descriptไอออน | ขีด จำกัด ต่ำกว่า | ขีด จำกัด บน | หน่วยความจำ | ความแม่นยำ |
---|---|---|---|---|---|
ลอย(n) | ใช้สำหรับตัวเลขความแม่นยำแบบลอยตัว | −1.79E+308 | 1.79E + 308 | ขึ้นอยู่กับค่าของ n | 7 Digit |
จริง | ใช้สำหรับตัวเลขความแม่นยำแบบลอยตัว | −3.40E+38 | 3.40E + 38 | ไบต์ 4 | 15 Digit |
Syntax: FLOAT [(n)]
ที่นี่ n คือจำนวนบิตที่ใช้เก็บแมนทิสซาของ ลอย ตัวเลขในสัญกรณ์วิทยาศาสตร์ โดยค่าเริ่มต้น ค่าของ n คือ 53
เมื่อผู้ใช้กำหนดประเภทข้อมูลเช่น float n ควรเป็นค่าระหว่าง 1 ถึง 53
ถือว่าเซิร์ฟเวอร์ SQL n เป็นหนึ่งในสองค่าที่เป็นไปได้ ถ้า 1<=n<=24 n จะถือเป็น 24 ถ้า 25<=n<=53 n จะถือเป็น 53
ตัวอย่างแบบสอบถาม:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
เอาท์พุต
22.1234
ประเภทข้อมูลวันที่และเวลาใน SQL
เก็บข้อมูลประเภทวันที่และเวลา
ประเภทข้อมูลวันที่และเวลา
ประเภทข้อมูล | Descriptไอออน | ขนาดพื้นที่จัดเก็บ | ความถูกต้อง | ช่วงล่าง | ช่วงบน |
---|---|---|---|---|---|
วันเวลา | ใช้สำหรับระบุวันที่และเวลาตั้งแต่ 1 มกราคม 1753 ถึง 31 ธันวาคม 9999 มีความแม่นยำ 3.33 มิลลิวินาที | ไบต์ 8 | ปัดเศษเพื่อเพิ่มขั้น .000, .003, .007 | 1753-01-01 | 9999-12-31 |
วันที่และเวลาขนาดเล็ก | ใช้สำหรับระบุวันที่และเวลาตั้งแต่ 1 มกราคม 0001 ถึง 31 ธันวาคม 9999 มีความแม่นยำ 100 นาโนวินาที | 4 ไบต์ แก้ไขแล้ว | 1 นาที | 1900-01-01 | 2079-06-06 |
ข้อมูล | ใช้จัดเก็บเฉพาะวันที่ 1 มกราคม 0001 ถึง 31 ธันวาคม 9999 | 3 ไบต์ แก้ไขแล้ว | วัน 1 | 0001-01-01 | 9999-12-31 |
เวลา | ใช้สำหรับจัดเก็บเฉพาะค่าเวลาเท่านั้นด้วยความแม่นยำ 100 นาโนวินาที | ไบต์ 5 | 100 นาโนวินาที | 00:00:00.0000000 | 23:59:59.9999999 |
วันที่และเวลาชดเชย | คล้ายกับ datatime แต่มีการชดเชยเขตเวลา | ไบต์ 10 | 100 นาโนวินาที | 0001-01-01 | 9999-12-31 |
วันที่เวลา 2 | ใช้สำหรับระบุวันและเวลาตั้งแต่ 1 มกราคม 0001 ถึง 31 ธันวาคม 9999 | ไบต์ 6 | 100 นาโนวินาที | 0001-01-01 | 9999-12-31 |
ตัวอย่างแบบสอบถาม :
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
เอาท์พุต
'2030-01-01'
ประเภทข้อมูลสตริงอักขระใน SQL
หมวดหมู่นี้เกี่ยวข้องกับประเภทอักขระ ช่วยให้ผู้ใช้สามารถกำหนดประเภทข้อมูลของอักขระที่สามารถมีความยาวคงที่และผันแปรได้ มีประเภทข้อมูลสี่ประเภท ด้านล่างนี้คือชนิดข้อมูลเซิร์ฟเวอร์ SQL สตริงอักขระพร้อมตัวอย่าง
ประเภทข้อมูลสตริงอักขระ
ประเภทข้อมูล | Descriptไอออน | ขีด จำกัด ต่ำกว่า | ขีด จำกัด บน | หน่วยความจำ |
---|---|---|---|---|
ถัง | เป็นสตริงอักขระที่มีความกว้างคงที่ สามารถเก็บอักขระได้สูงสุด 8,000 ตัว | 0 ตัวอักษร | 8000 ตัวอักษร | n ไบต์ |
วาร์ชาร์ | นี่คือสตริงอักขระที่มีความกว้างผันแปรได้ | 0 ตัวอักษร | 8000 ตัวอักษร | n ไบต์ + 2 ไบต์ |
วาร์ชาร์ (สูงสุด) | นี่คือสตริงอักขระที่มีความกว้างผันแปรได้ เก็บได้สูงสุด 1,073,741,824 อักขระ | 0 ตัวอักษร | 2^31 ตัวอักษร | n ไบต์ + 2 ไบต์ |
ข้อความ | นี่คือสตริงอักขระที่มีความกว้างผันแปรได้ เก็บข้อมูลข้อความได้สูงสุด 2GB | 0 ตัวอักษร | 2,147,483,647 ตัวอักษร | n ไบต์ + 4 ไบต์ |
ตัวอย่างแบบสอบถาม :
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
เอาท์พุต
นี่คือประเภทข้อมูลอักขระ
ชนิดข้อมูลสตริงอักขระ Unicode ใน SQL
หมวดหมู่นี้จัดเก็บอักขระ Unicode ทั้งหมดซึ่งใช้การเข้ารหัสอักขระ UTF-16
ชนิดข้อมูลสตริงอักขระ Unicode
ประเภทข้อมูล | Descriptไอออน | ขีด จำกัด ต่ำกว่า | ขีด จำกัด บน | หน่วยความจำ |
---|---|---|---|---|
ชาร์ | เป็นสตริง Unicode ที่มีความกว้างคงที่ | 0 ตัวอักษร | 4000 ตัวอักษร | 2 ครั้ง n ไบต์ |
นวาร์ชาร์ | เป็นสตริงยูนิโค้ดที่มีความกว้างผันแปร | 0 ตัวอักษร | 4000 ตัวอักษร | 2 คูณ n ไบต์ + 2 ไบต์ |
ข้อความ | เป็นสตริงยูนิโค้ดที่มีความกว้างผันแปร | 0 ตัวอักษร | 1,073,741,823 ถ่าน | 2 เท่าของความยาวสาย |
ตัวอย่างแบบสอบถาม:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
เอาท์พุต
นี่คือประเภทข้อมูล nCharacter
ชนิดข้อมูลสตริงไบนารีใน SQL
หมวดหมู่นี้ประกอบด้วยสตริงไบนารีที่มีความยาวคงที่และแปรผันได้
ชนิดข้อมูลสตริงไบนารี
ประเภทข้อมูล | Descriptไอออน | ขีด จำกัด ต่ำกว่า | ขีด จำกัด บน | หน่วยความจำ |
---|---|---|---|---|
ไบนารี | เป็นสตริงไบนารีที่มีความกว้างคงที่ มันเก็บได้สูงสุด 8,000 ไบต์ | ไบต์ 0 | ไบต์ 8000 | n ไบต์ |
วาร์บินารี | นี่คือสตริงไบนารี่ที่มีความกว้างของตัวแปร มันเก็บได้สูงสุด 8,000 ไบต์ | ไบต์ 0 | ไบต์ 8000 | ความยาวจริงของข้อมูลที่ป้อน + 2 ไบต์ |
ภาพ | นี่คือสตริงไบนารี่ที่มีความกว้างของตัวแปร สามารถจัดเก็บข้อมูลได้สูงสุด 2GB | ไบต์ 0 | ไบต์ 2,147,483,647 |
ตัวอย่างแบบสอบถาม:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
เอาท์พุต
0x000C
ประเภทข้อมูลอื่นๆ ใน SQL
เหล่านี้เป็นประเภทข้อมูลเซิร์ฟเวอร์ SQL อื่น ๆ ที่มีคำอธิบายด้านล่าง -
ประเภทข้อมูล | Descriptไอออน |
---|---|
เคอร์เซอร์ | ผลลัพธ์ของมันคือคอลัมน์ของ sp_cursor_list และ sp_describe_cursor มันส่งกลับชื่อของตัวแปรเคอร์เซอร์ |
เวอร์ชั่นแถว | เวอร์ชันจะประทับตราแถวของตาราง |
ลำดับชั้น | ประเภทข้อมูลนี้แสดงถึงตำแหน่งในลำดับชั้น |
ตัวระบุที่ไม่ซ้ำ | การแปลงจากการแสดงออกของตัวละคร |
Sql_variant | มันเก็บค่าของประเภทข้อมูลที่รองรับเซิร์ฟเวอร์ SQL |
XML | มันเก็บข้อมูล XML ไว้ในคอลัมน์ |
ประเภทเรขาคณิตเชิงพื้นที่ | เป็นการแสดงข้อมูลในระบบพิกัดแบบแบน |
ประเภทภูมิศาสตร์เชิงพื้นที่ | เป็นการแสดงข้อมูลในระบบพิกัดโลกกลม |
ตาราง | จะเก็บชุดผลลัพธ์ไว้สำหรับการประมวลผลในภายหลัง |
ข้อเท็จจริงที่น่าสนใจ!
- ชนิดข้อมูล CHAR เร็วกว่าชนิดข้อมูล SQL VARCHAR ขณะดึงข้อมูล
สรุป
- ทุกคอลัมน์ในตารางจะกำหนดด้วยประเภทข้อมูลระหว่างการสร้างตาราง
- มี 6 หมวดหมู่หลักและหมวดหมู่เบ็ดเตล็ดอีก 1 หมวดหมู่ หมวดเบ็ดเตล็ดอื่นๆ มี 9 หมวดหมู่ย่อย เซิร์ฟเวอร์ SQL ประเภทข้อมูลและขนาดที่มีอยู่