Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. MySQL: แปลง BOOLEAN เป็น INTEGER ด้วย CAST()

    การแปลงค่า BOOL/BOOLEAN ให้เป็น INTEGER (0/1) ด้วย CAST ใน MySQL BOOL และ BOOLEAN เป็น Alias ของ TINYINT(1) ค่า TRUE = 1, FALSE = 0 การใช้ CAST() ช่วยให้ชัดเจนและควบคุมชนิดข้อมูลผลลัพธ์ ตัวอย่างการใช้งาน สร้างตารางชนิด BOOL: INSERT INTO convertBoolToIntDemo VALUES(TRUE), (FALSE), (TRUE), (FALSE);

  2. MySQL: นับจำนวนฟิลด์ (Columns) ทั้งหมดในทุกตารางของ Database

    การนับจำนวนคอลัมน์รวมทุกตารางด้วย INFORMATION_SCHEMA.COLUMNS View INFORMATION_SCHEMA.COLUMNS เก็บข้อมูลเมตาของคอลัมน์ทุกตารางในทุก Database สามารถนับจำนวนแถว (แต่ละแถว = 1 คอลัมน์) ได้ด้วย COUNT(*) กรองตาม TABLE_SCHEMA ตัวอย่างการใช้งาน Database sample: WHERE TABLE_SCHEMA = sample; +--------------

  3. MySQL: เปรียบเทียบ Timestamp ด้วย DATE()

    การเปรียบเทียบเฉพาะส่วนวันที่ของ TIMESTAMP ด้วย DATE() คอลัมน์ TIMESTAMP เก็บทั้งวันที่และเวลา หากต้องการเปรียบเทียบเฉพาะวันที่ (เว้นเวลา) ให้ใช้ฟังก์ชัน DATE() ดึงส่วนวันที่ออกมา ก่อนเปรียบเทียบ ตัวอย่างการใช้งาน สร้างตารางและเพิ่ม Timestamp: INSERT INTO comparingTimestampDemo(AdmissionDate) VALU

  4. MySQL: การใช้ฟังก์ชัน CAST() ในคำสั่ง SELECT

    การแปลงชนิดข้อมูลด้วย CAST() ใน MySQL ฟังก์ชัน CAST(expression AS type) แปลงค่าจากชนิดหนึ่งไปอีกชนิดหนึ่ง ใน SELECT ใช้ได้ทั้งเพื่อแสดงผล แปลงชนิดเพื่อคำนวณ หรือจัดรูปแบบ ตัวอย่างการใช้งาน สร้างตารางวันที่จัดส่ง: INSERT INTO castFunctionDemo VALUES(2019-01-31),(2018-07-12),(2016-12-06),(2017-08-25

  5. MySQL: GROUP BY คอลัมน์เดียว แต่ SELECT ทุกคอลัมน์ด้วย GROUP_CONCAT

    การ GROUP BY คอลัมน์เดียว แต่อยากได้ข้อมูลคอลัมน์อื่นทั้งหมด ปกติ GROUP BY ต้องการให้คอลัมน์ใน SELECT อยู่ใน GROUP BY หรืออยู่ในฟังก์ชันรวม หากต้องการรวมแถวตามคอลัมน์หนึ่ง แต่เก็บค่าคอลัมน์อื่นทั้งหมดไว้ ใช้ GROUP_CONCAT() รวมค่าเป็นสตริงคั่นด้วยคอมมา ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล: IN

  6. MySQL: เพิ่ม 10 นาทีให้กับ DATETIME ด้วย DATE_ADD()

    การบวกเวลา (Interval) ให้กับ DATETIME ด้วย DATE_ADD() ฟังก์ชัน DATE_ADD(date, INTERVAL expr unit) ใช้บวกช่วงเวลา (นาที, ชั่วโมง, วัน, เดือน, ปี) เข้ากับค่า DATE/DATETIME/TIMESTAMP ได้ ไวยากรณ์ (Syntax) SELECT DATE_ADD(yourColumnName, INTERVAL 10 MINUTE) FROM yourTableName; ตัวอย่างการใช้งาน สร้างต

  7. MySQL: จัดรูปแบบเวลาให้ am/pm เป็นตัวเล็กด้วย LOWER() และ DATE_FORMAT()

    การแสดงเวลา 12 ชั่วโมงพร้อม am/pm ตัวเล็ก ฟังก์ชัน DATE_FORMAT() กับ format %l:%i %p แสดงเวลา 12 ชั่วโมงพร้อม AM/PM ตัวใหญ่ ใช้ LOWER() ห่อหุ้มเพื่อแปลงเป็นตัวเล็ก ตัวอย่างการใช้งาน สร้างตารางและเพิ่มเวลา: INSERT INTO formatTime VALUES(12:40:34),(14:10:58),(16:56:40),(10:12:14); Query OK, 4 rows a

  8. MySQL: แทรกวันที่ปัจจุบันลงฐานข้อมูลด้วย NOW() และ CURDATE()

    การบันทึกวันที่ปัจจุบันด้วย NOW() และ CURDATE() ฟังก์ชัน NOW() คืนค่า DateTime ปัจจุบัน (YYYY-MM-DD HH:MM:SS) ส่วน CURDATE() คืนค่า Date เท่านั้น (YYYY-MM-DD) หากคอลัมน์เป็นชนิด DATE การใช้ NOW() จะทำงานได้แต่ MySQL จะแจ้ง Warning (Truncated) แก้ได้โดยใช้ CURDATE() ตัวอย่างการใช้งาน สร้างตารางคอลัม

  9. วิธีตรวจสอบสิทธิ์ (Privileges) ใน MySQL

    การตรวจสอบสิทธิ์ผู้ใช้ด้วย SHOW GRANTS คำสั่ง SHOW GRANTS แสดงสิทธิ์ที่มอบให้กับบัญชีผู้ใช้ สามารถตรวจสอบสิทธิ์ของตัวเอง (CURRENT_USER) หรือผู้ใช้อื่นได้ ไวยากรณ์ (Syntax) -- สิทธิ์ของผู้ใช้ปัจจุบัน SHOW GRANTS; -- สิทธิ์ของผู้ใช้เฉพาะ SHOW GRANTS FOR yourUserName@yourHostName; ตัวอย่าง: สิทธิ์ขอ

  10. MySQL: เรียงลำดับตัวเลขแต่ยกเว้น 0 ให้อยู่ท้ายสุด

    การเรียงตัวเลข ASC แต่ให้ 0 อยู่ท้ายสุดด้วย ORDER BY (col=0), col เทคนิคนี้ใช้เงื่อนไข Boolean (value = 0) ซึ่งคืนค่า 1 (TRUE) หรือ 0 (FALSE) ใน MySQL เรียง FALSE (0) ก่อน TRUE (1) ดังนั้นค่าที่ไม่ใช่ 0 (FALSE) จะมาก่อน ค่า 0 (TRUE) จะตามหลัง แล้วค่อยเรียงค่าจริงในแต่ละกลุ่ม ตัวอย่างการใช้งาน สร้าง

  11. MySQL: ดึงข้อมูลจากกลางรายการที่เรียงแล้วด้วย LIMIT OFFSET

    การดึงข้อมูลจากตำแหน่งกลางของรายการที่เรียงแล้วด้วย LIMIT offset, count ใช้ ORDER BY เรียงข้อมูลก่อน แล้วใช้ LIMIT offset, row_count เพื่อข้ามแถวแรกๆ (OFFSET) และดึงจำนวนแถวที่ต้องการ วิธีนี้ใช้สำหรับ Pagination หรือดึงหน้าที่ไม่ใช่หน้าแรก ตัวอย่างการใช้งาน สร้างตารางและเพิ่มชื่อ 12 รายการ: INSERT

  12. MySQL: INSERT INTO จากตารางหนึ่งไปอีกตาราง พร้อมตั้งค่าคอลัมน์คงที่

    การคัดลอกข้อมูลระหว่างตารางพร้อมกำหนดค่าคงที่ด้วย INSERT ... SELECT คำสั่ง INSERT INTO ... SELECT ช่วยคัดลอกข้อมูลจากตารางต้นทางไปตารางปลายทางได้ใน Query เดียว พร้อมสามารถกำหนดค่าคงที่ (Literal) ให้คอลัมน์ที่ไม่มีในตารางต้นทาง ตัวอย่างการใช้งาน สร้างตารางต้นทางและเพิ่มข้อมูล: INSERT INTO insertOne

  13. MySQL: หาผลรวมค่าในคอลัมน์ตามกลุ่มค่าเดียวกัน (GROUP BY SUM)

    การรวมค่า (SUM) แยกตามกลุ่มค่าที่เหมือนกันด้วย GROUP BY ใช้ GROUP BY จัดกลุ่มแถวที่มีค่าเหมือนกันในคอลัมน์ที่ระบุ แล้วใช้ SUM() คำนวณผลรวมของคอลัมน์ตัวเลขในแต่ละกลุ่ม ตัวอย่างการใช้งาน สร้างตารางค่าใช้จ่ายลูกค้า: INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES(4444, 100); Query

  14. MySQL: เรียงลำดับหลายคอลัมน์พร้อมกันด้วย ORDER BY

    การเรียงลำดับหลายคอลัมน์ด้วย ORDER BY คอลัมน์1, คอลัมน์2 MySQL รองรับการเรียงลำดับหลายระดับ โดยระบุคอลัมน์ใน ORDER BY คั่นด้วยเครื่องหมายจุลภาค (,) คอลัมน์แรกเป็นหลัก คอลัมน์ถัดไปใช้เรียงภายในกลุ่มที่ค่าคอลัมน์แรกเท่ากัน ไวยากรณ์ (Syntax) SELECT col1, col2, col3 FROM yourTableName ORDER BY col2, co

  15. แปลง UNIX Timestamp เป็นรูปแบบวันที่มนุษย์อ่านได้ใน MySQL

    การแปลง Unix Timestamp ด้วย FROM_UNIXTIME() ฟังก์ชัน FROM_UNIXTIME() แปลง Unix Timestamp (วินาทีนับจาก 1970-01-01 UTC) ให้เป็นวันที่/เวลาในรูปแบบที่อ่านง่าย พร้อมรองรับ Format String ตามต้องการ ตัวอย่างการใช้งาน สร้างตารางและเพิ่ม Timestamp: INSERT INTO timeConversionDemo VALUES(1511548200); Query

  16. MySQL: อัปเดตหลายแถวในคอลัมน์เดียวด้วย CASE WHEN

    การอัปเดตหลายแถวเงื่อนไขต่างกันในคอลัมน์เดียวด้วย CASE เมื่อต้องการอัปเดตค่าในคอลัมน์เดียวกันแต่ให้ค่าต่างกันไปตามเงื่อนไข (เช่น ID 10001 → 45, ID 10002 → 52) ให้ใช้ CASE WHEN ... THEN ... END ภายในคำสั่ง UPDATE ... SET ทำได้ใน Query เดียว ตัวอย่างการใช้งาน สร้างตารางคะแนนนักเรียน: INSERT INTO upd

  17. MySQL: ค้นหาคอลัมน์ที่มีตัวอักษรพิมพ์ใหญ่ (Capital Letter)

    การค้นหาข้อมูลที่มีตัวพิมพ์ใหญ่ด้วย CAST ... BINARY และ RLIKE MySQL ค้นหาข้อความแบบ Case-insensitive โดยค่าเริ่มต้น (ขึ้นกับ Collation) หากต้องการค้นหาเฉพาะแถวที่มีตัวอักษรพิมพ์ใหญ่ (A-Z) ต้องบังคับให้เปรียบเทียบแบบ Binary (Case-sensitive) ด้วย CAST(... AS BINARY) แล้วค่อยใช้ RLIKE (Regular Expressi

  18. MySQL: ค้นหาสตริงที่มีอักขระพิเศษด้วย REGEXP

    การค้นหาข้อมูลที่มีอักขระพิเศษด้วย Regular Expression ใช้ REGEXP (หรือ RLIKE) พร้อม Pattern [^a-zA-Z0-9] เพื่อค้นหาแถวที่มีอักขระนอกเหนือจากตัวอักษรอังกฤษและตัวเลข (Special Characters) ไวยากรณ์ (Syntax) SELECT * FROM yourTableName WHERE yourColumnName REGEXP [^a-zA-Z0-9]; ตัวอย่างการใช้งาน สร้างตา

  19. แก้ไข MySQL ERROR 1064 (42000): Syntax Error ใกล้ 'var_char'

    การแก้ไขข้อผิดพลาด Syntax Error 1064 จากการใช้ var_char แทน varchar ข้อผิดพลาด ERROR 1064 (42000): You have an error in your SQL syntax เกิดขึ้นบ่อยเมื่อพิมพ์ชนิดข้อมูลผิด เช่น ใช้ var_char แทน VARCHAR (MySQL ไม่มีชนิดข้อมูลชื่อ var_char) ตัวอย่างข้อผิดพลาด ); ERROR 1064 (42000): You have an error

  20. วิธีเลือกค่าที่ไม่ซ้ำ (DISTINCT) จากคอลัมน์เดียวใน MySQL

    การเลือกค่า Distinct จากคอลัมน์เดียวด้วย MAX() และ GROUP BY ใน MySQL หากต้องการเลือกค่าที่ไม่ซ้ำจากคอลัมน์หนึ่ง (เช่น StudentId) แต่ต้องการดึงคอลัมน์อื่นมาด้วย (เช่น StudentName) ไม่สามารถใช้ SELECT DISTINCT StudentId, StudentName ได้โดยตรง เพราะจะได้คู่ที่ไม่ซ้ำทั้งคู่ วิธีแก้คือใช้ฟังก์ชันรวม (Agg

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:119/229  20-คอมพิวเตอร์/Page Goto:1 113 114 115 116 117 118 119 120 121 122 123 124 125