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

    การสร้างหมายเลขลำดับ (Numbering) ภายใน GROUP_CONCAT ตามกลุ่ม บทความนี้แสดงวิธีใช้ตัวแปรผู้ใช้ (user-defined variables) ร่วมกับ GROUP_CONCAT เพื่อสร้างหมายเลขลำดับอัตโนมัติสำหรับแต่ละกลุ่ม (group) ใน MySQL สร้างตารางและเพิ่มข้อมูล insert into DemoTable1627 values(Carol,Taylor); ข้อมูลต้นฉบับ +----

  2. MySQL: การจัดรูปแบบตัวเลข-สตริง เพื่อเติมศูนย์ทางซ้ายหลังเครื่องหมายทับ

    การเติมศูนย์นำหน้าหลังเครื่องหมายทับ (/) ใน MySQL บทความนี้สาธิตวิธีการจัดรูปแบบข้อมูลแบบตัวเลข-สตริง (number-string) ที่คั่นด้วยเครื่องหมายทับ (/) โดยการเติมศูนย์ (zero-padding) ด้านซ้ายของส่วนตัวเลขหลังเครื่องหมายทับ ให้มีความกว้างเท่ากันทุกแถว โดยอิงจากค่าที่มีตัวเลขมากที่สุด สร้างตารางตัวอย่าง

  3. หาผลรวมจากเซลล์เฉพาะใน MySQL ใช้ WHERE กรองก่อน SUM()

    เมื่อต้องการหาผลรวม (SUM) จากแถวที่ตรงเงื่อนไขเฉพาะ ให้ใช้ WHERE กรองแถวก่อน แล้วค่อยใช้ Aggregate Function SUM() ตัวอย่างการใช้งาน สร้างตารางคะแนนนักเรียน (มีชื่อซ้ำ): mysql> create table DemoTable1370 (StudentName varchar(20), Marks int); mysql> insert into DemoTable1370 values(Adam Smith,5

  4. แปลงค่าว่าง (Blank/Empty) เป็น NULL ใน MySQL ด้วย UPDATE และ LENGTH

    ใน MySQL ค่าว่าง () และ NULL แตกต่างกัน หากข้อมูลมีทั้งค่าว่างและ NULL ปนกัน สามารถทำให้สอดคล้องโดยแปลงค่าว่าง (และ Space-only) เป็น NULL ด้วย UPDATE ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล (มี Empty string, Space, NULL): mysql> create table DemoTable1362 (ClientId int NOT NULL AUTO_INCREMENT

  5. สร้างตัวแปรใน MySQL Stored Procedure ด้วย DECLARE

    ใน MySQL Stored Procedure ใช้คำสั่ง DECLARE ประกาศตัวแปร Local (ใช้ได้เฉพาะภายใน Procedure) ต่างจาก User-defined Variable (@var) ที่ใช้ได้ทั่ว Session รูปแบบคำสั่ง DECLARE variableName datatype DEFAULT defaultValue; ตัวอย่าง Procedure ใช้ DECLARE mysql> DELIMITER // mysql> CREATE PROCEDURE v

  6. สิทธิ์การดูฐานข้อมูลทั้งหมดใน MySQL ใช้ REVOKE SHOW DATABASES

    ใน MySQL สิทธิ์ SHOW DATABASES ควบคุมว่าผู้ใช้สามารถเห็นรายชื่อฐานข้อมูลทั้งหมดได้หรือไม่ (ผ่าน SHOW DATABASES หรือ INFORMATION_SCHEMA.SCHEMATA) การเพิกถอนสิทธิ์นี้ช่วยเพิ่มความปลอดภัย รูปแบบคำสั่ง REVOKE SHOW DATABASES ON *.* FROM yourUserName@yourHostName; ตัวอย่าง: ดู User ทั้งหมด แล้ว Revoke ส

  7. ใช้ IN() กับคอลัมน์ที่มี Underscore ใน MySQL (Exact Match เท่านั้น)

    เมื่อใช้ IN() กับคอลัมน์ที่มีค่าปน Underscore (เช่น 901_John_Doe) การค้นหา IN(702,1001) จะทำ Exact Match เท่านั้น ไม่จับ 1001_Carol_Taylor เพราะ Underscore ไม่ใช่ Wildcard ใน IN() ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล: mysql> create table DemoTable1363 (StudentId varchar(20)); mysql> ins

  8. ค้นหาวันที่หลังจากวันที่กำหนดในคอลัมน์ VARCHAR ด้วย STR_TO_DATE ใน MySQL

    เมื่อคอลัมน์เก็บวันที่เป็น VARCHAR (รูปแบบ DD-MM-YYYY HH:MM:SS) และต้องการเปรียบเทียบหาวันที่หลังจากวันที่กำหนด ให้ใช้ STR_TO_DATE() แปลงทั้งคอลัมน์และค่าเปรียบเทียบให้เป็น DATE/DATETIME ก่อน ตัวอย่างการใช้งาน สร้างตารางเก็บวันที่ส่งสินค้า (VARCHAR): mysql> create table DemoTable1364 (ShippingDa

  9. ค้นหาแถวที่มีช่องว่าง (Whitespace) ตำแหน่งที่ 2 ใน MySQL ด้วย SUBSTR

    เมื่อต้องการค้นหาแถวที่ตัวอักษรตำแหน่งที่ 2 เป็นช่องว่าง (Whitespace) ให้ใช้ฟังก์ชัน SUBSTR() (หรือ SUBSTRING()) ดึงตัวอักษรตำแหน่งที่ 2 มาเปรียบเทียบ รูปแบบคำสั่ง SELECT * FROM yourTableName WHERE SUBSTR(yourColumnName, 2, 1) = ; ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล (บางแถวมี Space ตำแหน่ง

  10. SELECT ไม่ได้แถวและคอลัมน์ใดๆ ใน MySQL ด้วย SELECT NULL WHERE FALSE

    ใน MySQL หากต้องการคำสั่ง SELECT ที่ไม่คืนค่าแถวและคอลัมน์เลย (Empty Result Set with no columns) ให้ใช้ SELECT NULL กับเงื่อนไข WHERE FALSE รูปแบบคำสั่ง SELECT NULL FROM yourTableName WHERE FALSE; ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล: mysql> create table DemoTable1367 (Id int NOT NULL AUT

  11. สร้าง Stored Procedure ใน MySQL ที่รับ LIMIT เป็นพารามิเตอร์

    ใน MySQL สามารถสร้าง Stored Procedure ที่รับพารามิเตอร์ LIMIT เข้ามา เพื่อควบคุมจำนวนแถวที่ต้องการแสดงได้แบบ Dynamic ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล 6 แถว: mysql> create table DemoTable1368 (ClientId int, ClientName varchar(20)); mysql> insert into DemoTable1368 values(101,Adam),(1

  12. เพิ่มประสิทธิภาพคำสั่ง SELECT ใน MySQL ด้วย IN() แทน OR หลายเงื่อนไข

    เมื่อต้องการกรองข้อมูลหลายค่าในคอลัมน์เดียวกัน การใช้ IN() มีประสิทธิภาพดีกว่า OR หลายตัว เพราะ MySQL สามารถใช้ Index ได้อย่างมีประสิทธิภาพ (Range optimization / Index lookup) ตัวอย่างการใช้งาน สร้างตารางลูกค้า: mysql> create table DemoTable1618 (ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,

  13. แปลง Datetime เป็นชื่อเดือนและปีใน MySQL ด้วย DATE_FORMAT

    เมื่อต้องการแสดงเฉพาะชื่อเดือนและปีจากคอลัมน์ DATETIME/TIMESTAMP ให้ใช้ DATE_FORMAT() กับรูปแบบ %M %Y รูปแบบคำสั่ง SELECT DATE_FORMAT(yourColumnName, %M %Y) FROM yourTableName; ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล: mysql> create table DemoTable1619 (ArrivalTime datetime); mysql> insert

  14. แปลงค่าหนึ่งเป็น DECIMAL แล้วหารกับอีกค่าหนึ่งใน MySQL

    เมื่อทำการหารระหว่างคอลัมน์ Integer ใน MySQL ผลลัพธ์จะเป็น Integer (ตัดทศนิยม) หากต้องการผลลัพธ์ทศนิยมแม่นยำ ให้ CAST ค่าหนึ่งเป็น DECIMAL ก่อนหาร ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล: mysql> create table DemoTable1352 (Value1 int, Value2 int); mysql> insert into DemoTable1352 values(10

  15. แก้ไข Error 1136: Column count doesn't match value count at row 1 ใน MySQL

    Error 1136 เกิดขึ้นเมื่อจำนวนค่าในคำสั่ง INSERT ไม่ตรงกับจำนวนคอลัมน์ของตาราง โดยเฉพาะเมื่อมีคอลัมน์ AUTO_INCREMENT แต่ไม่ได้ระบุค่า หรือระบุคอลัมน์ไม่ครบ ตัวอย่าง Error mysql> insert into DemoTable1353 values(Chris,23); ERROR 1136 (21S01): Column count doesnt match value count at row 1 สาเหตุ:

  16. รวมข้อมูลหลายแถวเป็นแถวเดียวใน MySQL ด้วย GROUP_CONCAT

    ฟังก์ชัน GROUP_CONCAT() ใน MySQL รวมค่าจากหลายแถวเป็นสตริงเดียว คั่นด้วยตัวคั่นที่กำหนด (Default คือจุลภาค) เหมาะสำหรับสร้างรายการ, Path, หรือ CSV ตัวอย่างการใช้งาน สร้างตารางเก็บส่วนของ Path: mysql> create table DemoTable1355 (Location text); mysql> insert into DemoTable1355 values(E:),(AllP

  17. เปลี่ยนคอลัมน์ VARCHAR ให้รับค่า NULL ได้ใน MySQL ด้วย ALTER TABLE CHANGE

    ใน MySQL คอลัมน์ VARCHAR โดยค่าเริ่มต้นไม่ได้รับ NULL (Strict mode) หากต้องการอนุญาตให้เก็บ NULL ได้ ให้ใช้ ALTER TABLE ... CHANGE กำหนด NULL DEFAULT NULL รูปแบบคำสั่ง ALTER TABLE yourTableName CHANGE yourColumnName yourColumnName datatype NULL DEFAULT NULL; ตัวอย่างการใช้งาน สร้างตารางคอลัมน์ VAR

  18. เรียงลำดับ MySQL ให้ค่า NOT NULL อยู่ก่อน NULL ด้วย ORDER BY IS NULL

    ใน MySQL นิพจน์ column IS NULL คืนค่า 1 (TRUE) หากเป็น NULL, 0 (FALSE) หากไม่ใช่ NULL การใช้ใน ORDER BY จะทำให้ค่า NOT NULL (FALSE=0) อยู่ก่อน NULL (TRUE=1) เมื่อเรียง ASC ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล (มี NULL ในคอลัมน์ประเทศ): mysql> create table DemoTable1357 (StudentName varchar

  19. รวมยอดขายตามวันใน MySQL ใช้ GROUP BY DATE()

    เมื่อตารางเก็บวันที่-เวลา (DATETIME/TIMESTAMP) และต้องการรวมยอด (SUM) ตามวัน (ตัดเวลาออก) ให้ใช้ DATE() ใน GROUP BY ตัวอย่างการใช้งาน สร้างตารางขายสินค้า: mysql> create table DemoTable1358 (PurchaseDate datetime, ProductPrice int); mysql> insert into DemoTable1358 values(2019-09-20 12:34:00,4

  20. ใช้ Single Quote ใน CONCAT() ของ MySQL ไม่ใช้ Backtick

    ใน MySQL ฟังก์ชัน CONCAT() ใช้สำหรับต่อสตริง หากต้องการต่อสตริงคงที่ (Literal string) ต้องใช้ Single Quote ไม่ใช่ Backtick ` (ซึ่งใช้สำหรับ Identifier/ชื่อคอลัมน์/ตาราง) รูปแบบที่ถูกต้อง SELECT CONCAT(column1, , column2) FROM yourTable; ตัวอย่างการใช้งาน สร้างตารางและเพิ่มข้อมูล: mysql> creat

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