Tagged: MySQL Tips

MySQL Tips : Query with Join , Left Join , Right Join

ในการเรียกดูข้อมูลย่อมหลีกเลี่ยงไม่ได้ว่า เราจะต้องมีการเชื่อมตารางข้อมูลตั้งแต่ 2 ตารางขึ้นไปเพื่อดูความสัมพันธ์ของข้อมูล เพราะฉะนั้นการเรียกดูข้อมูลระหว่าง 2 ตารางใดๆเราจะเรียกใช้ sql statment “JOIN” ซึ่งมีทั้ง “LEFT JOIN”, “RIGHT JOIN” หรือ “JOIN” ปกติ โดยแต่ละระบบฐานข้อมูล การเรียกใช้ JOIN ทั้ง 3 แบบอาจแตกต่างกันได้ เช่น บนระบบฐานข้อมูล Oracle การใช้ LEFT JOIN จะใช้สัญลักษณ์ (+) แทน เป็นต้น...

SQL Tips : Select data with ” Case When “

ในการจัดทำรายงานจากข้อมูลในตาราง บางครั้งเราต้องการที่จะเปลี่ยนมุมมองในการนำเสนอข้อมูลจากแนวตั้งรายบรรทัดให้เปลี่ยนเป็นแนวนอน หรือบางทีเราต้องการแปลงข้อมูลด้วยเงื่อนไข เช่น ถ้าข้อมูล > 0 ให้แสดงค่านั้น นอกนั้นให้แสดงค่าเป็น 0 เป็นต้น ซึ่งใน MySQL, Oracle , SQL Servers หรือ SQL Statement ทั่วไปจะมีฟังก์ชันพื้นฐานให้ใช้นั่นคือ Case … When เป็นการแสดงข้อมูลโดยผูกเงื่อนไขเข้าไป ซึ่งมีรูปแบบการเรียกใช้ดังนี้ ( CASE WHEN < Condition > THEN <...

MySQL : Alter Table Add , Change , Drop Column

สำหรับฐานข้อมูล MySQL ก็มีวิธีการจัดการกับ Column ในตารางที่เราสร้างขึ้นมาด้วยเช่นกัน ไม่ต้องลบสร้างตารางใหม่ ไม่ว่าจะเป็นการ เพิ่มคอลัมน์ (Add Column), เปลี่ยนชื่อคอลัมน์ (Rename Column), หรือ ลบคอลัมน์ (Drop, Delete Column) เราเรียกใช้คำสั่งบรรทัดเดียวดังนี้ 1. Add Column มีรูปแบบการเรียกใช้ดังนี้ ALTER TABLE  <tab_name> ADD ( <new column> datatype ); ตัวอย่าง เพิ่มคอลัมธ์ใหม่ชื่อ...

MySQL : How to calculate Elapse time between 2 date time values

MySQL : How to calculate Elapse time between 2 date time values หากเราต้องการหาว่าระยะเวลาระหว่าง 2 ช่วงเวลาห่างกันเท่าไร ทำได้ดังนี้ ตัวอย่าง START_TIME END_TIME 4/18/2011 7:45:38 4/18/2011 7:51:50 เราสามารถเรียกใช้ SQL ดังนี้ select start_time,end_time, (unix_timestamp(end_time) – unix_timestamp(start_time)) sec (unix_timestamp(end_time) –...

SQL Tips : How to limiting result rows (Many Databases Platform)

SQL Tips : How to limiting result rows (Many Databases Platform) สวัสดีครับ พบกันอีกเช่นเคย วันนี้มี Tips เล็กๆมาฝากเกี่ยวกับการใช้ SQL Statment พอดีต้องทำงานส่ง (ซึ่งจริงๆก็มอบหมายให้น้องเป็นมือหลัก ผมเป็นมือรอง) แล้วติดปัญหาเรื่องการตัดข้อมูลจากตารางที่มีจำนวนข้อมูลมากๆ เช่น มีตารางข้อมูลจำนวน 10,000,000 records ซึ่งผมต้องนำส่งข้อมูลนี้ผ่านเครือข่ายเน็ตเวิร์กไปยังอีกหน่วยงาน โดยลิงค์ปกติที่ใช้อยู่ขนาดไม่ใหญ่จึงไม่สามารถส่งไปรวดเดียวได้ วิธีการของเราคือ จะซอยข้อมูลออกเป็นส่วนๆ แล้วทยอยส่งไป สมมติตัดส่งไปทีละ 100,000 ก็จะตัดส่งไปทั้งหมด...