ที่จริงก็อยากจะเขียนเป็นบทเป็นตอนๆนะ แต่ก็ยัง งง อยู่ เรียบเรียงไม่ถูก
เอาเป็นว่า หยิบเรื่องที่ได้จากประสบการณ์มาเขียนละกันค่ะ
สำหรับการสร้างตารางนี่ก็ทราบมานานแล้วแหละ เพราะเคยทำผิดมาแล้ว แต่ที่หยิบมาเพราะว่าเมื่อเดือนก่อนได้ยินคนที่ Office คุยกันเรื่องการสร้างตาราง เกี่ยวกับตัวเล็ก ตัวใหญ่ นี่แหละ ก็เลยได้บอกไปจากประสบการณ์ของเรา(มั้ง...ไม่รู้เอามะพร้าวไปขายสวนหรือเปล่า) และตอนนี้นึกได้เผื่อมีใครไปสร้างตาราง แล้วจะ งง ว่ามันเกิดอะไรขึ้น ทำไมดึงข้อมูลไม่ได้ นั่นคือ "ควรสร้างเป็นตัวเล็ก เพื่อความสะดวกในการใช้งาน หรือการจัดการ"
ที่จริงข้อจำกัดก็มีทางออกค่ะ เอาเป็นว่ามาลองดูกันดีกว่า ใครอยากลองก็เชิญทางนี้ค่ะ
1. กรณีสร้างจากคำสั่ง create
CREATE TABLE TEST (
TEST_ID varchar(25) NULL,
TEST_DESC varchar(25) NULL
);
จะสังเกตุได้ว่า ถ้าเราใช้ Tool เข้าไปดู จะสร้างเป็นตัวเล็กให้เราค่ะ เราจะได้ตารางชื่อ test และชื่อ field ก็ตัวเล็กด้วย ซึ่งตรงนี้การทำงานก็ปกติค่ะ
2. กรณีสร้างจาก Tool (ในที่นี้ใช้ Aqua Data Studio 4.7.2) เมื่อเรา Preview SQL ที่ Gen ให้ จะได้คำสั่งดังนี้
CREATE TABLE "public"."TEST2" (
"TEST2_ID" varchar(25) NULL,
"TEST2_DESC" varchar(25) NULL
);
เมื่อเราสร้างด้วยคำสั่งที่ Gen ให้ หรือ สร้างผ่าน Tool จะได้ตารางเป็นตัวใหญ่ตามที่กำหนดเพราะว่าอยู่ภายใต้เครื่องหมายคำพูด("")
แต่เมื่อเราต้องใช้งานตารางนี้ เราจะเลี่ยงการใช้ "" ไม่ได้ มาลองดู
คำสั่งแรก
select * from TEST2;
ผลลัพธ์ที่ได้เป็น
[Error] Script lines: 1-2 --------------------------
ERROR: relation "test2" does not exist
Line: 1
ถ้าจะให้การทำงานถูกต้อง ลองมาใช้คำสั่งนี้ดูค่ะ select * from "TEST2";
ผลลัพธ์ที่ได้เป็น ข้อมูลที่มีอยู่ ถ้าไม่มีข้อมูลก็ไม่ได้ขึ้น ERROR ค่ะ
บางคนอาจจะคิดว่าแล้วถ้าเราใช้คำสั่งเป็นตัวเล็กหมดได้หรือเปล่า
งั้นก็เอาคำสั่งนี้ไปลองค่ะ
select * from test2;
ผลลัพธ์ที่ได้เป็น
[Error] Script lines: 1-2 --------------------------
ERROR: relation "test2" does not exist
Line: 1
ทดสอบสำหรับ PostgreSQL Version 8.0.9 นะคะ
ถ้าเป็น Version ใหม่กว่านี้ไม่แน่ใจว่าจะเหมือนหรือต่างกันหรือไม่ค่ะ
เพราะว่าคำสั่ง SQL ก็ไม่เหมือนแล้วค่ะ คือ Version ใหม่ของ PostgreSQL นั้นจะต้องเขียนคำสั่งที่ถูกต้องจริงๆ
ไม่ยืดหยุด (ไม่คิดให้แล้วว่าเราต้องการอะไร) เช่น การเรียกใช้ Function เมื่อก่อน เรามีเคาะ ก็ยังเรียกดูข้อมูลได้
ตัวอย่าง
select cast('1' as integer);
select cast ('1' as integer); --ใช้กับ Version ใหม่ไม่ได้ เช่น 8.3
* หากมีอะไรเพิ่มเติม แนะนำด้วยนะคะ อันนี้ก็ได้มาที่เคยทำเท่านั้น ส่วนทฤษฎี ไม่ค่อยนิยม (ไม่ชอบอ่านหนังสือ)