15 เม.ย. เวลา 13:20 • การศึกษา
Data By Shoper Gamer

รูปแบบข้อมูลพื้นฐานที่ SQL รองรับบน Django

โดย
เมื่อคุณทำงานกับ Django framework และ ต้องการสร้างแบบจำลอง (Models) ที่สอดคล้องกับตารางในฐานข้อมูล SQL, Django จะมี Field Types ที่เป็นตัวแทนของรูปแบบข้อมูลพื้นฐานที่ SQL รองรับ โดย Django จะจัดการการแปลง (mapping) ระหว่าง Field Types ของ Django กับ Data Types ของฐานข้อมูล SQL ที่คุณเลือกใช้งาน (เช่น PostgreSQL, MySQL, SQLite, Oracle)
1
นี่คือ Field Types หลักๆ ที่ Django framework รองรับ ซึ่งสัมพันธ์กับรูปแบบข้อมูลพื้นฐานของ SQL
  • ​1) ข้อมูลตัวเลข (Numeric Fields)
○ IntegerField
เทียบเท่ากับ `INTEGER` ใน SQL
○ SmallIntegerField
เทียบเท่ากับ `SMALLINT` ใน SQL
○ BigIntegerField
เทียบเท่ากับ `BIGINT` ใน SQL
○ FloatField
เทียบเท่ากับ `FLOAT` หรือ `REAL` ใน SQL
○ DecimalField เทียบเท่ากับ `DECIMAL` หรือ `NUMERIC` ใน SQL (กำหนดความแม่นยำ และ จำนวนทศนิยมได้)
○ BooleanField
เทียบเท่ากับ `BOOLEAN` หรือ `TINYINT(1)` (ขึ้นอยู่กับฐานข้อมูล) ใน SQL
○ NullBooleanField
เหมือน `BooleanField` แต่ยอมรับค่า `NULL` ได้
  • ​2) ข้อมูลตัวอักษร (String Fields
○ CharField(max_length=None)
เทียบเท่ากับ `VARCHAR` ใน SQL (ต้องกำหนด `max_length`)
○ TextField
เทียบเท่ากับ `TEXT` หรือ `CLOB` ใน SQL (สำหรับข้อความยาวๆ)
  • ​3) ข้อมูลวันที่ และ เวลา (Date and Time Fields)
○ DateField
เทียบเท่ากับ `DATE` ใน SQL
○ TimeField
เทียบเท่ากับ `TIME` ใน SQL
○ DateTimeField
เทียบเท่ากับ `TIMESTAMP` หรือ `DATETIME` ใน SQL
- `auto_now=True`
อัปเดตอัตโนมัติเมื่อมีการบันทึก object
- `auto_now_add=True` กำหนดค่าอัตโนมัติเมื่อสร้าง object ครั้งแรก
○ DurationField
เทียบเท่ากับ `INTERVAL` ใน SQL (เก็บช่วงเวลา)
  • ​4) ข้อมูลไบนารี (Binary Fileds)
○ BinaryField
(เทียบเท่ากับ `BLOB` หรือ `BYTEA` ใน SQL (สำหรับข้อมูลไบนารีดิบ)
  • ​5) Fields สำหรับความสัมพันธ์ (Relational Fields)
แม้จะไม่ใช่ Data Type พื้นฐาน แต่สำคัญในบริบทของ RDBMS)
○ ForeignKey
สร้างความสัมพันธ์แบบ Many-to-One กับ Model อื่น เทียบเท่ากับ Foreign Key constraint ใน SQL
○ ManyToManyField
สร้างความสัมพันธ์แบบ Many-to-Many กับ Model อื่น สร้างตารางเชื่อมโยงใน SQL
○ OneToOneField
สร้างความสัมพันธ์แบบ One-to-One กับ Model อื่น สร้าง Foreign Key ที่มี Unique constraint ใน SQL
  • ​6) Fields อื่นๆ
○ EmailField
เป็น `CharField` ที่มีการตรวจสอบรูปแบบอีเมล
○ URLField
เป็น `CharField` ที่มีการตรวจสอบรูปแบบ URL
○ UUIDField
เก็บค่า UUID (Universally Unique Identifier) เทียบเท่ากับ Data Type สำหรับ UUID ในบางฐานข้อมูล
  • ​การทำงานร่วมกับฐานข้อมูล SQL ผ่าน Django
เมื่อคุณกำหนด Model และ Field Types ใน Django, Django ORM (Object-Relational Mapper) จะทำหน้าที่แปลง Field Types เหล่านั้นให้เป็น Data Types ที่เหมาะสมกับฐานข้อมูล SQL ที่คุณกำหนดไว้ในไฟล์ `settings.py` ของ Django Project (เบื้องต้นจะเป็น SQLlite)
ตัวอย่างเช่น หากคุณใช้ PostgreSQL และ กำหนด Field เป็น `IntegerField` ใน Django Model, Django จะสร้างคอลัมน์ที่มี Data Type เป็น `integer` ในตาราง PostgreSQL
✏️ Shoper Gamer
  • ​รูปแบบข้อมูลพื้นฐานของ SQL 👇
Credit :
👇
  • ​https://docs.djangoproject.com/en/5.2/ref/databases/
  • ​https://docs.djangoproject.com/en/5.2/topics/db/sql/
  • ​https://medium.com/@RohitPatil18/django-orm-queries-and-mistakes-by-beginners-f3bb0464b9bc

ดูเพิ่มเติมในซีรีส์

โฆษณา