Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. การแทรกข้อมูลหลายแถวด้วยคำสั่ง INSERT ... SET ใน MySQL

    รูปแบบ INSERT ... SET อนุญาตให้ระบุคอลัมน์และค่าเป็นคู่ key-value ทำให้อ่านง่ายและลดโอกาสผิดลำดับคอลัมน์ mysql> CREATE TABLE DemoTable1544 ( -> Id INT, -> Name VARCHAR(20) -> ); Query OK, 0 rows affected (2.47 sec) mysql> INSERT INTO DemoTable1544 SET Id = 101, Name = John

  2. คิวรี่ MySQL ลบข้อความระหว่างวงเล็บเหลี่ยม []

    ตัวอย่างการลบข้อความที่อยู่ภายในวงเล็บเหลี่ยม [ ] ออกจากคอลัมน์ข้อความ mysql> CREATE TABLE DemoTable ( -> Name TEXT -> ); Query OK, 0 rows affected (0.47 sec) mysql> INSERT INTO DemoTable VALUES(John [John] Smith); Query OK, 1 row affected (0.30 sec) mysql> INSERT INTO DemoTab

  3. การใช้ INSERT ... ON DUPLICATE KEY UPDATE ใน MySQL

    เมื่อแทรกข้อมูลใหม่แต่พบคีย์หลัก (PRIMARY KEY) หรือดัชนีเฉพาะ (UNIQUE INDEX) ซ้ำ จะเกิดข้อผิดพลาด วิธีแก้คือใช้ ON DUPLICATE KEY UPDATE เพื่ออัปเดตแถวเดิมแทน mysql> CREATE TABLE DemoTable ( -> Value INT -> ); Query OK, 0 rows affected (0.61 sec) สร้างดัชนีเฉพาะ (UNIQUE INDEX) บนคอลั

  4. การใช้คำสั่ง UPDATE ร่วมกับชนิดข้อมูล TINYINT ใน MySQL

    ชนิดข้อมูล TINYINT มักใช้เก็บค่าบูลีน (0 = false, 1 = true) ใน MySQL ตัวอย่างการอัปเดตคอลัมน์ TINYINT: mysql> CREATE TABLE DemoTable ( -> EmployeeId INT, -> isMarried TINYINT -> ); Query OK, 0 rows affected (6.84 sec) เพิ่มข้อมูลโดยใช้ true และ false (MySQL แปลงเป็น 1 และ 0 อ

  5. การจัดเรียงข้อมูล MySQL ตามตัวอักษรแรกของข้อความ

    หากต้องการจัดเรียงข้อมูลตามตัวอักษรตัวแรกของคอลัมน์ข้อความ สามารถใช้คำสั่ง ORDER BY CASE ได้ เริ่มต้นด้วยการสร้างตาราง: mysql> CREATE TABLE DemoTable1535 ( -> Value VARCHAR(100) -> ); Query OK, 0 rows affected (2.26 sec) เพิ่มข้อมูลตัวอย่าง: mysql> INSERT INTO DemoTable1535 VALUE

  6. คิวรี่ MySQL เดียวสำหรับค้นหาคำหลายคำจากคอลัมน์ต่างๆ

    สำหรับการค้นหาคำหลายคำในคอลัมน์เดียวกัน สามารถใช้เงื่อนไข WHERE ร่วมกับออปเปอเรเตอร์ LIKE หลายตัวได้ เริ่มต้นด้วยการสร้างตารางตัวอย่าง: mysql> CREATE TABLE DemoTable1536 ( -> Sentence TEXT -> ); Query OK, 0 rows affected (0.51 sec) เพิ่มข้อมูลตัวอย่างลงในตาราง: mysql> INSERT INTO

  7. เขียน Query MySQL เดียวเพื่อแสดงข้อมูลสำหรับหลายค่า Input ด้วย BETWEEN

    เมื่อต้องการ Query ข้อมูลที่อยู่ในช่วง (Range) ของค่า ID หรือตัวเลขติดต่อกัน ใช้ BETWEEN Operator จะเขียนสั้นกว่าและอ่านง่ายกว่าการใช้ >= และ <= แยกกัน ตัวอย่างการใช้งาน BETWEEN 1. สร้างตารางนักเรียน (มี Auto Increment ID) ); Query OK, 0 rows affected (0.72 sec) 2. เพิ่มข้อมูลนักเรียน 7 คน

  8. วิธีสร้างคอลัมน์เดือนจากวันที่ และรวมยอด (Sum) ตามเดือนที่มีวันที่ซ้ำใน MySQL

    เมื่อต้องการจัดกลุ่มข้อมูลตามเดือนจากคอลัมน์วันที่ (Date) และคำนวณผลรวม (Sum) ของคอลัมน์ตัวเลข โดยเฉพาะกรณีที่มีวันที่ซ้ำกันในเดือนเดียวกัน สามารถใช้ฟังก์ชัน DATE_FORMAT() ร่วมกับ GROUP BY ได้อย่างมีประสิทธิภาพ ตัวอย่างการใช้งาน 1. สร้างตารางตัวอย่าง ); Query OK, 0 rows affected (0.52 sec) 2. เพ

  9. ควรใช้ Loop หรือ Operator OR ในการ Query ข้อมูลจำนวนมากใน MySQL ให้เร็วที่สุด?

    เมื่อต้องการ Query ข้อมูลหลายรายการพร้อมกันใน MySQL ให้มีประสิทธิภาพและรวดเร็วที่สุด ควรใช้ IN() Operator แทนการใช้ Loop หรือ OR หลายตัว เพราะ IN() ได้รับการเพิ่มประสิทธิภาพ (Optimize) โดยเฉพาะสำหรับการค้นหาค่าหลายค่าในคอลัมน์เดียวกัน ตัวอย่างการใช้งาน IN() Operator 1. สร้างตารางตัวอย่าง ); Query

  10. ไวยากรณ์ที่ถูกต้องของ MySQL INSERT ... ON DUPLICATE KEY UPDATE

    รูปแบบคำสั่ง INSERT ... ON DUPLICATE KEY UPDATE ใน MySQL คำสั่ง INSERT ... ON DUPLICATE KEY UPDATE ใช้สำหรับ Upsert (Insert หรือ Update) - หากข้อมูลใหม่ไม่ซ้ำ Primary Key หรือ Unique Key จะ Insert แถวใหม่ แต่หากซ้ำจะ Update แถวเดิมแทน ไวยากรณ์มาตรฐาน INSERT INTO table_name (col1, col2, ...) VALUES

  11. รวมคอลัมน์หลายคอลัมน์เป็นแถวเดียวใน MySQL ด้วย UNION ALL

    UNPIVOT แบบง่าย: คอลัมน์หลายตัว → แถวเดียว (Rows) ใช้ UNION ALL รวมผลลัพธ์ของ SELECT แต่ละคอลัมน์ เข้าด้วยกัน กลายเป็นคอลัมน์เดียวหลายแถว สร้างตารางและข้อมูล (2 คอลัมน์, 2 แถว) INSERT INTO DemoTable VALUES(100, 200), (500, 600); Query OK, 2 rows affected ข้อมูลต้นฉบับ (Wide Format) +--------+----

  12. MySQL DATE Function: หาความต่างวันระหว่างวันปัจจุบันและวันที่เข้าทำงาน (DATEDIFF)

    คำนวณวันทำงาน/อายุงาน: DATEDIFF(CURDATE(), JoiningDate) DATEDIFF(date1, date2) คืนค่า date1 - date2 เป็นจำนวนวัน (Integer) ใช้กับ DATE หรือ DATETIME วันที่ปัจจุบัน (สมมติ) SELECT CURDATE(); +------------+ | curdate() | +------------+ | 2019-10-26 | +------------+ สร้างตาราง: JoiningDate เก็บเป็น

  13. ดึงหลายแถวจาก MySQL ตามค่าเฉพาะในคอลัมน์ (WHERE Filter)

    SELECT พร้อม WHERE: กรองแถวตามค่าในคอลัมน์เฉพาะ คำสั่ง SELECT ... WHERE column = value เป็นพื้นฐานการดึงข้อมูลเฉพาะที่ต้องการ สร้างตารางและข้อมูล (นักเรียน + วิชา) (Carol, C), (Sam, Java), (Mike, Java), (Adam, MySQL); Query OK, 7 rows affected ข้อมูลทั้งหมด +-----------+-------------+------------

  14. GROUP BY และ COUNT ใน MySQL Query เดียว: จัดกลุ่มซ้ำและแสดง Max Value

    GROUP BY + COUNT() + MAX() ในคำสั่งเดียว จัดกลุ่มตามคอลัมน์ Value (ที่มีค่าเหมือนกันทุกแถว) นับจำนวนแถวในกลุ่ม และหา ClientId สูงสุดในกลุ่ม สร้างตารางและข้อมูล (Value เหมือนกันทุกแถว = 678) INSERT INTO DemoTable VALUES(10, 678), (20, 678), (30, 678); Query OK, 3 rows affected ข้อมูลทั้งหมด +-----

  15. INSERT ข้อมูลจากตารางหนึ่งไปอีกตารางที่โครงสร้างต่างกันใน MySQL

    INSERT INTO ... SELECT: คัดลอกข้อมูลข้ามตารางโครงสร้างต่างกัน ระบุคอลัมน์ปลายทางตรงกับคอลัมน์ต้นทางตามลำดับ ชนิดข้อมูลต้องเข้ากันได้ (Compatible) ตารางต้นทาง (DemoTable1) (David Miller, 23, AUS); Query OK, 3 rows affected ตารางปลายทาง (DemoTable2) - โครงสร้างต่าง: มี EmployeeSalary Default ); Qu

  16. หาค่าเฉลี่ยและแสดงเฉพาะกลุ่มที่ Average สูงกว่า 80 (HAVING AVG)

    Threshold ใช้ GROUP BY จัดกลุ่ม AVG() คำนวณค่าเฉลี่ยต่อกลุ่ม แล้ว 80 กรองเฉพาะกลุ่มที่ผ่านเกณฑ์ สร้างตารางและข้อมูล (1, 78), (2, 82), (1, 45), (3, 97), (2, 79); Query OK, 5 rows affected ข้อมูลทั้งหมด +----------+-------------+ | PlayerId | PlayerScore | +----------+-------------+ | 1 |

  17. MySQL Equivalent ของ Sybase ASE Command: ใช้ EXPLAIN

    MySQL ใช้ EXPLAIN แทน Sybase ASE SHOWPLAN / SET SHOWPLAN ON Sybase ASE ใช้ SET SHOWPLAN ON หรือ SHOWPLAN สำหรับดู Query Plan MySQL ใช้ EXPLAIN (หรือ EXPLAIN ANALYZE ใน 8.0+) สร้างตาราง พร้อม Index CREATE INDEX Name_index1 ON DemoTable1531(StudentName); Query OK, 0 rows affected (0.99 sec) เพิ่มข้

  18. นับจำนวนแถวจากหลายตารางใน MySQL พร้อมกัน (Multiple Table Count)

    นับ COUNT(*) จากหลายตารางในคำสั่งเดียว ใช้ Subquery ใน SELECT Clause แต่ละ Subquery นับจากตารางหนึ่ง แล้วรวมผลลัพธ์เป็นแถวเดียว หลายคอลัมน์ ไวยากรณ์ SELECT (SELECT COUNT(*) FROM table1) AS table1_count, (SELECT COUNT(*) FROM table2) AS table2_count FROM DUAL; DUAL เป็น Dummy Table ใน MySQ

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