ประเภทข้อมูลของ SQL

ประเภทของข้อมูล และขอบเขตที่ใช้ใน Microsoft Access, MySQL และ SQL Server

ประเภทของข้อมูล Microsoft Access

ประเภทข้อมูล คำอธิบาย จัดเก็บ
Text ใช้สำหรับข้อความ หรือ ส่วนผสมของข้อความและตัวเลข สูงสุด 255 ตัวอักษร  
Memo

Memo ใช้สำหรับข้อความที่มีจำนวนมาก สามารถเก็บข้อความได้สูงสุด 65,536 ตัวอักษร

หมายเหตุ: ไม่สามารถจัดเรียงฟิลด์ memo ได้ แต่พวกเขาสามารถค้นหาได้

 
Byte อนุญาตให้มีเลขที่อยู่ระหว่าง 0 ถึง 255 1 ไบต์
Integer อนุญาตให้มีเลขที่อยู่ระหว่าง -32,768 ถึง 32,767 2 ไบต์
Long อนุญาตให้มีเลขทุกตัวเลขที่อยู่ระหว่าง -2,147,483,648 ถึง 2,147,483,647 4 bytes
Single ความยาวของเลขทศนิยมที่สูงสุด 1 ทศนิยม 4 bytes
Double ความยาวของเลขทศนิยมที่สูงสุด 2 ทศนิยม 8 ไบต์
Currency

ใช้สำหรับเงิน สนับสนุน 15 ตำแหน่งของเงิน และ 4 ตำแหน่งของตัวเลขทศนิยม

คำเตือน: คุณสามารถเลือกเงินของประเทศที่คุณต้องการ

8 ไบต์
AutoNumber ฟิลด์ AutoNumber จะแจกจ่ายเลขให้แต่ละบันทึกโดยอัตโนมัติ ทั่วไปจะเริ่มต้นด้วยเลข 1 4 bytes
Date/Time ใช้สำหรับวัน/เวลา 8 ไบต์
Yes/No

ฟิลด์ทางวิชาการ สามารถแสดงเป็น Yes/No หรือ True/False หรือ On/Off

ในรหัสคำสั่งใช้ค่าคงที่ True และ False (เท่ากับ 1 และ 0)

หมายเหตุ: ไม่อนุญาตให้มีค่า Null ในฟิลด์ Yes/No

1 บิต
Ole Object สามารถเก็บรูปภาพ บันทึกเสียง วิดีโอ หรือ BLOBs (Binary Large OBjects) อื่น ๆ สูงสุด 1GB
Hyperlink มีลิงก์ไปยังไฟล์อื่น รวมถึงเว็บไซต์  
Lookup Wizard อนุญาตให้คุณสร้างรายการตัวเลือกที่สามารถเลือกจากตารางตัวเลือกด้านล่าง 4 bytes

ประเภทของข้อมูล MySQL

ใน MySQL มีสามประเภทหลัก: ประเภทของข้อความ ประเภทของตัวเลข และประเภทของวัน/เวลา

ประเภทของ Text:

ประเภทข้อมูล คำอธิบาย
CHAR(size) บันทึกข้อความที่มีความยาวเรียบร้อย (สามารถประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์พิเศษ) ระบุความยาวของข้อความในวงเล็บ สูงสุด 255 ตัวอักษร。
VARCHAR(size)

บันทึกข้อความที่มีความยาวที่แตกต่างกัน (สามารถประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์พิเศษ) ระบุความยาวของข้อความในวงเล็บ สูงสุด 255 ตัวอักษร。

注释:如果值的长度大于 255,则被转换为 TEXT 类型。

TINYTEXT หมายเหตุ: ถ้าความยาวของค่ามากกว่า 255 ตัวอักษร จะถูกเปลี่ยนเป็นรูปแบบ TEXT
TINYTEXT จัดเก็บข้อความที่มีความยาวสูงสุด 255 ตัวอักษร
TEXT จัดเก็บข้อความที่มีความยาวสูงสุด 65,535 ตัวอักษร
BLOB ใช้สำหรับ BLOBs (Binary Large OBjects) จัดเก็บข้อมูลสัญญาณบิตสูงสุด 65,535 ได้
MEDIUMTEXT จัดเก็บข้อความที่มีความยาวสูงสุด 16,777,215 ตัวอักษร
MEDIUMBLOB ใช้สำหรับ BLOBs (Binary Large OBjects) จัดเก็บข้อมูลสัญญาณบิตสูงสุด 16,777,215 ได้
LONGTEXT จัดเก็บข้อความที่มีความยาวสูงสุด 4,294,967,295 ตัวอักษร
LONGBLOBใช้สำหรับ BLOBs (Binary Large OBjects) จัดเก็บข้อมูลสัญญาณบิตสูงสุด 4,294,967,295 ได้,ENUM(,xy

z

,etc.)

อนุญาตให้คุณใส่รายการค่าที่เป็นไปได้ สามารถระบุค่าสูงสุด 65535 รายการในรายการ ENUM ถ้าค่าที่ใส่ไม่มีในรายการ จะใส่ค่าว่าง

หมายเหตุ: ค่าเหล่านี้จะถูกเก็บเป็นลำดับที่คุณใส่ สามารถใส่ค่าที่เป็นไปได้ในรูปแบบนี้: ENUM('X','Y','Z')

ประเภท Number:

ประเภทข้อมูล คำอธิบาย
SETsize) เหมือน ENUM แต่ SET สามารถมีรายการรายการที่สูงสุด 64 รายการ แต่ SET สามารถเก็บค่าหลายตัว
SMALLINT(size) -32768 ถึง 32767 ปกติ 0 ถึง 65535 ไม่มีสัญญาณ * ในกรอบเลขที่กำหนดจำนวนตัวเลขสูงสุด
MEDIUMINT(size) -8388608 ถึง 8388607 ปกติ 0 ถึง 16777215 ไม่มีสัญญาณ * ในกรอบเลขที่กำหนดจำนวนตัวเลขสูงสุด
INT(size) -2147483648 ถึง 2147483647 ปกติ 0 ถึง 4294967295 ไม่มีสัญญาณ * ในกรอบเลขที่กำหนดจำนวนตัวเลขสูงสุด
BIGINT(size) -9223372036854775808 ถึง 9223372036854775807 ปกติ 0 ถึง 18446744073709551615 ไม่มีสัญญาณ * ในกรอบเลขที่กำหนดจำนวนตัวเลขสูงสุด
FLOAT(size,d) ตัวเลขเล็กที่มีจุดเลขของเลือกที่ลอยขึ้น ในกรอบเลขที่กำหนดจำนวนตัวเลขสูงสุด ในตัวอักษร d กำหนดจำนวนตัวเลขสูงสุดของจุดเลข
DOUBLE(size,d) ตัวเลขใหญ่ที่มีจุดเศษ ในตัวเลขที่ระบุในวงเล็บกำหนดจำนวนตัวเลขสูงสุด ในตัวเลขที่ระบุใน d กำหนดจำนวนตัวเลขที่อยู่ด้านขวาของจุดเศษสูงสุด
DECIMAL(size,d) ประเภท DOUBLE ที่เก็บเป็นตัวอักษร ยอมรับจุดเศษที่เรียบร้อย

*ประเภทตัวเลขที่มี ตัวเลขเต็มเพิ่มเติม โดยมาก อาจเป็นตัวเลขลบหรือบวก ถ้าเพิ่มคุณสมบัติ UNSIGNED ระยะทางจะเริ่มต้นที่ 0 แทนที่จะเริ่มต้นที่ตัวเลขลบ

ประเภท Date

ประเภทข้อมูล คำอธิบาย
DATE()

วัน รูปแบบ: YYYY-MM-DD

หมายเหตุ: ขอบเขตที่สนับสนุนเป็น '1000-01-01' ถึง '9999-12-31'

DATETIME()

*ชุดวันและเวลา รูปแบบ: YYYY-MM-DD HH:MM:SS

หมายเหตุ: ขอบเขตที่สนับสนุนเป็น '1000-01-01 00:00:00' ถึง '9999-12-31 23:59:59'

TIMESTAMP()

*ชื่อเวลา รูปแบบ: YYYY-MM-DD HH:MM:SS

หมายเหตุ: ขอบเขตที่สนับสนุนเป็น '1970-01-01 00:00:01' UTC ถึง '2038-01-09 03:14:07' UTC

TIME()

เวลา รูปแบบ: HH:MM:SS

หมายเหตุ: ขอบเขตที่สนับสนุนเป็น '-838:59:59' ถึง '838:59:59'

YEAR()

ปีในรูปแบบ 2 หรือ 4 ตัว

หมายเหตุ: ค่าที่ยอมรับในรูปแบบ 4 ตัว คือ 1901 ถึง 2155 ค่าที่ยอมรับในรูปแบบ 2 ตัว คือ 70 ถึง 69 แสดงว่าจากปี 1970 ถึง 2069

* แม้ว่า DATETIME และ TIMESTAMP จะกลับรูปแบบเดียวกัน แต่วิธีที่ทำงานของมันต่างกันมาก ในการ INSERT หรือ UPDATE คำสั่ง TIMESTAMP จะตั้งค่าตัวเองเป็นวันและเวลาปัจจุบัน TIMESTAMP ยังรับรูปแบบต่างๆ อีกเช่น YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD หรือ YYMMDD

ประเภทข้อมูล SQL Server

ข้อความ Character ตัวอักษร

ประเภทข้อมูล คำอธิบาย จัดเก็บ
char(n) ตัวอักษรความยาวเรียบร้อย 8,000 ตัวอักษร n
varchar(n) สามารถยาวโดยประมาณ 8,000 ตัวอักษร  
varchar(max) สามารถยาวโดยประมาณ 1,073,741,824 ตัวอักษร  
text สามารถยาวโดยประมาณ 2GB ของข้อมูลตัวอักษร  

ข้อความ Unicode:

ประเภทข้อมูล คำอธิบาย จัดเก็บ
nchar(n) ข้อมูล Unicode ขนาดเรียบร้อย สามารถเก็บได้ถึง 4,000 ตัวอักษร。  
nvarchar(n) ข้อมูล Unicode ขนาดไม่แน่นอน สามารถเก็บได้ถึง 4,000 ตัวอักษร。  
nvarchar(max) ข้อมูล Unicode ขนาดไม่แน่นอน สามารถเก็บได้ถึง 536,870,912 ตัวอักษร。  
ntext ข้อมูล Unicode ขนาดไม่แน่นอน สามารถเก็บได้ถึง 2GB ตัวอักษรข้อมูล。  

ประเภท Binary:

ประเภทข้อมูล คำอธิบาย จัดเก็บ
bit อนุญาต 0, 1 หรือ NULL  
binary(n) ข้อมูลบีนารี่ขนาดเรียบร้อย สามารถเก็บได้ถึง 8,000 ไบต์。  
varbinary(n) ข้อมูลบีนารี่ขนาดไม่แน่นอน สามารถเก็บได้ถึง 8,000 ไบต์。  
varbinary(max) ข้อมูลบีนารี่ขนาดไม่แน่นอน สามารถเก็บได้ถึง 2GB ไบต์。  
image ข้อมูลบีนารี่ขนาดไม่แน่นอน สามารถเก็บได้ถึง 2GB。  

ประเภท Number:

ประเภทข้อมูล คำอธิบาย จัดเก็บ
tinyint อนุญาตให้เก็บตัวเลขทั้งหมดที่อยู่ระหว่าง 0 ถึง 255。 1 ไบต์
smallint อนุญาตให้เก็บตัวเลขทั้งหมดที่อยู่ระหว่าง -32,768 ถึง 32,767。 2 ไบต์
int อนุญาตให้เก็บตัวเลขทั้งหมดที่อยู่ระหว่าง -2,147,483,648 ถึง 2,147,483,647。 4 bytes
bigint อนุญาตให้เก็บตัวเลขทั้งหมดที่อยู่ระหว่าง -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807。 8 ไบต์
decimal(p,s)

ตัวเลขที่มีความเร็วและสัดส่วนที่เป็นตัวเลขตัวเดียว อนุญาตให้เก็บตัวเลขที่อยู่ระหว่าง -10^38 +1 ถึง 10^38 -1。

ตัวอักษร p บอกว่าจำนวนตำแหน่งที่เก็บที่สามารถเก็บทั้งทางด้านฝั่งซ้ายและฝั่งขวาของจุดขนานเศษสูงสุด ตัวอักษร p จะต้องเป็นค่าที่อยู่ระหว่าง 1 ถึง 38 ค่าเริ่มต้นคือ 18。

ตัวอักษร s บอกว่าจำนวนตำแหน่งที่เก็บที่ด้านขวาของจุดขนานเศษสูงสุด ตัวอักษร s จะต้องเป็นค่าที่อยู่ระหว่าง 0 ถึง p ค่าเริ่มต้นคือ 0。

5-17 ไบต์
numeric(p,s)

ตัวเลขที่มีความเร็วและสัดส่วนที่เป็นตัวเลขตัวเดียว อนุญาตให้เก็บตัวเลขที่อยู่ระหว่าง -10^38 +1 ถึง 10^38 -1。

ตัวอักษร p บอกว่าจำนวนตำแหน่งที่เก็บที่สามารถเก็บทั้งทางด้านฝั่งซ้ายและฝั่งขวาของจุดขนานเศษสูงสุด ตัวอักษร p จะต้องเป็นค่าที่อยู่ระหว่าง 1 ถึง 38 ค่าเริ่มต้นคือ 18。

ตัวอักษร s บอกว่าจำนวนตำแหน่งที่เก็บที่ด้านขวาของจุดขนานเศษสูงสุด ตัวอักษร s จะต้องเป็นค่าที่อยู่ระหว่าง 0 ถึง p ค่าเริ่มต้นคือ 0。

5-17 ไบต์
smallmoney ข้อมูลเงินสดที่อยู่ระหว่าง -214,748.3648 และ 214,748.3647。 4 bytes
money ข้อมูลเงินสดที่อยู่ระหว่าง -922,337,203,685,477.5808 และ 922,337,203,685,477.5807。 8 ไบต์
float(n)

ตัวเลข floating-point ที่มีความเร็วจาก -1.79E + 308 ถึง 1.79E + 308。

ปรากฏการณ์ n บอกว่าฟิールドนี้จะเก็บ 4 ไบต์หรือ 8 ไบต์。float(24) จะเก็บ 4 ไบต์ และ float(53) จะเก็บ 8 ไบต์。ค่าเริ่มต้นของ n คือ 53。

4 หรือ 8 bytes
real ตัวเลขที่มีความเที่ยงตรงระหว่าง -3.40E + 38 ถึง 3.40E + 38 โดยมีความเที่ยงตรงแบบ floating-point 4 bytes

ประเภท Date

ประเภทข้อมูล คำอธิบาย จัดเก็บ
datetime จาก 1753 มกราคม 1 ถึง 9999 ธันวาคม 31 ความเที่ยงตรงสูงสุด 3.33 มิลลิวินาที 8 bytes
datetime2 จาก 1753 มกราคม 1 ถึง 9999 ธันวาคม 31 ความเที่ยงตรงสูงสุด 100 นาโนวาท 6-8 bytes
smalldatetime จาก 1900 มกราคม 1 ถึง 2079 มิถุนายน 6 ความเที่ยงตรงสูงสุด 1 นาที 4 bytes
date จัดเก็บวันเท่านั้น จาก 0001 มกราคม 1 ถึง 9999 ธันวาคม 31 3 bytes
time จัดเก็บเวลาเท่านั้น ความเที่ยงตรงสูงสุด 100 นาโนวาท 3-5 bytes
datetimeoffset เหมือน datetime2 แต่เพิ่มความเป็นต่างกันตามหมู่เวลา 8-10 bytes
timestamp จัดเก็บเลขเดียวที่ขึ้นด้านหลังเมื่อสร้างหรือแก้ไขบรรทัดใดๆ จะปรับปรุงตัวเลขนี้ timestamp ฐานหน้าจอภายใน ไม่สอดคล้องกับเวลาที่แท้จริง แต่ละตารางสามารถมี timestamp หนึ่งตัวเท่านั้น  

ประเภทข้อมูลอื่น ๆ

ประเภทข้อมูล คำอธิบาย
sql_variant จัดเก็บข้อมูลประเภทข้อมูลต่าง ๆ สูงสุด 8,000 ไบต์ ยกเว้น text, ntext และ timestamp
uniqueidentifier จัดเก็บอ้างอิงรหัสไอดีเดียวที่สำคัญ (GUID)
xml จัดเก็บข้อมูลที่ฟอร์แมต XML สูงสุด 2GB
cursor จัดเก็บอ้างอิงที่ใช้สำหรับคำสั่งการปฏิบัติการฐานข้อมูล
table จัดเก็บผลลัพธ์ตัวเลขเพื่อการประมวลผลในอนาคต