Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. สตริงว่าง (Empty String) ในคอลัมน์ NOT NULL ใน MySQL

    ใน PHP สตริงว่างเท่ากับ NULL แต่ใน MySQL สตริงว่างไม่เท่ากับ NULL สามารถ INSERT สตริงว่างเข้าไปในคอลัมน์ NOT NULL ได้ ตัวอย่างการใช้งาน สร้างตารางคอลัมน์ Name เป็น NOT NULL: mysql> CREATE TABLE EmptyStringNotNullDemo ( Id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(10) NOT NULL, PRIMARY KEY(Id) )

  2. ปรับปรุงประสิทธิภาพการค้นหา MySQL ด้วย Wildcards (%%)

    ไม่สามารถปรับปรุงได้ หากใช้ Leading Wildcard (%text) เพราะ MySQL จะไม่สามารถใช้ Index ได้ การค้นหาจะทำ Full Table Scan แต่ถ้าใช้ Trailing Wildcard (text%) MySQL จะใช้ Index ได้ ทำให้ค้นหาเร็วขึ้นมาก รูปแบบที่แนะนำ (Trailing Wildcard) SELECT * FROM yourTableName WHERE yourColumnName LIKE anyLetter

  3. กำหนด Decimal Precision และ Scale ใน MySQL ผ่าน phpMyAdmin

    เมื่อสร้างตารางใน phpMyAdmin สำหรับชนิดข้อมูล DECIMAL ต้องระบุ 2 พารามิเตอร์: X (Total Number of Digits): จำนวนหลักทั้งหมด (Precision) Y (Digits After Decimal Point): จำนวนหลักหลังจุดทศนิยม (Scale) โครงสร้าง DECIMAL DECIMAL(X,Y) ตัวอย่าง DECIMAL(6,4) = 6 หลักทั้งหมด, 4 หลักหลังจุดทศนิยม → ค่าท

  4. นำ WHILE LOOP มาใช้กับ IF STATEMENT ใน MySQL

    ตัวอย่างการใช้ WHILE LOOP ร่วมกับ IF STATEMENT ใน MySQL Stored Procedure Stored Procedure คำนวณวันทำงานในเดือนปัจจุบัน mysql> DELIMITER // mysql> CREATE PROCEDURE sp_getDaysDemo() BEGIN SELECT MONTH(CURDATE()) INTO @current_month; SELECT MONTHNAME(CURDATE()) INTO @current_monthname; SEL

  5. หาสตริงตัวพิมพ์ใหญ่ทั้งหมด (Uppercase) ในตาราง MySQL

    ใช้ฟังก์ชัน BINARY UPPER() เพื่อหาสตริงที่เป็นตัวพิมพ์ใหญ่ทั้งหมดใน MySQL รูปแบบไวยากรณ์ SELECT * FROM yourTableName WHERE yourColumnName = BINARY UPPER(yourColumnName); BINARY ทำให้การเปรียบเทียบเป็น Case-sensitive ตัวอย่างการใช้งาน สร้างตาราง: mysql> CREATE TABLE FindUpperCaseDemo ( Id INT,

  6. SELECT แถวที่วันที่ปัจจุบันอยู่ระหว่าง 2 คอลัมน์ DATE ใน MySQL

    ใช้ตัวดำเนินการ AND เพื่อเลือกแถวที่วันที่ปัจจุบันอยู่ระหว่าง 2 คอลัมน์วันที่ รูปแบบไวยากรณ์ SELECT * FROM yourTableName WHERE yourDateColumnName1 = yourDateValue; ตัวอย่างการใช้งาน สร้างตาราง: mysql> CREATE TABLE selectDates ( Id INT NOT NULL AUTO_INCREMENT, StartingDate DATE, EndingDate DATE

  7. หาความต่างระหว่าง 2 คำสั่ง SELECT ใน MySQL

    ใช้ Subquery เพื่อหาความต่างระหว่าง 2 คำสั่ง SELECT ใน MySQL รูปแบบไวยากรณ์ SELECT * FROM yourTableName WHERE yourColumnName NOT IN (SELECT yourColumnName FROM yourTableName WHERE yourCondition); ตัวอย่างการใช้งาน สร้างตาราง: mysql> CREATE TABLE DifferenceSelectDemo ( Id INT NOT NULL AUTO_INCR

  8. แปลง TIMEDIFF ใน MySQL ให้เป็นรูปแบบ วัน ชั่วโมง นาที วินาที

    ใช้ฟังก์ชัน CONCAT() ร่วมกับฟังก์ชันวันที่/เวลา เพื่อแปลงผลลัพธ์ TIMEDIFF ให้อ่านง่าย ตัวอย่างการใช้งาน สร้างตารางเก็บวันที่เริ่มต้นและสิ้นสุด: mysql> CREATE TABLE convertTimeDifferenceDemo ( Id INT NOT NULL AUTO_INCREMENT, StartDate DATETIME, EndDate DATETIME, PRIMARY KEY(Id) ); Query OK, 0 ro

  9. ตั้งค่า MySQL DECIMAL ให้มีความแม่นยำ 10 ตำแหน่งหลังจุดทศนิยม

    ชนิดข้อมูล DECIMAL(M,D) รับพารามิเตอร์ 2 ตัว: M = จำนวนหลักทั้งหมด (Precision), D = จำนวนหลักหลังจุดทศนิยม (Scale) หากต้องการ 10 ตำแหน่งหลังจุดทศนิยม ใช้ DECIMAL(20,10) หมายถึงรวม 20 หลัก โดย 10 หลักหลังจุดทศนิยม และ 10 หลักหน้าจุดทศนิยม ตัวอย่างการใช้งาน สร้างตาราง: mysql> CREATE TABLE Decima

  10. แก้ไข MySQL ERROR 1406: Data too long for column แต่ไม่ควรจะยาวเกิน

    ข้อผิดพลาดนี้เกิดขึ้นเมื่อพยายามเก็บข้อมูลเกินขีดจำกัดที่อนุญาต ตัวอย่างเช่น ไม่สามารถเก็บสตริงในคอลัมน์ชนิด BIT ได้ เนื่องจาก VARCHAR/String ใช้ขนาดมากกว่า BIT รูปแบบที่ถูกต้องสำหรับคอลัมน์ BIT anyBitColumnName = b1 OR anyBitColumnName = b0 ต้องเติมคำนำหน้า b นำหน้าค่า ตัวอย่างข้อผิดพลาดและวิธี

  11. หาค่า Nth Highest (อันดับที่ N จากสูงสุด) ของคอลัมน์ใน MySQL

    ใช้ ORDER BY DESC ร่วมกับ LIMIT เพื่อหาค่าอันดับที่ N จากสูงสุด รูปแบบไวยากรณ์ อันดับที่ 2: LIMIT 1,1 (ข้าม 1 แถว แล้ว取 1 แถว) อันดับที่ 4: LIMIT 3,1 (ข้าม 3 แถว แล้ว取 1 แถว) อันดับที่ 1: LIMIT 1 (หรือ LIMIT 0,1) หลักการ: LIMIT offset, count โดย offset = N-1 ตัวอย่างการใช้งาน สร้างตารางเงินเดื

  12. ลบอักขระพิเศษออกจากฟิลด์ฐานข้อมูลใน MySQL

    ลบอักขระพิเศษจากฟิลด์ฐานข้อมูลได้ด้วยฟังก์ชัน REPLACE() อักขระพิเศษเช่น เครื่องหมายคำพูดคู่ (), ตัวแฮช (#), ดอลลาร์ ($), เปอร์เซ็นต์ (%) เป็นต้น รูปแบบไวยากรณ์ UPDATE yourTableName SET yourColumnName = REPLACE(yourColumnName, yourSpecialCharacters, ); ตัวอย่างการใช้งาน สร้างตาราง: mysql> CREAT

  13. แยกสตริงและวนลูปใน MySQL Stored Procedure

    เพื่อแยกสตริงและวนลูปค่าทั้งหมดใน MySQL Procedure ไม่ต้องใช้ REPLACE() สร้าง Stored Procedure แล้วสร้างตารางเก็บค่า และเรียก Procedure พร้อมส่งค่าเข้าไป สร้าง Stored Procedure mysql> DELIMITER // mysql> CREATE PROCEDURE SP_SplitString(Value LONGTEXT) BEGIN DECLARE front TEXT DEFAULT NULL;

  14. ดึงข้อมูลจำนวนมากแบ่งชุด (Chunks) ใน MySQL

    เพื่อดึงข้อมูลจำนวนมากแบ่งเป็นชุดๆ ใช้ ORDER BY ร่วมกับ LIMIT รูปแบบไวยากรณ์ SELECT * FROM yourTableName ORDER BY yourColumnName LIMIT 0,10; LIMIT offset, count โดย offset เริ่มจาก 0 (Zero-based) และ count คือจำนวนแถวสูงสุด ชุดถัดไป (แถวที่ 11-30): SELECT * FROM yourTableName ORDER BY yourColumn

  15. ใช้ Trigger ป้องกัน INSERT หรือ UPDATE ใน MySQL

    ใช้คำสั่ง SIGNAL SQLSTATE เพื่อหยุดการ INSERT หรือ UPDATE ใน MySQL รูปแบบ Trigger DELIMITER // CREATE TRIGGER yourTriggerName BEFORE INSERT ON yourTableName FOR EACH ROW BEGIN IF yourCondition THEN SIGNAL SQLSTATE 45000 SET MESSAGE_TEXT = anyMessageToEndUser; END IF; END // DELIMITER ; ตั

  16. MySQL Stored Procedure คืนค่าอย่างไร?

    เพื่อคืนค่าจาก Stored Procedure ต้องใช้ตัวแปร Session-specific ที่ผู้ใช้กำหนด (User-defined Variable) โดยใส่สัญลักษณ์ @ นำหน้าชื่อตัวแปร ตัวอย่างการใช้งาน สร้าง Stored Procedure ที่รับค่า 2 ตัว ส่งค่ากลับผ่านตัวแปร OUT: 5) THEN SET valido = (num1 + num2); ELSE SET valido = (num1 - num2); END

  17. หาผลรวม (SUM) สำหรับค่าที่ไม่ซ้ำ (DISTINCT) ในคอลัมน์อื่น MySQL

    ใช้ฟังก์ชันรวม SUM() ร่วมกับ GROUP BY เพื่อหาผลรวมสำหรับค่าที่ไม่ซ้ำในคอลัมน์อื่น ตัวอย่างการใช้งาน สร้างตาราง: mysql> CREATE TABLE SumOfEveryDistinct ( Id INT NOT NULL, Amount INT ); Query OK, 0 rows affected (0.59 sec) เพิ่มข้อมูล (Id ซ้ำกัน มี Amount ต่างกัน): mysql> INSERT INTO SumOfEve

  18. ต่อ Carriage Return (New Line) เข้ากับค่าใน MySQL

    ใช้ฟังก์ชัน CONCAT_WS() ของ MySQL เพื่อต่อ Carriage Return (New Line) หากต้องการขึ้นบรรทัดใหม่ ให้ต่อ \n ไว้หน้า รูปแบบไวยากรณ์ SELECT CONCAT_WS(\n, yourColumnName) AS anyVariableName FROM yourTableName; ตัวอย่างการใช้งาน สร้างตาราง: mysql> CREATE TABLE NewLineDemo ( CountryName varchar(10) );

  19. MySQL: เพิ่มแถวและดึงข้อมูลกลับมาทันที

    เพื่อเพิ่มแถวและดึงข้อมูลกลับมาทันที ต้องใช้ Stored Procedure ก่อนอื่นสร้างตาราง แล้วสร้าง Stored Procedure ที่จะ INSERT และ SELECT ผลลัพธ์ทันทีหลังเรียกใช้ ตัวอย่างการใช้งาน สร้างตาราง: mysql> create table InsertRecord_SelectTable ( Id int NOT NULL AUTO_INCREMENT, Name varchar(20), PRIMARY KEY

  20. MySQL Delimiter Error เกิดขึ้นเมื่อไหร่?

    ข้อผิดพลาด Delimiter ใน MySQL เกิดขึ้นเมื่อใช้ Delimiter แบบ Pipe (|) ร่วมกับ Semicolon (;) ใน MySQL เวอร์ชันต่ำกว่า 8.0.12 MySQL ถือว่า Pipe (|) เป็น Delimiter ตัวหนึ่ง และ Semicolon (;) เป็นอีกตัวหนึ่ง จึงไม่ควรสับสนระหว่าง Delimiter แบบ Pipe กับ Semicolon หมายเหตุ: ใน MySQL 8.0.12 Pipe Delimit

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:142/229  20-คอมพิวเตอร์/Page Goto:1 136 137 138 139 140 141 142 143 144 145 146 147 148