Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. MySQL SELECT ข้อมูลที่วันที่มากกว่าหรือเท่ากับ 1 วันจากวันนี้ (INTERVAL)

    ใช้ INTERVAL ในเงื่อนไข WHERE เพื่อเปรียบเทียบวันที่/เวลากับวันปัจจุบัน (NOW() หรือ CURDATE()) ตัวอย่างการใช้งาน 1. วันที่ปัจจุบัน mysql> SELECT CURDATE(); +------------+ | curdate() | +------------+ | 2019-11-29 | +------------+ 2. สร้างตาราง mysql> CREATE TABLE DemoTable1806 ( DueDat

  2. MySQL รวมค่าคอลัมน์ทั้งหมดเป็น 1 แถว คั่นคอมม่า ด้วย GROUP_CONCAT

    ใช้ GROUP_CONCAT() ร่วมกับ CONCAT() เพื่อรวมค่าจากหลายแถวให้กลายเป็น 1 สตริง คั่นด้วยคอมม่า (หรือ Separator อื่นๆ) ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable1807 ( Id INT ); Query OK, 0 rows affected (0.00 sec) 2. เพิ่มข้อมูล mysql> INSERT INTO DemoTable1807 VALUES(10

  3. MySQL ใช้ STR_TO_DATE แปลงวันที่รูปแบบ DD/MM/YYYY แล้วกรองด้วย WHERE

    เมื่อวันที่เก็บใน VARCHAR รูปแบบ DD/MM/YYYY (เช่น 21/11/2019) ต้องใช้ STR_TO_DATE() แปลงเป็น DATE ก่อนจึงจะเปรียบเทียบหรือกรองได้ถูกต้อง ตัวอย่างการใช้งาน 1. สร้างตารางเก็บวันที่เป็น VARCHAR mysql> CREATE TABLE DemoTable1808 ( AdmissionDate VARCHAR(20) ); Query OK, 0 rows affected (0.00 sec

  4. MySQL ค้นหาค่าที่ขึ้นต้นด้วยข้อความเฉพาะด้วย LIKE

    ใช้ LIKE prefix% เพื่อค้นหาค่าที่ขึ้นต้นด้วยข้อความที่ระบุ (Prefix Search) % คือ Wildcard แทนตัวอักษรจำนวนใดก็ได้ ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable1809 ( Name VARCHAR(20) ); Query OK, 0 rows affected (0.00 sec) 2. เพิ่มข้อมูล mysql> INSERT INTO DemoTable1809

  5. MySQL เรียงลำดับ LONGTEXT เป็นตัวเลขด้วย +0 (Type Casting)

    คอลัมน์ LONGTEXT เก็บตัวเลขใหญ่ๆ เป็นสตริง การเรียงลำดับแบบปกติจะเป็น Lexicographic (เรียงตามตัวอักษร) ให้ผลผิด ต้องแปลงเป็นตัวเลขด้วย + 0 หรือ CAST ตัวอย่างปัญหา 1. สร้างตาราง LONGTEXT mysql> CREATE TABLE DemoTable ( Value LONGTEXT ); Query OK, 0 rows affected (0.94 sec) 2. เพิ่มตัวเลขใหญ

  6. MySQL นับหลายเงื่อนไขใน Query เดียวด้วย SUM(condition)

    ใช้ SUM(condition) โดยที่ condition เป็นนิพจน์ Boolean (TRUE=1, FALSE=0) เพื่อนับจำนวนแถวที่ตรงเงื่อนไขหลายเงื่อนไขพร้อมกันใน Query เดียว ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable1790 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Score INT ); Qu

  7. MySQL SELECT WHERE column = 0 บนคอลัมน์ VARCHAR จะเกิดอะไรขึ้น?

    เมื่อเปรียบเทียบคอลัมน์ VARCHAR กับตัวเลข 0 MySQL จะทำ Implicit Type Conversion แปลงสตริงเป็นตัวเลข ซึ่งอาจให้ผลลัพธ์ไม่คาดคิด ตัวอย่างการทดสอบ 1. สร้างตาราง VARCHAR mysql> CREATE TABLE DemoTable1791 ( FirstName VARCHAR(20) ); Query OK, 0 rows affected (0.00 sec) 2. เพิ่มข้อมูล (เฉพาะข้อคว

  8. MySQL SELECT เฉพาะข้อมูลที่ NOT NULL ด้วย IS NOT NULL

    ใช้ IS NOT NULL ในเงื่อนไข WHERE เพื่อกรองเฉพาะแถวที่คอลัมน์มีค่า (ไม่ใช่ NULL) ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable1792 ( Name VARCHAR(20) ); Query OK, 0 rows affected (0.00 sec) 2. เพิ่มข้อมูล (มี NULL) mysql> INSERT INTO DemoTable1792 VALUES(John Smith); mysq

  9. MySQL CONCAT คอลัมน์ที่มีค่า NULL ด้วย IFNULL() กันผลลัพธ์เป็น NULL

    เมื่อ CONCAT() พบค่า NULL ในอาร์กิวเมนต์ใดก็ตาม ผลลัพธ์จะเป็น NULL ทั้งหมด ต้องใช้ IFNULL() หรือ COALESCE() แทนที่ NULL ด้วยสตริงว่าง ก่อน ตัวอย่างปัญหาและวิธีแก้ 1. สร้างตาราง mysql> CREATE TABLE DemoTable1793 ( StudentFirstName VARCHAR(20), StudentLastName VARCHAR(20) ); Query OK, 0

  10. MySQL คำนวณ SUM 2 แบบจากคอลัมน์ Amount เดียวกันด้วย CASE WHEN

    ใช้ CASE WHEN ภายใน SUM() เพื่อคำนวณผลรวมแบบมีเงื่อนไข (Conditional Sum) จากคอลัมน์เดียวกันได้หลายแบบใน Query เดียว ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable1794 ( Amount INT ); Query OK, 0 rows affected (0.00 sec) 2. เพิ่มข้อมูล mysql> INSERT INTO DemoTable1794 VALU

  11. MySQL Query ดึงข้อมูลในช่วงเดือน (Range of Months) ข้ามปี

    ใช้ YEAR(), MONTH(), CURDATE(), DATE_SUB() และ INTERVAL เพื่อสร้างเงื่อนไขดึงข้อมูลในช่วงเดือนที่ข้ามปี (เช่น กรกฎาคมปีที่แล้ว - กรกฎาคมปีนี้) ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable1795 ( Name VARCHAR(20), DueDate DATE ); Query OK, 0 rows affected (0.00 sec) 2. เ

  12. MySQL รีเซ็ต Auto Increment เริ่มจาก 1 อีกครั้งหลัง DELETE ด้วย TRUNCATE

    ใช้ TRUNCATE TABLE แทน DELETE เพื่อลบข้อมูลทั้งหมดและรีเซ็ต AUTO_INCREMENT ให้เริ่มจาก 1 ใหม่ ปัญหาของ DELETE mysql> DELETE FROM DemoTable1796; -- ลบข้อมูลทั้งหมด mysql> INSERT INTO DemoTable1796(StudentName) VALUES(John Doe); mysql> SELECT * FROM DemoTable1796; +-----------+-------------

  13. MySQL Copy ข้อมูลจากตารางหนึ่งไปอีกตารางใน Database เดียวกัน (INSERT SELECT)

    ใช้ INSERT INTO ... SELECT ... เพื่อคัดลอกข้อมูลจากตารางต้นทางไปตารางปลายทางใน Database เดียวกันได้ในคำสั่งเดียว ตัวอย่างการใช้งาน 1. สร้างตารางต้นทาง (DemoTable1) mysql> CREATE TABLE DemoTable1 ( Id INT, FirstName VARCHAR(20), Age INT ); Query OK, 0 rows affected (0.00 sec) 2. เพิ

  14. MySQL ใส่เครื่องหมายคำพูดค่าคอลัมน์ด้วย GROUP_CONCAT + CONCAT + DISTINCT

    ใช้ GROUP_CONCAT() ร่วมกับ CONCAT() และ REPLACE() เพื่อรวมค่าจากหลายแถว ใส่เครื่องหมายคำพูด (Single Quote) และกำจัดค่าซ้ำ (DISTINCT) ตัวอย่างการใช้งาน 1. สร้างตาราง (เก็บค่า CSV ใน 1 คอลัมน์) mysql> CREATE TABLE DemoTable1799 ( EmployeeId VARCHAR(20) ); Query OK, 0 rows affected (0.00 sec)

  15. MySQL UPDATE ทุกแถวที่มีค่า NULL หรือไม่ใช่ NULL ในคอลัมน์ใดคอลัมน์หนึ่ง

    ใช้ WHERE column IS NULL OR column IS NULL เพื่ออัปเดตทุกแถวที่มีค่า NULL อย่างน้อย 1 คอลัมน์ ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable ( Id INT, Name VARCHAR(20) ); Query OK, 0 rows affected (0.58 sec) 2. เพิ่มข้อมูล (มี NULL ทั้ง Id และ Name) mysql> INSERT INTO

  16. MySQL ลบ Primary Key ด้วย ALTER TABLE DROP PRIMARY KEY

    ใช้คำสั่ง ALTER TABLE ... DROP PRIMARY KEY เพื่อลบ Primary Key ออกจากตาราง ตัวอย่างการใช้งาน 1. สร้างตารางมี Primary Key mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL, StudentName VARCHAR(20), StudentAge INT, PRIMARY KEY(StudentId) ); Query OK, 0 rows affected (0.48 sec

  17. MySQL เก็บค่า Double และ Date ใน VARCHAR ได้ไหม? (ได้ แต่ไม่แนะนำ)

    ได้ครับ MySQL อนุญาตให้เก็บค่า Double และ Date ในคอลัมน์ VARCHAR แต่ ไม่แนะนำ เพราะสูญเสียการตรวจสอบชนิดข้อมูล ประสิทธิภาพ Index และฟังก์ชันวันที่/ตัวเลข ตัวอย่างการเก็บใน VARCHAR 1. สร้างตาราง VARCHAR mysql> CREATE TABLE DemoTable ( Amount VARCHAR(20), JoiningDate VARCHAR(20) ); Query

  18. MySQL รวมคะแนน (SUM) ของชื่อซ้ำกันด้วย GROUP BY

    ใช้ SUM() ร่วมกับ GROUP BY เพื่อรวมค่าตัวเลขของแถวที่มีค่าคอลัมน์สำคัญ (Key) ซ้ำกัน ตัวอย่างการใช้งาน 1. สร้างตารางคะแนนนักเรียน mysql> CREATE TABLE DemoTable ( StudentName VARCHAR(20), StudentMarks INT ); Query OK, 0 rows affected (0.68 sec) 2. เพิ่มข้อมูล (มีนักเรียนซ้ำชื่อ) mysql>

  19. MySQL หาข้อมูลซ้ำ (Duplicate Tuples) และนับจำนวนด้วย GROUP BY HAVING

    ใช้ GROUP BY ร่วมกับ n เพื่อค้นหาแถวข้อมูลที่ซ้ำกัน (Duplicate Tuples) และนับจำนวนครั้งที่ซ้ำ ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable ( Id INT, Name VARCHAR(20) ); Query OK, 0 rows affected (0.80 sec) 2. เพิ่มข้อมูล (มีค่าซ้ำ) mysql> INSERT INTO DemoTable VALU

  20. MySQL หาวันแรกและวันสุดท้ายของเดือนจากคอลัมน์ Date

    ใช้ฟังก์ชัน DATE_FORMAT() สำหรับวันแรก และ LAST_DAY() สำหรับวันสุดท้ายของเดือน ตัวอย่างการใช้งาน 1. สร้างตาราง mysql> CREATE TABLE DemoTable ( DueDate DATE ); Query OK, 0 rows affected (0.73 sec) 2. เพิ่มข้อมูล mysql> INSERT INTO DemoTable VALUES(2019-01-11); Query OK, 1 row affected (0

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:26/229  20-คอมพิวเตอร์/Page Goto:1 20 21 22 23 24 25 26 27 28 29 30 31 32