Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. MySQL: เพิ่มเครื่องหมายอัญประกาศ (Quotes) ในคอลัมน์คั่นคอมมาด้วย REPLACE และ CONCAT

    การเพิ่ม Single Quotes รอบค่าที่คั่นด้วยคอมมาในคอลัมน์ TEXT ใช้ REPLACE() แทนที่คอมมา ด้วย , แล้ว CONCAT() เพิ่ม quote นำหน้าและท้ายสตริง สร้างตารางและข้อมูล insert into DemoTable1407 values(Mike,Sam,Chris); ข้อมูลต้นฉบับ +------------------+ | Name | +------------------+ | John,Bob

  2. MySQL: ตรวจสอบ NULL หรือ NOT NULL ในคอลัมน์ด้วย IS NOT NULL

    การตรวจสอบค่า NULL / NOT NULL ใน MySQL ใช้ IS NULL และ IS NOT NULL — ไม่ใช่ = NULL หรือ != NULL (เพราะ NULL ไม่เท่ากับอะไรเลย รวมถึงตัวมันเอง) ไวยากรณ์ SELECT column_name IS NOT NULL FROM table_name; -- คืน 1 = NOT NULL, 0 = NULL สร้างตารางและข้อมูล insert into DemoTable1408 values(David); ข้อมู

  3. MySQL: อนุญาตให้ INSERT ค่า VARCHAR ซ้ำได้โดยลบ UNIQUE INDEX

    การลบ UNIQUE Constraint เพื่ออนุญาตค่าซ้ำในคอลัมน์ VARCHAR คอลัมน์ที่มี UNIQUE KEY ไม่อนุญาตค่าซ้ำ หากต้องการอนุญาตให้ซ้ำได้ ต้องลบ Unique Index/Constraint ก่อน สร้างตารางพร้อม UNIQUE KEY ); Query OK, 0 rows affected (0.79 sec) ลบ Unique Index alter table DemoTable1409 drop index UN_FirstName; Q

  4. MySQL: ดึงวันที่ใหม่กว่า 14 วันที่ผ่านมาด้วย DATE_SUB

    การค้นหาข้อมูลวันที่ในช่วง 14 วันที่ผ่านมา (Recent 14 days) ใช้ DATE_SUB(CURDATE(), INTERVAL 14 DAY) คำนวณวันที่ 14 วันที่แล้ว แล้วกรองวันที่มากกว่าค่านั้น สร้างตารางและข้อมูล insert into DemoTable1392 values(2019-10-11); ข้อมูลและวันที่ปัจจุบัน select curdate(); +------------+ | curdate() | +-

  5. MySQL: ค้นหาชื่อที่มีตัวอักษร 'a' อย่างน้อย 3 ตัวด้วย LIKE

    Pattern Matching: หาสตริงที่มีตัวอักษร a อย่างน้อย 3 ตัวด้วย LIKE ใช้ LIKE %a%a%a% — แต่ละ %a% หมายถึง มี a อย่างน้อย 1 ตัวที่ตำแหน่งไหนก็ได้ รวม 3 ตัว = อย่างน้อย 3 ตัว a สร้างตารางและข้อมูล insert into DemoTable1393 values(austria); ข้อมูลทั้งหมด +-------------+ | CountryName | +-------------+

  6. MySQL: จัดรูปแบบตัวเลขพันล้วงทศนิยม 2 ตำแหน่งด้วย FORMAT()

    การจัดรูปแบบตัวเลขให้มีคอมม่าคั่นพันและทศนิยม 2 ตำแหน่งด้วย FORMAT() FORMAT(number, decimals) จัดรูปแบบตัวเลขเป็นสตริง มีคอมม่าคั่นกลุ่มพัน และปัดเศษทศนิยมตามที่กำหนด สร้างตารางและข้อมูล insert into DemoTable1394 values(8769); ข้อมูลต้นฉบับ +----------+ | Amount | +----------+ | 60.000 | | 23

  7. MySQL: เรียงลำดับหลายคอลัมน์พร้อมกันด้วย GREATEST()

    การเรียงลำดับแถวตามค่าสูงสุดจากหลายคอลัมน์ด้วย GREATEST() GREATEST() คืนค่าสูงสุดจากรายการค่าที่ให้มา ใช้ใน ORDER BY เพื่อเรียงแถวตามค่าสูงสุดของหลายคอลัมน์ สร้างตารางและข้อมูล insert into DemoTable1395 values(10, 20, 30); ข้อมูลก่อนเรียง +--------+--------+--------+ | Value1 | Value2 | Value3 |

  8. MySQL: นับค่า NOT NULL จากหลายตารางในคำสั่งเดียว (ไม่นับ NULL)

    การนับเฉพาะค่า NOT NULL จากหลายตารางพร้อมกันด้วย Subquery ใช้ Subquery ใน SELECT clause เพื่อนับ COUNT(column) (นับเฉพาะ non-NULL) จากหลายตารางในคำสั่งเดียว สร้างตารางแรกและข้อมูล insert into DemoTable1 values(1), (NULL), (2), (3); สร้างตารางที่สองและข้อมูล insert into DemoTable2 values(10), (NU

  9. MySQL: รวมคอลัมน์ทั้งหมดเป็นคอลัมน์เดียวด้วย CONCAT

    การต่อสตริง (Concatenate) คอลัมน์หลายคอลัมน์ให้เป็นคอลัมน์เดียว ใช้ CONCAT() รวมค่าจากหลายคอลัมน์ เป็นสตริงเดียวในผลลัพธ์ SELECT สร้างตารางและข้อมูล insert into DemoTable1396(Name, Age) values(Bob, 26); ข้อมูลต้นฉบับ +----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | Chris |

  10. MySQL: เปรียบเทียบวันที่ใน VARCHAR กับวันที่ปัจจุบันด้วย STR_TO_DATE

    การแปลง VARCHAR เป็น DATE เพื่อเปรียบเทียบกับ CURDATE() เมื่อวันที่เก็บเป็น VARCHAR (เช่น 01/04/2019) ต้องแปลงเป็น DATE ด้วย STR_TO_DATE() ก่อนจึงจะเปรียบเทียบกับ CURDATE() ได้ถูกต้อง สร้างตารางและข้อมูล insert into DemoTable1397 values(29/09/2019); ข้อมูลและวันที่ปัจจุบัน select curdate(); +---

  11. MySQL: คำนวณเปอร์เซ็นต์จากคะแนนสอบ

    การคำนวณเปอร์เซ็นต์เฉลี่ยจากคอลัมน์ Marks ใน MySQL ใช้ SUM() หาผลรวมคะแนน COUNT(*) นับจำนวนแถว แล้วหารกัน และต่อสตริง % สร้างตารางและข้อมูล insert into DemoTable1398 values(98); ข้อมูลทั้งหมด +-------+ | Marks | +-------+ | 78 | | 82 | | 90 | | 98 | +-------+ คำสั่งคำนวณเปอร์เซ็นต์

  12. MySQL: ดูค่า Auto Increment ถัดไป (Next Primary Key) โดยไม่ต้อง INSERT

    การดึงค่า AUTO_INCREMENT ถัดไปจาก information_schema สามารถดูค่า Primary Key ถัดไปที่จะถูกกำหนดได้โดยไม่ต้อง INSERT จริง ผ่าน information_schema.tables สร้างตารางและเพิ่มข้อมูล 3 แถว insert into DemoTable1399 values(); ข้อมูลปัจจุบัน (ID 1, 2, 3) +-----------+ | StudentId | +-----------+ | 1

  13. MySQL: การสร้าง Candidate Key ด้วย UNIQUE Constraint หลายคอลัมน์

    Candidate Key ใน MySQL: การใช้ UNIQUE Constraint บนหลายคอลัมน์ Candidate Key คือคอลัมน์ (หรือชุดคอลัมน์) ที่สามารถระบุแถวได้อย่างเฉพาะเจาะจง (Unique + Not Null) — เหมาะสมเป็น Primary Key หนึ่งในหลายตัวเลือก ตัวที่เลือกเป็น Primary Key เรียกว่า Primary Key ส่วนที่เหลือคือ Alternate Keys ไวยากรณ์: เพ

  14. MySQL: หาคะแนนสูงสุด 2 อันดับแรกด้วย MAX และ GROUP BY

    การหาคะแนนสูงสุด (Top Scores) ต่อกลุ่มด้วย MAX และ GROUP BY ตัวอย่างนี้หาคะแนนสูงสุดของแต่ละ Player (group by Id) แล้วเรียงจากสูงสุดไปต่ำสุด — ได้ Top 2 player scores สร้างตารางและข้อมูล insert into DemoTable1383 values(200, 57); ข้อมูลทั้งหมด +------+-------------+ | Id | PlayerScore | +------

  15. MySQL: เพิ่มหลายแถวในคำสั่ง INSERT เดียว

    การ INSERT หลายแถวพร้อมกันด้วยคำสั่งเดียว (Multi-row INSERT) MySQL รองรับการแทรกหลายแถวในคำสั่ง INSERT เดียว โดยคั่นชุดค่าด้วยคอมมา — เร็วกว่าและ atomic กว่า INSERT หลายคำสั่ง สร้างตาราง ); Query OK, 0 rows affected (0.63 sec) คำสั่ง INSERT หลายแถว (Adam Smith, 23); Query OK, 4 rows affected (0.

  16. MySQL: ดึงหลายแถวในคำสั่งเดียวด้วย LIKE

    การใช้ LIKE operator เพื่อดึงข้อมูลหลายแถวที่ตรงรูปแบบ LIKE ใช้สำหรับ pattern matching ใน WHERE clause โดยใช้ wildcard: % (ตัวอักษรใดๆ 0 ตัวขึ้นไป) และ _ (ตัวอักษรใดๆ 1 ตัว) สร้างตารางและข้อมูล insert into DemoTable1385(Name) values(John Smith); ข้อมูลทั้งหมด +----+--------------+ | Id | Name

  17. MySQL: รวมค่าซ้ำด้วย GROUP_CONCAT คั่นขีดกลาง

    การรวมค่าที่ซ้ำกันในคอลัมน์หนึ่ง โดยรวมคอลัมน์อีกคอลัมน์คั่นด้วยขีดกลาง ใช้ GROUP_CONCAT() ร่วมกับ GROUP BY เพื่อรวมแถวที่มีค่า Title ซ้ำกัน ให้กลายเป็นแถวเดียว โดยรวม Name คั่นด้วย ---- (4 ขีดกลาง) สร้างตารางและข้อมูล insert into DemoTable1386 values(Java in Depth, Joshua Bloch); ข้อมูลก่อนรวม +

  18. MySQL: แสดงข้อมูลของ VIEW ด้วย SELECT *

    การสร้างและแสดงข้อมูลจาก VIEW ใน MySQL VIEW เป็นตารางเสมือน (virtual table) ที่เก็บคำสั่ง SELECT ไว้ ใช้งานเหมือนตารางทั่วไปด้วย SELECT * FROM view_name สร้างตารางฐานข้อมูล insert into DemoTable1388(StudentName) values(Mike); ข้อมูลในตารางหลัก +-----------+-------------+ | StudentId | StudentName

  19. MySQL: เลือกค่าสูงสุดหลายแถวที่มีค่าเท่ากัน (Duplicate MAX values)

    การดึงแถวทั้งหมดที่มีค่าสูงสุด (MAX) รวมถึงค่าซ้ำด้วย JOIN เมื่อต้องการดึง ทุกแถว ที่มีค่าเท่ากับค่าสูงสุด (MAX) ไม่ใช่แค่ค่า MAX เดียว ใช้เทคนิค JOIN กับ subquery ที่หา MAX สร้างตารางและข้อมูล (มีค่าซ้ำ) insert into DemoTable1389(StudentMarks) values(97); ข้อมูลทั้งหมด +-----------+-------------

  20. ค้นหาค่าที่ตรงกันแม่นยำ (Case-sensitive) ใน MySQL ด้วย COLLATE

    ปัญหา MySQL Default Collation (เช่น utf8_general_ci, utf8mb4_general_ci) เป็น Case-Insensitive (ci = Case Insensitive) การค้นหา mysql = MySQL จะเป็น TRUE วิธีแก้: ใช้ COLLATE utf8_bin (หรือ utf8mb4_bin) WHERE column COLLATE utf8_bin = ExactValue ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล (Case ต่างกั

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:46/229  20-คอมพิวเตอร์/Page Goto:1 40 41 42 43 44 45 46 47 48 49 50 51 52