วันอาทิตย์ที่ 31 มกราคม พ.ศ. 2559

To Do week3(Constraints)

What constraints does your selected DBMS support?
  -SQL มีข้อจำกัดในการระบุลงในตาราง เพื่อให้การเลือกและการจัดเก็บข้อมูลใน database เป็นไปอย่างถูกต้อง อธิเช่น

  1.  NOT NULL - คือการกำหนดให้ columns นั้น เป็น null ไม่ได้
  2. UNIQUE - คือการกำหนดให้ข้อมูลใน columns นั้นไม่สามารถซ้ำกันได้
  3. PRIMARY KEY - คือการกำหนดให้ columns นั้น เก็บค่า null  ไม่ได้ และ มีข้อมูลที่ไม่ซ้ำกัน
  4. FOREIGN KEY - คือการกำหนดให้ columns นั้นเก็บข้อมูลเดียวกันกับ column ในtable อื่น เพื่อใช้เป็นตัวเชื่อมโยงกันระหว่าง table 
  5. CHECK - คือการกำหนดให้ columns นั้นเก็บค่าที่เฉพาะเจาะจง
  6. DEFAULT - คือการระบุค่าเริ่มต้นสำหรับ columns นั้นๆ

 โดยการระบุ constraints  นั้นจะทำตั้งแต่การสร้างตาราง(created) หรือการแก้ไขรายละเอียดของตาราง(ALTER)เมื่อตารางนั้นได้ถูกสร้างขึ้นแล้ว
อ้างอิงจาก: http://www.w3schools.com/sql/sql_constraints.asp

How to specify them?
SQL CREATE TABLE + CONSTRAINT 
CREATE TABLE table_name
(
column_name1 data_type(sizeconstraint_name,
column_name2 data_type(sizeconstraint_name,
column_name3 data_type(sizeconstraint_name,
....
);

ทดลองสร้างตาราง และกำหนดCONSTRAINT 

รูปที่1 แสดงการสร้างตาราง และ แสดงรายละเอียดของตาราง 

 จากรูปที่1จะเห็นว่า 
  • id ให้เป็น PRIMARY KEY  และไม่สามารถเก็บค่า null ได้
  • name และ lastname ไม่สามารถเก็บค่า null ได้
  • age กำหนดCONSTRAINT  โดยใช้คำสั่ง CHECK   ให้ข้อมูลที่ใส่ต้องมีค่ามากกว่า20
  • status กำหนดค่า DEFAULT ให้เป็น S

ทอลองใส่ข้อมูล

รูปที่2 แสดงการใส่ข้อมูล

 จากรูปที่2จะเห็นว่า 

  • ถ้าเราไม่กำหนดค่าใน column status database จะเก็บข้อมูลเป็น s ซึ่งเป็นค่า DEFAULT ที่เราได้ตั้งไว้
  • มีข้อผิดพลาดในการใช้ CONSTRAINT  โดยใช้คำสั่ง CHECK  เนื่องจากเรากำหนดให้ age>20 แต่ค่าที่เราใส่เค้าไปเป็น 19 *จะหาทางแก้ไขต่อไป



รูปที่3 แสดงการใส่ข้อมูล

จากรูปที่3จะเห็นว่า

  • ถ้าหากไม่ใส่ข้อมูลช่อง lastname จะไม่สามารถเพิ่มข้อมูลได้เนื่องจาก เรากำหนดCONSTRAINT ไม่ให้เก็บค่า null

รูปที่4 แสดงการใส่ข้อมูล

จากรูปที่4จะเห็นว่า

  • ในกรอบสีแดง เป็นการใส่ค่าที่มี id ซ้ำกับค่าที่อยู๋ table อยู่แล้ว ทำให้ไม่สามารถใส่ค่าไปยังตารางได้ เนื่องจาก id เป็น PRIMARY KEY ซึ่งค่าที่เก็บไว้นั้นไม่สามารถซ้ำกันได้
  • ในกรอบสีเขียว เป็นการใส่ค่า โดยที่ id ไม่ซ้ำกัน แต่ name กับ lastname ซ้ำ แต่ยังสามารถใส่ค่าได้ เพราะ name และ lastname ไม่ได้ถูกกำหนดให้เป็น UNIQUE

ไม่มีความคิดเห็น:

แสดงความคิดเห็น