Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. Data Type MySQL สำหรับเก็บเลขทศนิยมยาว (High Precision Decimal)

    ใช้ DECIMAL(21,20) สำหรับความแม่นยำสูงสุด ชนิดข้อมูล DECIMAL(M,D) เหมาะสำหรับเก็บตัวเลขทศนิยมที่ต้องการความแม่นยำสูง (Exact Value) โดยไม่มีปัญหาการปัดเศษแบบ Floating Point M (Precision): จำนวนหลักทั้งหมด (รวมทั้งฝั่งซ้ายและขวาจุดทศนิยม) สูงสุด 65 D (Scale): จำนวนหลักทางด้านขวาจุดทศนิยม สูงสุด 30

  2. ค้นหาแถวซ้ำใน MySQL ด้วย Composite Key (หลายคอลัมน์)

    การหา Duplicate Rows ตามหลายคอลัมน์ (Composite Key) ใช้ GROUP BY หลายคอลัมน์ร่วมกับ 1 เพื่อหาชุดค่าที่ซ้ำกัน สร้างตารางและข้อมูล (2019-09-10 05:00:50, AUS); Query OK, 5 rows affected ข้อมูลทั้งหมด +---------------------+---------------------+ | ShippingDate | CustomerCountryName | +------

  3. ดึงข้อมูล 2 วัน (วันนี้และวานนี้) จากตาราง MySQL ที่เก็บ Timestamp เป็น BIGINT

    กรองข้อมูล Timestamp (Unix Time) 2 วันล่าสุด เมื่อคอลัมน์เก็บเวลาเป็น BIGINT (Unix Timestamp) ให้ใช้ UNIX_TIMESTAMP() ร่วมกับ CURDATE() และ INTERVAL เพื่อคำนวณช่วงเวลา สร้างตารางและข้อมูล (1570127400), (1570213800), (1570645800), (1570300200); Query OK, 4 rows affected วันที่ปัจจุบัน (สมมติ) SEL

  4. คำสั่ง MySQL จัดกลุ่มผลลัพธ์ตามวันที่ และนับจำนวนค่าซ้ำ

    GROUP BY วันที่ และนับจำนวนเรคอร์ดซ้ำ ใช้ DATE() เพื่อดึงเฉพาะส่วนวันที่จาก DATETIME แล้วจัดกลุ่มด้วย GROUP BY และนับด้วย COUNT() สร้างตารางและข้อมูลตัวอย่าง (202, 2013-03-18 04:10:01); Query OK, 6 rows affected ข้อมูลทั้งหมด +----+---------------+---------------------+ | Id | PassengerCode | Arr

  5. วิธีเรียงลำดับ Key ใหม่หลังลบแถวออกจากตาราง MySQL

    ปัญหา: หลัง DELETE แถวกลาง ID จะมีช่องว่าง เมื่อลบแถวที่มี ID กลาง (เช่น ลบ ID=30 จาก 10,20,30,40) จะเหลือ ID: 10, 20, 40 ซึ่งมีช่องว่าง หากต้องการเรียงใหม่เป็น 10, 20, 30 ต้องใช้ UPDATE พร้อมคำนวณค่าใหม่ ตัวอย่าง完整 1. สร้างตารางและเพิ่มข้อมูล INSERT INTO DemoTable1476 VALUES(10), (20), (30), (40

  6. นับค่า NOT NULL จากหลายตารางในคำสั่ง MySQL เดียว

    การนับจำนวนแถวที่ไม่ใช่ NULL จากหลายตารางพร้อมกัน ใช้ Subquery ใน SELECT clause เพื่อนับจากแต่ละตารางแยกกัน แล้วรวมผลลัพธ์ในแถวเดียว ไวยากรณ์ SELECT (SELECT COUNT(your_column) FROM table1) AS alias1, (SELECT COUNT(your_column) FROM table2) AS alias2; หมายเหตุ: COUNT(column_name) จะนับเฉพาะ

  7. สามารถ INSERT ข้อมูลในตาราง MySQL ที่มี AUTO_INCREMENT โดยไม่ระบุค่าได้หรือไม่?

    คำตอบ: ได้เลยครับ เมื่อคอลัมน์ถูกกำหนดเป็น AUTO_INCREMENT MySQL จะสร้างค่า ID ใหม่ให้อัตโนมัติเมื่อ INSERT โดยไม่ต้อง (และไม่ควร) ระบุค่าสำหรับคอลัมน์นั้น สร้างตารางพร้อม AUTO_INCREMENT ); Query OK, 0 rows affected (0.86 sec) INSERT โดยระบุเฉพาะคอลัมน์ที่ไม่ใช่ AUTO_INCREMENT INSERT INTO DemoTab

  8. วิธีเขียนเงื่อนไข "ไม่มากกว่า" ในคำสั่ง MySQL (Less Than or Equal)

    ออพีเรเตอร์ ไม่มากกว่า ใน MySQL ใน MySQL ไม่มีออพีเรเตอร์ ไม่มากกว่า โดยตรง (เช่น !>) แต่สามารถใช้ Less Than or Equal (<=) แทนได้ ซึ่งให้ผลลัพธ์เหมือนกันทุกประการ ไวยากรณ์ SELECT * FROM your_table_name WHERE your_column_name <= your_value; ตัวอย่าง完整 1. สร้างตาราง ); Query OK, 0 rows affec

  9. วิธีอัปเดต/แทนที่แถวในตาราง MySQL ตามเงื่อนไขด้วย CASE WHEN

    การใช้คำสั่ง CASE ใน UPDATE เพื่อเปลี่ยนค่าตามเงื่อนไข เมื่อต้องการอัปเดตค่าในคอลัมน์ต่างกันไปตามเงื่อนไขหลายแบบ ให้ใช้ CASE WHEN ... THEN ... END ภายในคำสั่ง UPDATE วิธีนี้ยืดหยุ่นกว่าและอ่านง่ายกว่าการเขียน UPDATE หลายคำสั่ง สร้างตารางทดสอบ ); Query OK, 0 rows affected (0.42 sec) เพิ่มข้อมูลตัว

  10. วิธีแสดงผลลัพธ์ให้อ่านง่ายขึ้นเมื่อสตริงยาวจัดเก็บใน MySQL VARCHAR

    การใช้คำสั่ง \G เพื่อจัดรูปแบบผลลัพธ์ เมื่อต้องการแสดงข้อมูลจากคอลัมน์ VARCHAR ที่มีข้อความยาว ให้ใช้ตัวคั่น \G แทนจุดอัฒนภาค (;) ปกติ จะทำให้ MySQL แสดงผลลัพธ์ในแนวตั้ง (Vertical Format) แทนตารางแนวนอน ทำให้อ่านง่ายกว่ามาก ตัวอย่างการใช้งาน SELECT * FROM your_table_name\G สร้างตารางทดสอบ ); Que

  11. การใช้ MySQL SELECT INTO กับตัวแปร User-defined Variable

    การกำหนดค่าตัวแปรผู้ใช้ (User-defined Variable) ด้วย SELECT INTO ใน MySQL MySQL รองรับการเก็บผลลัพธ์ของคำสั่ง SELECT ลงในตัวแปรผู้ใช้ (User-defined Variable) โดยใช้คีย์เวิร์ด INTO ตัวแปรเหล่านี้ขึ้นต้นด้วย @ และมีขอบเขตเป็นระดับ Session รูปแบบคำสั่ง SELECT column_name INTO @variable_name FROM table

  12. วิธี Insert ค่า MAX(คอลัมน์)+1 เข้าไปในตาราง MySQL เดียวกัน

    การเพิ่มค่า MAX(Column) + 1 เข้าไปในตาราง MySQL เดียวกัน บางครั้งอาจต้องการเพิ่มข้อมูลใหม่โดยใช้ค่าสูงสุดของคอลัมน์บวก 1 (Auto Increment แบบ Manual) สามารถทำได้โดยใช้ Subquery ในคำสั่ง INSERT รูปแบบคำสั่ง INSERT INTO table_name (column_name) SELECT MAX(column_name) + 1 FROM table_name; ตัวอย่างเต็

  13. นับข้อมูลหลายเงื่อนไขใน MySQL โดยไม่ใช้ COUNT()

    การนับข้อมูลแบบมีเงื่อนไขหลายตัวใน MySQL ด้วย SUM() และ CASE ปกติเราใช้ COUNT() สำหรับนับแถว แต่หากต้องการนับหลายเงื่อนไขในคำสั่งเดียว (Conditional Aggregation) การใช้ SUM() ร่วมกับ CASE WHEN จะยืดหยุ่นและมีประสิทธิภาพมากกว่า หลักการ: SUM(CASE WHEN ... THEN 1 ELSE 0 END) แทนที่จะนับแถวที่ตรงเงื่อนไ

  14. วิธีดึงข้อมูลที่เพิ่มล่าสุดจากตาราง MySQL

    การดึงข้อมูลที่เพิ่มล่าสุด (Most Recent Records) ใน MySQL เมื่อต้องการดึงข้อมูลที่เพิ่มเข้ามาล่าสุดจากตาราง วิธีมาตรฐานคือใช้ ORDER BY ร่วมกับ LIMIT โดยเรียงลำดับจากคอลัมน์ที่บ่งบอกลำดับการเพิ่มข้อมูล (เช่น Auto Increment ID หรือ Timestamp) หลักการทำงาน SELECT * FROM table_name ORDER BY id_column

  15. วิธีแยกสตริงใน MySQL ด้วยฟังก์ชัน SUBSTRING_INDEX

    การแยกข้อความ (Split String) ใน MySQL โดยใช้ SUBSTRING_INDEX MySQL ไม่มีฟังก์ชัน SPLIT_STRING แบบ built-in เหมือนภาษาโปรแกรมมิ่งอื่นๆ แต่สามารถใช้ฟังก์ชัน SUBSTRING_INDEX() ร่วมกันเพื่อแยกข้อความได้อย่างมีประสิทธิภาพ รูปแบบฟังก์ชัน SUBSTRING_INDEX SUBSTRING_INDEX(str, delim, count) str: สตริงต

  16. วิธีเร็วที่สุดในการ Insert ข้อมูลหลายแถวในคำสั่ง MySQL เดียว

    วิธีการ Insert ข้อมูลหลายค่าในคำสั่ง MySQL เดียวอย่างมีประสิทธิภาพ เมื่อต้องการเพิ่มข้อมูลจำนวนมากเข้าไปในตาราง MySQL การใช้คำสั่ง INSERT แบบแยกต่างหากแต่ละแถวจะทำให้ประสิทธิภาพลดลงอย่างมาก เนื่องจากแต่ละคำสั่งต้องมีการเชื่อมต่อและประมวลผลแยกกัน ❌ วิธีที่ไม่แนะนำ (ช้าและไม่มีประสิทธิภาพ) INSERT INT

  17. MySQL: หาแถวที่มีค่าซ้ำกันในคอลัมน์เดียวกัน (Duplicate Values) ด้วย GROUP BY HAVING

    วัตถุประสงค์ ค้นหาค่าในคอลัมน์ที่ปรากฏซ้ำเกินจำนวนที่กำหนด (เช่น มากกว่า 2 ครั้ง) พร้อมแสดงจำนวนครั้งที่ซ้ำ ตัวอย่างข้อมูล mysql> CREATE TABLE DemoTable1467 ( Id INT, Name VARCHAR(20) ); INSERT INTO DemoTable1467 VALUES (100, Chris); INSERT INTO DemoTable1467 VALUES (110, David); INSERT

  18. MySQL: ลบแถวซ้ำและเก็บเฉพาะแถวที่มีค่าสูงสุด (MAX) ต่อกลุ่ม

    สถานการณ์ ตารางมีข้อมูลซ้ำทั้งแถวเต็มรูปแบบ (duplicate rows) และข้อมูลที่ Key (Id, Name) ซ้ำกันแต่ค่า Age ต่างกัน ต้องการเก็บแค่ 1 แถวต่อกลุ่ม (Id, Name) โดยเลือกแถวที่ Age สูงสุด ข้อมูลตัวอย่าง mysql> CREATE TABLE DemoTable1468 ( Id INT, Name VARCHAR(20), Age INT ); INSERT INTO Dem

  19. วิธีลบ Index ออกจากตาราง MySQL ด้วย ALTER TABLE DROP INDEX

    Syntax พื้นฐาน ALTER TABLE your_table_name DROP INDEX `your_index_name`; ใช้ backtick (`) ครอบชื่อดัชนีกรณีมีช่องว่างหรือคีย์เวิร์ด ตัวอย่างทีละขั้นตอน 1. สร้างตาราง mysql> CREATE TABLE DemoTable1469 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName VARCHAR(40), Stude

  20. เลือกคอลัมน์ หากเป็น NULL ให้เลือกคอลัมน์อื่นแทนด้วย COALESCE() ใน MySQL

    ภาพรวม ใช้ COALESCE() เลือกค่าคอลัมน์แรกที่ไม่ใช่ NULL จากรายการคอลัมน์/ค่าที่ระบุ ไวยากรณ์ COALESCE(col1, col2, col3, ..., default_value) -- คืนค่าแรกที่ไม่ใช่ NULL ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล (มี NULL ในคอลัมน์ต่างกัน) CREATE TABLE DemoTable1470 ( FirstName VARCHAR(20), Age I

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:41/229  20-คอมพิวเตอร์/Page Goto:1 35 36 37 38 39 40 41 42 43 44 45 46 47