Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. ลบข้อมูลหลายแถวใน MySQL ด้วย JOIN (Delete Multiple Entries)

    การ DELETE หลายแถวพร้อมกันด้วย Self-JOIN ใช้ DELETE ... FROM table JOIN table alias ON condition เพื่อลบแถวที่ตรงเงื่อนไขการ Join (มักใช้ลบ Duplicates หรือข้อมูลที่เกี่ยวข้อง) Syntax DELETE t1 FROM table_name t1 JOIN table_name t2 ON t1.column = t2.column WHERE t2.column = value; ตัวอย่าง: ลบแถวท

  2. ค้นหาข้อมูลตามวันที่ใน MySQL ใช้ DATE() แยกวันที่จาก DATETIME

    การกรองข้อมูลตามวันที่ (Date Part) จากคอลัมน์ DATETIME ใช้ฟังก์ชัน DATE(datetime_column) เพื่อดึงเฉพาะส่วนวันที่ (ตัดเวลาออก) แล้วเปรียบเทียบกับวันที่ที่ต้องการ Syntax SELECT * FROM table_name WHERE DATE(datetime_column) = YYYY-MM-DD; ตัวอย่างการใช้งาน สร้างตารางบันทึกการเดินทาง: INSERT INTO Dem

  3. ป้องกันไม่ให้ Insert ค่า 0 ลงในคอลัมน์ MySQL ด้วย Trigger BEFORE INSERT

    ใช้ Trigger ป้องกันการ Insert ค่า 0 สร้าง BEFORE INSERT TRIGGER ตรวจสอบค่าก่อน Insert หากเป็น 0 ให้ Raise Error ด้วย SIGNAL SQLSTATE 45000 Syntax Trigger DELIMITER // CREATE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN IF NEW.column_name = 0 THEN SIGNAL SQLSTATE 4

  4. SELECT คอลัมน์ชื่อ from และ to (Reserved Words) ใน MySQL ต้องใช้ Backtick

    การ Select คอลัมน์ที่เป็น Reserved Words (from, to) คำว่า FROM และ TO เป็น **Reserved Words** ใน MySQL หากใช้เป็นชื่อคอลัมน์ ต้องห่อด้วย **Backtick (`)** ทุกครั้งที่อ้างอิง Syntax SELECT `to`, `from` FROM your_table_name; ตัวอย่างการสร้างตารางและใช้งาน สร้างตารางชื่อคอลัมน์เป็น from และ to: INSER

  5. ใช้ REGEXP ใน MySQL ค้นหาเฉพาะหมายเลขโทรศัพท์รูปแบบ XXX-XXX-XXXX

    การใช้ Regular Expression (REGEXP) กรองข้อมูลรูปแบบหมายเลขโทรศัพท์ MySQL รองรับ REGEXP สำหรับ Pattern Matching ใช้กรองเฉพาะแถวที่ตรงตามรูปแบบที่กำหนด ตัวอย่าง: ค้นหาเฉพาะรูปแบบ XXX-XXX-XXXX (ตัวเลข 3-3-4 คั่น Hyphen) สร้างตารางและเพิ่มข้อมูลผสม: INSERT INTO DemoTable VALUES (100-677-9876),

  6. ใช้ IF/ELSE ภายใน SELECT ใน MySQL ด้วยฟังก์ชัน IF()

    การใช้ IF() ใน SELECT เพื่อเงื่อนไขแบบ Inline MySQL รองรับฟังก์ชัน IF(condition, true_value, false_value) ใช้ได้ใน SELECT เพื่อคืนค่าต่างกันตามเงื่อนไข (Ternary Operator) Syntax SELECT column1, IF(condition, value_if_true, value_if_false) AS alias FROM table_name; ตัวอย่างการใช้งาน สร้างตารางนักเร

  7. DELETE ข้อมูลใน MySQL ด้วยเงื่อนไขหลายคอลัมน์ (WHERE col1=val1 AND col2=val2)

    การลบข้อมูลด้วยเงื่อนไขหลายคอลัมน์ (AND) ใช้ WHERE ร่วมกับ AND เพื่อระบุเงื่อนไขหลายคอลัมน์พร้อมกัน จะลบเฉพาะแถวที่ **ตรงทุกเงื่อนไข** Syntax DELETE FROM table_name WHERE column1 = value1 AND column2 = value2 ...; ตัวอย่างการใช้งาน สร้างตารางนักเรียน: INSERT INTO DemoTable722 (StudentName,

  8. แสดงคำสำรอง (Reserved Words) ทั้งหมดใน MySQL ผ่าน Command Line

    ดูรายการ Reserved Words ทั้งหมดใน MySQL MySQL เก็บคำสำรองไว้ในตาราง mysql.help_keyword สามารถ Query ได้โดยตรง Syntax SELECT * FROM mysql.help_keyword; ตัวอย่างผลลัพธ์ คำสั่งจะคืนรายการคำสำรองทั้งหมด (หลายร้อยคำ) รวมถึง: SELECT, INSERT, UPDATE, DELETE CREATE, DROP, ALTER, TRUNCATE WHERE, GROUP, OR

  9. แปลงรูปแบบวันที่ด้วย STR_TO_DATE และ REPLACE ใน MySQL

    การแปลงรูปแบบวันที่สตริงให้เป็น DATE/DATETIME มาตรฐาน ใช้ STR_TO_DATE() ร่วมกับ REPLACE() เพื่อลบอักขระที่ไม่ต้องการ (เช่น Quote) ก่อนแปลง ตัวอย่าง: แปลง MM-DD-YYYY HH:MM:SS เป็น DATETIME สร้างตารางเก็บวันที่แบบสตริง: INSERT INTO DemoTable VALUES (10-01-2019 10:19:20), (12-03-2018 11:00:

  10. เลือกเฉพาะค่าที่ปรากฏครั้งเดียว (Non-duplicate) ในคอลัมน์ด้วย GROUP BY HAVING COUNT = 1

    การคัดกรองเฉพาะค่าที่ไม่ซ้ำ (Unique Values) ในคอลัมน์ ใช้ GROUP BY รวมค่าเหมือนกัน แล้ว HAVING COUNT(*) = 1 เพื่อกรองเฉพาะกลุ่มที่มี 1 แถวเท่านั้น Syntax SELECT column_name FROM table_name GROUP BY column_name HAVING COUNT(*) = 1; ตัวอย่างการใช้งาน สร้างตารางมีค่าซ้ำและไม่ซ้ำ: INSERT INTO DemoT

  11. คิวรี่ MySQL เลือกข้อมูล N แถวสุดท้าย (Bottom N Records) ด้วย ORDER BY DESC LIMIT

    การดึงข้อมูล N แถวสุดท้าย (Bottom N) ใน MySQL ไม่มีคำสั่ง BOTTOM โดยตรง แต่ทำได้ง่ายด้วย: **เรียงจากมากไปน้อย (DESC) แล้ว LIMIT N** Syntax SELECT * FROM table_name ORDER BY column_name DESC LIMIT n; ตัวอย่าง: ดึง 4 แถวที่มีค่า Value สูงสุด (Bottom 4 ตามค่า) สร้างตารางและเพิ่มข้อมูล 9 แถว: INSERT

  12. ใช้ Underscore (_) ในชื่อตาราง MySQL ต้องห่อด้วย Backtick (`)

    กฎการตั้งชื่อ Identifier ใน MySQL MySQL อนุญาตให้ใช้ Underscore (_) ในชื่อตาราง/คอลัมน์ได้ **แต่ต้องห่อด้วย Backtick (`) เสมอ** ห้ามใช้ Single Quote () ตัวอย่างที่ผิด (ใช้ Single Quote) CREATE TABLE Demo_Table725 ( ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientName VARCHAR(100),

  13. เปรียบเทียบ WHERE IN vs OR ใน MySQL: IN ใช้ Index ได้ OR ไม่ได้

    ความแตกต่างระหว่าง IN() และ OR ใน MySQL ทั้ง IN() และ OR ให้ผลลัพธ์เหมือนกัน แต่ **IN() ใช้ Index ได้ ในขณะที่ OR มักไม่ใช้ Index** (ขึ้นกับ Version และ Optimizer) ตัวอย่างข้อมูล สร้างตารางและเพิ่มข้อมูล: INSERT INTO DemoTable711 VALUES (100, Chris), (101, Robert), (102, Carol), (103, Mike),

  14. เปรียบเทียบสตริงวันที่ใน MySQL ด้วย STR_TO_DATE()

    การแปลงสตริงวันที่ให้เป็น DATE เพื่อเปรียบเทียบได้ถูกต้อง เมื่อวันที่เก็บอยู่ในรูปแบบ VARCHAR (เช่น 10.01.2019) ไม่สามารถเปรียบเทียบได้โดยตรง ต้องแปลงด้วย STR_TO_DATE() ก่อน Syntax STR_TO_DATE(date_string, format_mask) Format mask หลัก: %d=วัน, %m=เดือน, %Y=ปี 4 หลัก, %Y-%m-%d มาตรฐาน ISO ตัวอย่าง

  15. นับจำนวนค่าที่ซ้ำกันในคอลัมน์เฉพาะด้วย COUNT() และ WHERE ใน MySQL

    การนับจำนวนครั้งที่ค่าเฉพาะปรากฏในคอลัมน์ ใช้ COUNT(*) ร่วมกับเงื่อนไข WHERE column = value เพื่อนับเฉพาะแถวที่มีค่าตรงกับที่ต้องการ Syntax SELECT COUNT(*) FROM table_name WHERE column_name = specific_value; ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล (มีชื่อ Chris ซ้ำ 4 ครั้ง): INSERT INTO DemoTa

  16. นับจำนวนแถวในหลายตารางพร้อมกันด้วย Subquery ใน MySQL

    การนับแถว (COUNT) หลายตารางในคิวรี่เดียว ใช้ **Subquery** ในส่วน SELECT เพื่อนับแถวของแต่ละตารางแยกกัน แล้วรวมผลลัพธ์ในแถวเดียว Syntax SELECT (SELECT COUNT(*) FROM table1) AS table1_count, (SELECT COUNT(*) FROM table2) AS table2_count, ...; ตัวอย่างการใช้งาน สร้างตารางแรก DemoTable1 (

  17. จัดเรียงข้อมูลตามความยาวสตริงในคอลัมน์ด้วย ORDER BY LENGTH() ใน MySQL

    การเรียงลำดับตามความยาวข้อความด้วย LENGTH() ฟังก์ชัน LENGTH(str) คืนค่าความยาวของสตริงในหน่วย **Byte** ใช้ร่วมกับ ORDER BY เพื่อเรียงจากสั้นไปยาว หรือยาวไปสั้น Syntax SELECT * FROM table_name ORDER BY LENGTH(column_name) [ASC|DESC]; ตัวอย่างการใช้งาน สร้างตารางข้อความความยาวต่างกัน: INSERT INTO D

  18. จัดเรียง VARCHAR ที่มีตัวเลขและตัวอักษรผสมกันใน MySQL ให้ตัวเลขอยู่ก่อน

    ปัญหาการจัดเรียง VARCHAR ที่ผสมตัวเลขและตัวอักษร คอลัมน์ VARCHAR จัดเรียงแบบ **Lexicographical (ตัวอักษร)** ทำให้ 100 < 190 < 20 < John ซึ่งไม่ใช่การจัดเรียงตัวเลขที่ถูกต้อง วิธีแก้: ใช้ ORDER BY IF(CAST(...)) แปลงค่าเป็น SIGNED INTEGER หากแปลงได้ (ไม่ใช่ 0) ใช้ค่านั้น จัดเรียงก่อน หากแปลงไม่ได้ (เ

  19. อัปเดตหลายคอลัมน์พร้อมกันด้วย IF() ใน MySQL

    การใช้ IF() ในคำสั่ง UPDATE เพื่อตั้งค่าเงื่อนไข ฟังก์ชัน IF(condition, value_if_true, value_if_false) ใช้ในคำสั่ง UPDATE เพื่อตั้งค่าคอลัมน์ตามเงื่อนไขได้หลายคอลัมน์พร้อมกัน Syntax UPDATE table_name SET col1 = IF(condition, val1, val2), col2 = IF(condition, val3, val4) WHERE condition; ตัวอย

  20. สร้างเลขสุ่ม 4 หลักใน MySQL ด้วย RAND() และ FLOOR()

    การสร้างตัวเลขสุ่ม 4 หลัก (1000-9999) ใน MySQL ใช้ฟังก์ชัน RAND() สร้างเลขสุ่ม 0-1 คูณ 10000 แล้วใช้ FLOOR() ปัดทิ้งทศนิยม จะได้เลข 0-9999 หากต้องการ 1000-9999 ให้บวก 1000 สูตรพื้นฐาน FLOOR(RAND() * 10000) -- 0 ถึง 9999 FLOOR(1000 + RAND() * 9000) -- 1000 ถึง 9999 (4 หลักแน่นอน) ตัวอย่าง:

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:85/229  20-คอมพิวเตอร์/Page Goto:1 79 80 81 82 83 84 85 86 87 88 89 90 91