เดือน: กุมภาพันธ์ 2020

คนที่ทำงานด้านฐานข้อมูลบางครั้ง คงจะคุ้นเคยเรื่องคำสั่ง insert เป็นอย่างดี คำสั่งนี้มีทั้งการ insert เพียง 1 row จะมี syntax ว่า insert into <<table_name>> values (‘’,’’,’’);  ซึ่งการใช้คำสั่ง insert แบบนี้ จะเพิ่มข้อมูลเข้าสู่ตารางได้เพียงแค่ 1 เรคอร์ดเท่านั้น 

หรือหากต้องการ insert ทุกแถวจากตารางเก่าไปสู่ตารางใหม่ จะมี syntax ดังนี้คือ  insert into <<new_table_name>> select * from <<old_table_name>>; นี้เป็นคำสั่งที่เพิ่มข้อมูลของตารางหนึ่งเข้าสู่อีกตารางหนึ่ง ก่อนที่จะ insert data เราต้องมีการ create table ก่อน 

ซึ่งการ create เราก็มีการคิดแบบพลิกแพลงได้ คือ create table โดยระบุ type, column_name ไปตรงๆ เช่น create table a (col_1 varchar2(50),col_2 number); เป็นต้น หรือวิธีที่สองในการ create table โดยอ้างอิงกับ table เก่า คือ ใช้คำสั่งว่า create table <<new_table>> as select * from <<old_table>>

เรื่องการ create table พยายามระบุ tablescpace เพราะหากไม่กำหนด default tablespace มันอาจจะเข้าไปสร้าง tablespace ชื่อ users ได้ (tablespace users นี้ระบบฐานข้อมูล oracle จะสร้างให้เองโดยอัตโนมัติติดตั้งระบบฐานข้อมูลใหม่)

การ insert data หากว่าต้องการให้มันเร็วขึ้น และมีโครงสร้างเหมือนกับต้นทาง ให้เราใช้คำสั่ง create table <<new_table>> as select * from <<old_table>>; จะเร็วและให้ประสิทธิภาพได้ดีกว่า การ create table แล้วใช้วิธี insert เข้าไป  พยายามใช้ statement ที่ไม่เป็นการวนลูปเพราะว่าการวนลูปมันช้าและจะกินเวลานาน 

การจูนนิ่งเรื่องการ insert ที่เหมาะสมจะทำให้ data เข้าสู่ table ที่เราต้องการได้เร็วขึ้น ไม่ว่า data ที่นำเข้าจะมีกี่ล้านเรคคอร์ดก็ตาม และเมื่อสร้าง table แล้วพยายามหา constraint ต่างๆ เช่น unique constraint ก็ได้, foreign constaint 

และเรื่องการจัด index ให้ table ก็สำคัญมาก โดย index ที่ไม่ใช่ primary key เราเรียกว่า non-unique index หมายความว่าค่าในฟิลด์จะเหมือนกันระหว่างสอง table ได้ 

การเขียนโปรแกรม sql อาจไม่ใช่เรื่องยากในความคิดของใครหลายคน

แต่การเขียนโปรแกรมแล้วเพิ่มความเร็วของการรัน data เป็นสิ่งที่ทำให้โปรแกรมเมอร์มีสกิลการทำงานที่เพิ่มมากขึ้น 

อนึ่งคำสั่ง create table เป็นคำสั่งประเภทที่เรียกว่า data definition language เป็นภาษาที่นิยามเรื่อง table ใน database เวลาเขียนใน block begin end; จำเป็นต้องเขียนคำว่า execute immediate ก่อนหน้านั้นด้วย เช่น 

Execute immediate ‘create table a ()’ แต่หากว่าเป็นคำสั่ง insert, update,delete เราไม่จำเป็นต้องใช้ execute immediate นี่เป็นข้อแตกต่างระหว่าง data definition language, data manipulation language (insert, update,delete)

และในคำสั่งลบข้อมูลทิ้งทั้ง data  หากว่าต้องการลบโดยไม่ต้องใช้คำสั่ง commit อีกครั้งหนึ่งก็ให้พิมพ์ว่า truncate table จะเหมาะสมมากกว่า แต่หากใช้เพียง delete ต้องพิมพ์คำสั่ง delete ด้วยข้อมูลจึงจะหายออกไปจาก database อนึ่งโปรแกรมด้านการสอบถามข้อมูล (query data) สามารถเขียนรันที่หน้าจอ shell (หน้าจอสีดำๆ ได้เช่นกัน)

 

ขอบคุณเรื่องราวจาก  Gclub ฝากขั้นต่ำ50

Read More

ฐานข้อมูล DATABASE ของ SQL สามารถเลือก เพิ่ม ลบ  ข้อมูลในตารางได้มากมาย แล้วแต่จินตนาการเราจะสามารถคิดออก แต่โดยวิธีการแล้ว ก็ใช้คำสั่งไม่ยาก การเลือกใช้ SELECT, เพิ่มใช้ INSERT, ลบ ใช้ DROP นั่นเอง เป็นเบสิคพื้นฐานที่เราต้องใช้ในการจัดการ DATABASE

ในขั้นแอดวานซ์เพิ่มขึ้นไปหน่อยคือการเลือก ตัวตารางมาใช้งาน โดยระบุคอนดิชั่นที่ต้องการ เช่น 

SELECT column1, column2, columnN 

FROM table_name

WHERE [condition]

หากตามตัวอย่างแบบนี้ จะเป็นการเลือกเอ ชื่อ และรายได้มาใช้งาน จากฐานข้อมูลที่ชื่อ CUSTOMER โดยกำหนดเงื่อนไขว่า เงินเดือนมากกว่า 2000 ให้นำมาแสดง

SQL> SELECT ID, NAME, SALARY 

FROM CUSTOMERS

WHERE SALARY > 2000;

และเรายังประยุกต์ใช้กับข้อมูลที่เป็นตัวอักษร หรือที่เรียกว่า data type แบบ text ได้ด้วย โดยเปลี่ยน 

WHERE NAME=’ข้อความที่อยู่ในฐานข้อมูล’; แบบนี้นั่นเอง

นอกจาก WHERE ยังมี AND เป็นอีกหนึ่งเงื่อนไขที่น่าสนใจ เรียกใช้ดังนี้

SELECT column1, column2, columnN 

FROM table_name

WHERE [condition1] AND [condition2]…AND [conditionN];

ยกตัวอย่างให้เห็นชัดๆ

SQL> SELECT ID, NAME, SALARY 

FROM CUSTOMERS

WHERE SALARY > 2000 AND age < 25;

ระบบก็จะเลือกข้อมูลที่มีเงินเดือนมากกว่า 2000 และ อายุน้อยกว่า 25 มาแสดง

หรือเราจะใช้ OR ก็ได้ วิธีการใช้เช่นเดียวกัน แต่ความหมายเปลี่ยนจากสองคอนดิชั่นที่ต้องเหมือนกัน จะเป็นแค่ หรือ แทน ซึ่งทั้ง AND และ OR เงื่อนไขทั้งสองนี้มีข้อควรระวังที่สำคัญนั่นคือ ข้อมูลต้องเป็นจริงทั้งคู่ จึงจะทำงานได้ มิฉะนั้นจะเกิด ERROR

หากเราต้องการเปลี่ยนแปลงข้อมูลก็ทำได้เช่นกัน โดยใช้คำสั่ง

SQL > UPDATE ชื่อฐานข้อมูล

SET ชื่อคอลัมน์ = ‘ข้อมูลที่ต้องการเปลี่ยน’

WHERE [คอนดิชั่นที่ระบุ];

ในทางกลับกัน หากต้องการลบ table หรือตารางที่กำหนดให้ใช้แบบนี้

DELETE FROM table_name

WHERE [condition];

เราสามารถจัดเรียงข้อมูลได้ โดยมีสองประเภทคือเรียงจากน้อยไปหามาก และจากมากไปหาน้อย โดยเลือกหัวข้อคอลัมที่ต้องการ และระบุเงื่อนไขที่ต้องการ

SELECT column-list 

FROM table_name 

[WHERE condition] 

[ORDER BY column1, column2, .. columnN] [ASC | DESC]; 

และนอกจากการเรียงแล้ว เรายังจับกลุ่ม จัดกรุ๊ปได้ด้วย ด้วยคำสั่งคล้ายๆ กัน หรือจะใช้ร่วมด้วยกันเลยก็ได้ ดังนี้

SELECT column1, column2

FROM table_name

WHERE [ conditions ]

GROUP BY column1, column2

ORDER BY column1, column2;

 

 

ขอบคุณเรื่องราวดีๆที่  วิธีเล่นบาคาร่าให้ได้เงิน  ให้นำมาเสนอ

Read More