Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. วิธีแทรกค่าเองเข้าไปในคอลัมน์ AUTO_INCREMENT ใน MySQL

    คุณสามารถทำได้โดยใช้คำสั่ง INSERT ปกติ โดยระบุค่าสำหรับคอลัมน์ AUTO_INCREMENT ไวยากรณ์มีดังนี้:INSERT INTO yourTableName (yourIdColumnName, yourColumnName) values(value1, value2);มาสร้างตารางก่อน: create table InsertValueInAutoIncrement ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varc

  2. วิธีดูค่าที่เป็นไปได้ของ ENUM ใน MySQL ด้วย PHP

    คุณสามารถดูค่า ENUM ที่เป็นไปได้ได้ผ่านตาราง INFORMATION_SCHEMA.COLUMNS ไวยากรณ์มีดังนี้:SELECT COLUMN_TYPE AS anyAliasName FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = yourDatabaseName AND TABLE_NAME = yourTableName AND COLUMN_NAME = yourEnumColumnName;มาสร้างตารางที่มีชนิดข้อมูล ENUM: crea

  3. วิธีดูวันที่/เวลาการเปลี่ยนแปลงล่าสุดของฐานข้อมูล MySQL

    คุณสามารถดูวันที่/เวลาการเปลี่ยนแปลงล่าสุดได้ผ่าน INFORMATION_SCHEMA.TABLES ไวยากรณ์มีดังนี้:SELECT update_time FROM information_schema.tables WHERE table_schema = yourDatabaseName AND table_name = yourTableName;มาสร้างตารางเพื่อทดสอบ: create table TblUpdate ( Id int not null auto_increment primary

  4. เครื่องหมายอ้างอิงที่แตกต่างกันใน MySQL คืออะไร

    ใน MySQL คุณสามารถใช้แบ็กทิก (`) และเครื่องหมายอัญประกาศเดี่ยว () แบ็กทิกใช้รอบชื่อคอลัมน์และชื่อตาราง ส่วนเครื่องหมายอัญประกาศเดี่ยวใช้สำหรับค่าของคอลัมน์มาดูตัวอย่างทั้งสองประเภท เริ่มจากสร้างตาราง: create table QuotesDemo ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varchar(20), UserAge

  5. การเพิ่มวัน/ชั่วโมง/นาที/วินาที 5 หน่วยให้กับ NOW() ใน MySQL

    เพื่ออัปเดตวันที่และเวลาปัจจุบันเพิ่ม 5 วัน คุณต้องใช้ NOW() + INTERVAL 5 DAY ซึ่งจะอัปเดตวันที่-เวลาทั้งหมด คือ วัน ชั่วโมง นาที และวินาที มาสร้างตารางเพื่อทำความเข้าใจ: create table UserInformationExpire ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varchar(10), UserInformationExpireDateT

  6. คำสั่ง IF ใน MySQL กับเงื่อนไขหลายเงื่อนไข

    คุณสามารถใช้คำสั่ง IF ใน stored procedure พร้อมเงื่อนไขหลายอย่างได้โดยใช้ตัวดำเนินการ AND หรือ OR ไวยากรณ์มีดังนี้:DECLARE X int; DECLARE Y int; SET X = value1; SET Y = value2; IF ((X value2) OR X != anyValueToCompare) THEN yourStatement; ELSE yourStatement; END IFตอนนี้มาสร้าง stored procedure เพื

  7. การหาผลรวมถ้าทุกแถวไม่เป็น NULL มิฉะนั้นคืนค่า NULL ใน MySQL

    คุณสามารถทำได้โดยใช้คำสั่ง GROUP BY ร่วมกับ HAVING ไวยากรณ์มีดังนี้:SELECT yourColumnName1, SUM(yourColumnName2) FROM yourTableName GROUP BY yourColumnName1 HAVING COUNT(yourColumnName2) = COUNT(*);เพื่อเข้าใจไวยากรณ์ข้างต้น เรามาสร้างตารางกันก่อน คำสั่งสร้างตารางมีดังนี้: create table SumDemo ( Id

  8. ควรใช้ LIMIT 1 กับ SELECT 1 ใน MySQL หรือไม่?

    ใช่ ควรใช้ LIMIT 1 กับ SELECT 1 เพื่อหยุดการสแกนตารางทันทีที่พบแถวแรก เหตุผล SELECT 1 FROM table จะคืนค่า 1 สำหรับทุกแถวในตาราง หากตารางมี 1 ล้านแถว จะได้ 1 ล้านแถวของเลข 1 ตัวอย่างการใช้งาน สร้างตาราง 7 แถว: INSERT INTO Select1AndLimit1Demo(Name) VALUES (John),(Carol),(Sam),(Bob),(David),(Mike)

  9. MySQL ORDER BY ภายใน GROUP BY ไม่ได้ ใช้ MAX() แทน

    MySQL ไม่รองรับ ORDER BY ภายใน GROUP BY โดยตรง ใช้ Aggregate Function MAX() หรือ MIN() เพื่อเลือกค่าตามเงื่อนไข ตัวอย่างการใช้งาน สร้างตาราง: ); เพิ่มข้อมูล (Sam มี 2 แถว Rank 1 และ 2): INSERT INTO MaxDemo(UserName,UserRank) VALUES (Larry,2),(Sam,1),(Sam,2); ข้อมูล: +--------+----------+------

  10. SELECT ด้วย IN() ใน MySQL หลีกเลี่ยงการ Sort อัตโนมัติด้วย FIND_IN_SET

    คำสั่ง IN() จะเรียงผลลัพธ์ตามคอลัมน์อัตโนมัติ ใช้ ORDER BY FIND_IN_SET() เพื่อคงลำดับตามที่ระบุใน IN clause ตัวอย่างการใช้งาน สร้างตาราง: ); เพิ่มข้อมูล: INSERT INTO ProductStock VALUES (1,Product-101,10,500.56),(25,Product-111,5,150.00), (67,Product-311,7,1000.50),(55,Product-561,8,900.00), (

  11. แสดง Warning เมื่อ INSERT ค่า FLOAT ลงคอลัมน์ DECIMAL ใน MySQL

    สร้าง Temporary Table ชนิด DECIMAL แล้ว INSERT ค่า FLOAT จะเกิด Warning ใช้ SHOW WARNINGS ดูรายละเอียด ตัวอย่างการใช้งาน สร้าง Temporary Table: CREATE TEMPORARY TABLE WarningDemo (Value DECIMAL); Insert ค่าทศนิยม (9.80) ลง DECIMAL (ไม่ระบุ precision/scale): INSERT INTO WarningDemo VALUES (9.80)

  12. SELECT และ Filter ข้อมูลตามเดือนใน MySQL ด้วย GROUP BY และ SUM

    ใช้ MONTH() หรือ MONTHNAME() ร่วมกับ GROUP BY และ SUM() เพื่อรวมข้อมูลรายเดือน ตัวอย่างการใช้งาน สร้างตาราง: ); เพิ่มข้อมูล (กระจายหลายเดือน): INSERT INTO SelectPerMonthDemo(Price,PurchaseDate) VALUES (600, DATE_ADD(NOW(), INTERVAL -1 MONTH)), (600, DATE_ADD(NOW(), INTERVAL 2 MONTH)), (400, NO

  13. คำสั่งตรวจสอบ Read/Write Ratio ใน MySQL ด้วย SHOW STATUS

    ใช้ SHOW STATUS และ SHOW GLOBAL STATUS เพื่อดูสถิติการอ่าน/เขียน กรณีที่ 1: ดูคำสั่งทั้งหมด (Com_%) SHOW STATUS LIKE Com_%; กรณีที่ 2: ดูเฉพาะ Insert, Select, Update, Delete SHOW GLOBAL STATUS WHERE Variable_name IN (Com_insert,Com_select,Com_update,Com_delete); ตัวอย่างผลลัพธ์ +---------------+-

  14. SELECT ทุกแถวยกเว้นแถวสุดท้ายใน MySQL

    ใช้ != (หรือ <>) ร่วมกับ Subquery หา MAX ID เพื่อตัดแถวสุดท้ายออก ไวยากรณ์ SELECT * FROM yourTableName WHERE yourIdColumn != (SELECT MAX(yourIdColumn) FROM yourTableName); ตัวอย่างการใช้งาน สร้างตาราง: ); เพิ่มข้อมูล 6 แถว: INSERT INTO AllRecordsExceptLastOne(UserName,UserAge) VALUES (J

  15. แก้ ERROR 1111: Invalid use of group function - ใช้ Aggregate กับ WHERE ให้ถูกต้อง

    Error 1111 เกิดจากการใช้ Aggregate Function (COUNT, SUM, AVG, MAX, MIN) ใน WHERE clause โดยตรง ซึ่ง MySQL ไม่อนุญาต ต้องใช้ Subquery แทน วิธีที่ผิด (Error 1111) AVG(EmployeeSalary); -- ERROR! วิธีที่ถูกต้อง: ใช้ Subquery (SELECT AVG(yourColumn) FROM yourTableName); ตัวอย่างการใช้งาน สร้างตารา

  16. ใช้ WHERE หลายเงื่อนไขใน MySQL ด้วย AND / OR

    ใช้ AND หรือ OR รวมเงื่อนไขหลายตัวใน WHERE clause ไวยากรณ์ SELECT * FROM yourTableName WHERE column1 = value1 AND column2 = value2; ตัวอย่างการใช้งาน สร้างตาราง: create table WhereDemo (Id int, Name varchar(20)); เพิ่มข้อมูล: INSERT INTO WhereDemo VALUES (101,Maxwell),(110,David),(1000,Carol),

  17. ค้นหาช่วงวันที่ (BETWEEN) ที่เก็บเป็น VARCHAR ใน MySQL

    ใช้ STR_TO_DATE() แปลง VARCHAR เป็น DATE แล้วค่อยใช้ BETWEEN ไวยากรณ์ SELECT * FROM yourTableName WHERE STR_TO_DATE(LEFT(yourColumnName, LOCATE( , yourColumnName)), %m/%d/%Y) BETWEEN startDate AND endDate; ตัวอย่างการใช้งาน สร้างตาราง (เก็บวันที่เป็น VARCHAR รูปแบบ MM/DD/YYYY HH:MI AM/PM): );

  18. เปรียบเทียบสองตารางหา ID ที่ขาดหายไปด้วย LEFT OUTER JOIN ใน MySQL

    ใช้ LEFT OUTER JOIN ร่วมกับ WHERE right_table.id IS NULL เพื่อหา ID ที่อยู่ในตารางซ้ายแต่อยู่ในตารางขวา ตัวอย่างการใช้งาน ตารางแรก (First_Table) INSERT INTO First_Table VALUES (1),(2),(3),(4); +------+ | Id | +------+ | 1 | | 2 | | 3 | | 4 | +------+ ตารางที่สอง (Second_Table) INS

  19. ตั้งค่า Auto Increment Primary Key ให้ใหญ่ที่สุดใน MySQL ด้วย BIGINT

    ใช้ BIGINT แทน INT สำหรับ Primary Key Auto Increment เพื่อรองรับค่าสูงสุด 9,223,372,036,854,775,807 (ประมาณ 9.2 quintillion) ไวยากรณ์ yourColumnName BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY; ตัวอย่างการใช้งาน สร้างตาราง: ); Query OK, 0 rows affected (0.78 sec) Insert เริ่มจากค่าใกล้สูงสุด: I

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:136/229  20-คอมพิวเตอร์/Page Goto:1 130 131 132 133 134 135 136 137 138 139 140 141 142