Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. BOOLEAN หรือ TINYINT ใน MySQL - ควรใช้ตัวไหน?

    ความจริงเกี่ยวกับ BOOLEAN, BOOL และ TINYINT(1) ใน MySQL สรุปสั้น: BOOLEAN และ BOOL เป็นเพียง Alias (ชื่อเรียกอื่น) ของ TINYINT(1) เท่านั้น หลักฐานจากการตรวจสอบโครงสร้างตาราง 1. สร้างตารางด้วย BOOLEAN: CREATE TABLE BooleanDemo ( IsOn BOOLEAN ); ตรวจสอบโครงสร้างจริง: SHOW CREATE TABLE BooleanDe

  2. คำสั่งแสดงตัวแปรการตั้งค่า (Configuration Variables) ใน MySQL

    ดูค่าตัวแปรการตั้งค่าปัจจุบันของ MySQL ใช้คำสั่ง SHOW VARIABLES เพื่อแสดงตัวแปรการตั้งค่าทั้งหมด หรือกรองด้วย LIKE รูปแบบคำสั่ง (Syntax) -- แสดงทั้งหมด SHOW VARIABLES; -- กรองด้วย LIKE pattern SHOW VARIABLES LIKE %pattern%; ตัวอย่าง: แสดงตัวแปรที่มีคำว่า max SHOW VARIABLES LIKE %max%; ผลลัพธ์ตัว

  3. การทำงานของ CASE ใน MySQL - คู่มือฉบับสมบูรณ์

    ฟังก์ชัน CASE ใน MySQL ทำงานคล้าย Switch Statement CASE ใน MySQL มี 2 รูปแบบการใช้งานหลัก รูปแบบที่ 1: เปรียบเทียบเงื่อนไข (Searched CASE) CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END AS alias_name; รูปแบบที่ 2: เปรียบเทียบค่าของคอลัมน

  4. การ Insert ข้อมูลในตารางที่มี Primary Key Auto Increment ใน MySQL

    Insert ข้อมูลเมื่อคอลัมน์ Primary Key เป็น Auto Increment เมื่อคอลัมน์ Primary Key ถูกกำหนดเป็น AUTO_INCREMENT MySQL จะสร้างค่าลำดับอัตโนมัติ ไม่ต้องระบุค่าในคำสั่ง INSERT รูปแบบคำสั่ง (Syntax) INSERT INTO yourTableName (column1, column2, ...) VALUES (value1, value2, ...); หมายเหตุ: ไม่ต้องระบุคอ

  5. การอัปเดตข้อมูลจำนวนมากใน MySQL ด้วย CASE WHEN THEN ELSE

    Mass Update หลายเงื่อนไขด้วย CASE WHEN THEN ELSE เมื่อต้องการอัปเดตคอลัมน์เดียวกันแต่ให้ค่าต่างกันตามเงื่อนไขหลายๆ เงื่อนไขในคำสั่งเดียว สามารถใช้ CASE WHEN THEN ELSE END ภายในคำสั่ง UPDATE ได้ รูปแบบคำสั่ง (Syntax) UPDATE yourTableName SET yourColumnName = CASE WHEN yourColumnName = Value1 T

  6. การใช้ NOW() และ SYSDATE() ในคำสั่ง UPDATE datetime ใน MySQL

    พฤติกรรมของ NOW() และ SYSDATE() เมื่อใช้ใน UPDATE หลายแถว คำถามที่พบบ่อย: เมื่อรัน UPDATE ... SET datetime = NOW() แล้ว ทุกแถวที่อัปเดตจะมีค่า datetime เหมือนกันหรือไม่? คำตอบสั้น: ใช่ ทุกแถวจะได้ค่า datetime เหมือนกัน NOW() คืนค่าเวลาที่คงที่ (constant) ตั้งแต่ต้นการรันคำสั่ง (statement) ไม่ว่าจะ

  7. วนลูปผ่านทุกแถวของตารางใน MySQL ด้วย Stored Procedure

    การวนลูปอ่านข้อมูลทุกแถวในตาราง MySQL MySQL ไม่มีคำสั่ง FOR/EACH LOOP โดยตรงใน SQL ธรรมดา แต่สามารถใช้ Stored Procedure ร่วมกับคำสั่ง WHILE เพื่อวนลูปผ่านทุกแถวของตารางได้ รูปแบบคำสั่ง (Syntax) DELIMITER // CREATE PROCEDURE yourProcedureName() BEGIN DECLARE totalRows INT DEFAULT 0; DECLARE

  8. อัปเดตข้อมูลในเซลล์เดียวใน MySQL ด้วยคำสั่ง UPDATE

    การแก้ไขข้อมูลเฉพาะเซลล์เดี่ยวในตาราง MySQL เมื่อต้องการเปลี่ยนแปลงข้อมูลในเซลล์เพียงเซลล์เดียว สามารถใช้คำสั่ง UPDATE ร่วมกับเงื่อนไข WHERE เพื่อระบุแถวและคอลัมน์ที่ต้องการแก้ไขอย่างแม่นยำ รูปแบบคำสั่ง (Syntax) UPDATE yourTableName SET yourColumnName = newValue WHERE yourColumnName = oldValue;

  9. คิวรี่ MySQL เพื่อดึงข้อมูลผู้ใช้ที่ล็อกอินวันนี้

    การค้นหาผู้ใช้ที่ล็อกอินในวันปัจจุบัน เมื่อต้องการดึงข้อมูลผู้ใช้ที่มีการล็อกอินในวันนี้ โดยที่ฟิลด์วันที่เก็บเป็นประเภท String (VARCHAR/TEXT) สามารถใช้ฟังก์ชัน STR_TO_DATE() แปลงสตริงเป็นวันที่ แล้วเปรียบเทียบกับ CURDATE() ซึ่งจะคืนค่าวันที่ปัจจุบันโดยไม่รวมเวลา รูปแบบคำสั่ง (Syntax) SELECT yourCo

  10. จัดรูปแบบวันที่ DD/MM/YYYY ด้วยคำสั่ง SELECT และ ORDER BY ใน MySQL

    การจัดรูปแบบวันที่ในรูปแบบ DD/MM/YYYY และเรียงลำดับจากมากไปน้อย เมื่อต้องการจัดรูปแบบวันที่ให้อยู่ในรูปแบบ DD/MM/YYYY และเรียงลำดับข้อมูลจากวันที่ล่าสุดไปเก่าสุด (Descending) สามารถใช้ฟังก์ชัน STR_TO_DATE() ร่วมกับคำสั่ง ORDER BY ได้ รูปแบบคำสั่ง (Syntax) SELECT * FROM yourTableName WHERE yourDate

  11. MySQL: ใช้ FOR LOOP ใน Stored Procedure

    Syntax สำหรับ FOR LOOP ใน MySQL Stored Procedure: var2 THEN LEAVE loop_label; END IF; SET var3 = CONCAT(var3, var1, ,); SET var1 = var1 + 1; ITERATE loop_label; END LOOP; SELECT var3; END // DELIMITER ; ตัวอย่างจริง: พิมพ์ 1 ถึง 10 DELIMI

  12. MySQL: การเก็บค่าทศนิยม (DECIMAL) พร้อม Precision และ Scale

    เก็บค่าทศนิยมใน MySQL ใช้ DECIMAL ต้องเข้าใจ 2 พารามิเตอร์: Syntax: DECIMAL(total_digits, digits_after_decimal); ตัวอย่าง: DECIMAL(4,2) หมายถึง: รวม 4 หลัก สูงสุด 2 หลักหลังจุดทศนิยม พารามิเตอร์แรก: จำนวนหลักทั้งหมด (รวมฝั่งหน้าจุดทศนิยม) พารามิเตอร์ที่สอง: จำนวนหลักหลังจุดทศนิยม ค่าที่ Valid

  13. MySQL: ดึงข้อมูลที่เพิ่มในชั่วโมงล่าสุด ด้วย DATE_SUB() และ NOW()

    ใช้ DATE_SUB() และ NOW() เพื่อดึงแถวที่เพิ่มในชั่วโมงล่าสุด Syntax SELECT * FROM yourTableName WHERE yourDateTimeColumn <= DATE_SUB(NOW(), INTERVAL 1 HOUR); ตัวอย่างสร้างตารางและข้อมูล (4, Mike, 2018-12-18 12:10:00); ข้อมูลทั้งหมด +------+-------+---------------------+ | Id | Name | Login

  14. TINYINT(1) ใน MySQL: ขนาดเก็บข้อมูล 1 Byte ไม่ได้จำกัดค่าที่ 1

    หลายคนเข้าใจผิดว่า TINYINT(1) เก็บได้แค่ 0 และ 1 แต่จริงๆ ตัวเลขในวงเล็บ เป็น Display Width เท่านั้น** ไม่ส่งผลต่อช่วงค่าที่เก็บได้ ข้อเท็จจริงของ TINYINT คุณสมบัติค่า Storage Size1 Byte (8 bits) Signed Range-128 ถึง 127 Unsigned Range0 ถึง 255 Display Width (N)ใช้กับ ZEROFILL เท่านั้น สูตรค

  15. ค้นหาข้อความที่มีความยาวเฉพาะใน MySQL ด้วย CHAR_LENGTH และ LENGTH

    เมื่อต้องการ Query แถวที่ความยาวข้อความเท่ากับค่าที่กำหนด ใช้ CHAR_LENGTH() (นับตัวอักษร) หรือ LENGTH() (นับ Byte) ความแตกต่าง CHAR_LENGTH vs LENGTH ฟังก์ชันนับตัวอักษร ASCIIตัวอักษรไทย/Unicode CHAR_LENGTH(str) / CHARACTER_LENGTH(str)จำนวน Character (Code Points)1 Char = 11 Char = 1 (แม้ใช้ 3 B

  16. จัดลำดับตามความเกี่ยวข้อง (Relevance) ใน MySQL ด้วย CASE WHEN

    เมื่อต้องการเรียงผลลัพธ์ตาม ความเกี่ยวข้อง (Relevance) เช่น ค้นหาชื่อ Carol ให้ Carol Adams อยู่ก่อน Sam Carol Bond ใช้ CASE WHEN ใน ORDER BY ตัวอย่าง: ค้นหาชื่อที่มี Carol 1. สร้างตารางและเพิ่มข้อมูล (105, Sam Carol Bond); 2. Query แบบธรรมดา (ไม่เรียง Relevance) SELECT * FROM OrderByRelevance

  17. หาความต่างเวลาเป็นชั่วโมงใน MySQL ด้วย TIMESTAMPDIFF

    ฟังก์ชัน TIMESTAMPDIFF() ใน MySQL คำนวณความต่างระหว่างสอง Datetime/Timestamp ในหน่วยที่ระบุ (MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR) รูปแบบคำสั่ง TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2) -- คืนค่า: datetime_expr2 - datetime_expr1 (ในหน่วย unit) ตัวอย่าง: หาคว

  18. หาตำแหน่ง Substring สุดท้ายใน MySQL ด้วย CHAR_LENGTH, LOCATE, REVERSE

    MySQL ไม่มีฟังก์ชัน LAST_INDEX_OF() ตรงๆ แต่สามารถหาตำแหน่ง Substring สุดท้ายได้โดย **กลับสตริง (REVERSE) แล้วหาตำแหน่งแรก (LOCATE)** หลักการคำนวณ Position = CHAR_LENGTH(str) - LOCATE(delimiter, REVERSE(str)) + 1 รูปแบบคำสั่ง SELECT CHAR_LENGTH(yourColumn) - LOCATE(delimiter, REVERSE(yourColumn))

  19. BIGINT(8) ใน MySQL: ความหมายของตัวเลขในวงเล็บและขอบเขตค่า

    หลายคนเข้าใจผิดว่า BIGINT(8) จำกัดค่าสูงสุดได้แค่ 8 หลัก แต่จริงๆ ตัวเลขในวงเล็บ เป็น Display Width เท่านั้น** ไม่ส่งผลต่อช่วงค่าที่เก็บได้ ความจริงของ BIGINT คุณสมบัติค่า Storage Size8 Bytes (64 bits) Signed Range-9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807 Unsigned Range0 ถึง 18,4

  20. แปลง INT (Unix Timestamp) เป็น DATETIME ใน MySQL ด้วย FROM_UNIXTIME()

    เมื่อมีค่า Unix Timestamp (วินาทีนับจาก Epoch: 1970-01-01 00:00:00 UTC) ที่เก็บเป็น INT หรือ BIGINT ให้ใช้ FROM_UNIXTIME() แปลงเป็น DATETIME รูปแบบคำสั่ง SELECT FROM_UNIXTIME(yourIntColumn, %Y-%m-%d %H:%i:%s) AS datetime_value FROM yourTableName; Parameter ที่ 2 (Format) เป็น Optional หากละเว้นจะ

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:160/229  20-คอมพิวเตอร์/Page Goto:1 154 155 156 157 158 159 160 161 162 163 164 165 166