Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. คิวรี่ MySQL หาค่าเฉลี่ยของ 3 ค่าแรกจากคอลัมน์ที่มี 5 ค่า

    คำอธิบาย บทความนี้แสดงวิธีการคำนวณค่าเฉลี่ยของเฉพาะ 3 เรคคอร์ดแรกในคอลัมน์ โดยใช้ Subquery ร่วมกับ LIMIT 3 ใน MySQL ขั้นตอนการสร้างตารางและข้อมูลตัวอย่าง mysql> create table DemoTable ( Score int ); Query OK, 0 rows affected (0.62 sec) การเพิ่มข้อมูล mysql> insert into DemoTable value

  2. จำเป็นต้องตั้ง PRIMARY KEY สำหรับ AUTO_INCREMENT ใน MySQL หรือไม่?

    คำตอบสั้น: ใช่ ควรใช้ AUTO_INCREMENT ร่วมกับ PRIMARY KEY ใน MySQL คอลัมน์ที่ตั้งค่า AUTO_INCREMENT ต้องเป็น Primary Key หรือมี Unique Index อยู่แล้ว มิฉะนั้นจะเกิดข้อผิดพลาด นี่เป็นข้อกำหนดของระบบเพื่อให้แน่ใจว่าค่าที่สร้างขึ้นมานั้นไม่ซ้ำกันและสามารถระบุแถว (row) ได้อย่างถูกต้อง ตัวอย่างการสร้างตา

  3. เลือกแถวที่วันที่อยู่ระหว่าง 90 วันที่แล้วจนถึงปัจจุบันใน MySQL

    ภาพรวม ใช้ INTERVAL ร่วมกับ DATE_SUB() หรือ NOW() - INTERVAL เพื่อคำนวณช่วงวันที่แบบ Relative ไวยากรณ์ = DATE_SUB(NOW(), INTERVAL 90 DAY) ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล CREATE TABLE DemoTable (DueDate DATE); INSERT INTO DemoTable VALUES (2019-07-10); INSERT INTO DemoTable VALUES (2019-09

  4. จัดโครงสร้างข้อมูลใน MySQL ให้ดึงข้อมูลง่ายด้วย SET และ FIND_IN_SET

    ภาพรวม Data Type SET ใน MySQL เก็บค่าจากชุดที่กำหนดไว้ล่วงหน้า (สูงสุด 64 ค่า) ใช้ร่วม FIND_IN_SET() เพื่อค้นหาได้ง่าย ไวยากรณ์ SET SET(value1, value2, value3, ...) -- สูงสุด 64 ค่า, เก็บเป็น Bitmap (Bitmask) ภายใน ตัวอย่างสมบูรณ์ 1. สร้างตาราง SET CREATE TABLE DemoTable ( CountryName SET(US,

  5. Insert หลายแถวพร้อมกันด้วยคำสั่ง INSERT เดียวใน MySQL

    ภาพรวม MySQL รองรับการ Multi-row INSERT ในคำสั่งเดียว โดยระบุหลายชุดค่า คั่นด้วยจุลภาค เร็วกว่า INSERT หลายคำสั่งมาก ไวยากรณ์ INSERT INTO table_name (col1, col2, ...) VALUES (val1_1, val1_2, ...), (val2_1, val2_2, ...), (val3_1, val3_2, ...), ...; ตัวอย่างสมบูรณ์ 1. สร้างตาราง CR

  6. ดึงคอลัมน์เดียวตามเงื่อนไข Boolean Field ใน MySQL

    ภาพรวม ใน MySQL BOOLEAN เป็น Alias ของ TINYINT(1) ค่า TRUE = 1, FALSE = 0 สามารถใช้ใน WHERE ได้โดยตรง ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล CREATE TABLE DemoTable ( EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeName VARCHAR(40), IsMarried BOOLEAN ); INSERT INTO DemoTabl

  7. จับคู่ค่ากับรายการคั่นจุลภาค (Comma-separated) ใน MySQL ด้วย FIND_IN_SET()

    ปัญหา คอลัมน์เก็บค่าหลายค่าคั่นด้วยจุลภาค (เช่น 23,45,78,56) ไม่สามารถใช้ IN() ได้โดยตรง เพราะ IN() คาดหวังรายการค่า ไม่ใช่สตริงเดียว วิธีแก้: ใช้ FIND_IN_SET() FIND_IN_SET(needle, haystack) -- คืนค่า Position (1-based) ถ้าพบ, 0 ถ้าไม่พบ ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล CREATE TABLE DemoTab

  8. อัปเดตค่าทั้งตารางเป็น 2 ค่า ตามเงื่อนไขด้วย IF() ใน MySQL

    ภาพรวม ใช้ IF() ในคำสั่ง UPDATE เพื่อตั้งค่าคอลัมน์เป็น 2 ค่าที่แตกต่างกัน ตามเงื่อนไข ไวยากรณ์ UPDATE table_name SET column_name = IF(condition, value_if_true, value_if_false); ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล CREATE TABLE DemoTable (Value INT); INSERT INTO DemoTable VALUES (10), (20), (1

  9. ตรวจสอบตัวแปร Local Variable ว่าเป็น NULL ใน MySQL Stored Procedure ด้วย COALESCE()

    ภาพรวม ใน Stored Procedure ตัวแปร Local (DECLARE) ที่ไม่ได้กำหนดค่า จะมีค่าเป็น NULL ใช้ COALESCE() เพื่อตรวจสอบและแทนค่า Default ฟังก์ชัน COALESCE() COALESCE(value1, value2, ..., default_value) -- คืนค่าแรกที่ไม่ใช่ NULL ตัวอย่าง Stored Procedure 1. สร้าง Procedure DELIMITER // CREATE PROCEDURE

  10. MAX(DISTINCT ...) vs MAX() ใน MySQL ให้ผลลัพธ์เหมือนกันเสมอ

    สรุปสั้น: ผลลัพธ์เหมือนกันทุกกรณี MySQL ภายในแปลง MAX(column) เป็น MAX(DISTINCT column) อัตโนมัติ เพราะค่าสูงสุด (Maximum) ไม่ได้รับผลกระทบจากค่าซ้ำ ไวยากรณ์ -- ทั้งสองให้ผลลัพธ์เหมือนกัน SELECT MAX(DISTINCT column_name) FROM table_name; SELECT MAX(column_name) FROM table_name; ตัวอย่างยืนยัน 1.

  11. อัปเดตเฉพาะเซลล์ว่าง (Empty String) ให้เป็น NULL ด้วย NULLIF() ใน MySQL

    ปัญหา การ UPDATE table SET col = NULL WHERE col = ทำงานได้ แต่ NULLIF() ทำให้สั้นกว่าและอ่านง่ายกว่า ฟังก์ชัน NULLIF() NULLIF(expr1, expr2) -- คืนค่า NULL ถ้า expr1 = expr2 -- คืนค่า expr1 ถ้าไม่เท่ากัน ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล (มี Empty String) CREATE TABLE DemoTable (Name VARCHAR

  12. แสดงข้อความที่มี Single Quote เป็นค่าคอลัมน์ใน MySQL

    ปัญหา ใน SQL String literal ใช้ Single Quote () ปิดเปิด หากข้อความมี Single Quote อยู่ภายใน (เช่น Youve) จะทำให้ Syntax Error วิธีแก้: ใช้ Double Quote ปิดเปิด String MySQL รองรับ Double Quote () เป็น String Delimiter (ถ้าไม่ตั้งค่า ANSI_QUOTES SQL Mode) ตัวอย่างสมบูรณ์ 1. สร้างตาราง CREATE TABLE

  13. สุ่มเลือกแถวข้อมูล (Random Row) ที่มีค่าซ้ำใน MySQL ด้วย RAND() และ LIMIT

    ภาพรวม เมื่อต้องการสุ่มเลือก 1 แถวจากกลุ่มข้อมูลที่มีค่าซ้ำ (Duplicate) ใช้ ORDER BY RAND() ร่วมกับ LIMIT 1 และกรองด้วย WHERE ก่อน ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล (มีชื่อ Bob ซ้ำ 3 ครั้ง) CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20) ); INSER

  14. ใช้ LIKE CONCAT() ใน Query MySQL ได้หรือไม่?

    คำตอบ: ใช้ได้ สามารถรวม LIKE กับ CONCAT() เพื่อสร้าง Pattern แบบ Dynamic ได้ ไวยากรณ์ WHERE column LIKE CONCAT(%, search_term, %) ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล CREATE TABLE DemoTable (Name VARCHAR(50)); INSERT INTO DemoTable VALUES (John); INSERT INTO DemoTable VALUES (Adam); INSERT INT

  15. ค้นหา First Name และ Last Name พร้อมกันด้วย LIKE และ AND ใน MySQL

    ภาพรวม การค้นหาข้อมูลที่ต้องตรงเงื่อนไขหลายคอลัมน์พร้อมกัน ใช้ LIKE ร่วมกับ AND ในเงื่อนไข WHERE ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล CREATE TABLE DemoTable ( EmployeeFirstName VARCHAR(50), EmployeeLastName VARCHAR(50) ); INSERT INTO DemoTable VALUES (John, Smith); INSERT INTO DemoTable

  16. สลับค่าระหว่างสองคอลัมน์ใน MySQL ด้วย User Variable

    เทคนิคการสลับค่า (Swap Values) ใน MySQL สลับค่าระหว่าง 2 คอลัมน์ในแถวเดียวได้โดยใช้ User-Defined Variable (@variable) เป็นตัวเก็บชั่วคราว ไวยากรณ์ UPDATE table_name SET col1 = (@temp := col1), col1 = col2, col2 = @temp WHERE condition; ตัวอย่างสมบูรณ์ 1. สร้างตารางและข้อมูล CREATE TA

  17. Query ความยาวข้อมูลในคอลัมน์ BLOB ด้วย LENGTH() ใน MySQL

    ภาพรวม Data Type BLOB (Binary Large Object) ใช้เก็บข้อมูลไบนารี ขนาดใหญ่ การหาความยาว (จำนวน Byte) ใช้ฟังก์ชัน LENGTH() ไม่ใช่ CHAR_LENGTH() (นับตัวอักษร) ตัวอย่างสมบูรณ์ 1. สร้างตาราง BLOB CREATE TABLE DemoTable (Title BLOB); 2. เพิ่มข้อมูล (ข้อความปกติ แต่เก็บใน BLOB) INSERT INTO DemoTable VALU

  18. ค้นหาข้อมูลใน MySQL ตามส่วนของ Timestamp (ปี, เดือน, วัน)

    ภาพรวม MySQL มีฟังก์ชันสำหรับดึงส่วนต่างๆ ของ DATE/TIMESTAMP เช่น YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND() ใช้ใน WHERE เพื่อกรองข้อมูลตามส่วนที่ต้องการ ฟังก์ชันสำคัญ ฟังก์ชันคืนค่าตัวอย่าง YEAR(date)ปี (4 หลัก)2019 MONTH(date)เดือน (1-12)7 DAY(date)วัน (1-31)15 HOUR(time)ชั่วโมง (0-23)14

  19. วิธีเร็วที่สุดในการหาค่าสูงสุดของคอลัมน์ใน MySQL

    เปรียบเทียบ 2 วิธี วิธีQueryหลักการประสิทธิภาพ 1. MAX()SELECT MAX(col) FROM table;ใช้ Index/Statistic โดยตรง⚡ เร็วที่สุด 2. ORDER BY ... LIMIT 1SELECT col FROM table ORDER BY col DESC LIMIT 1;Sort ทั้งตาราง แล้ว取 LIMIT 1🐢 ช้ากว่า ทำไม MAX() เร็วกว่า? MAX() - Optimizer รู้ว่าแค่หาค่าสูงสุด ใช้

  20. แปลงสตริง MD5 ที่จัดเก็บเป็นค่าทศนิยม (Decimal) ใน MySQL

    แนวคิด MD5 เป็นค่า Hexadecimal (ฐาน 16) 32 ตัวอักษร (128 bits) เพื่อแปลงเป็น Decimal (ฐาน 10) ต้อง: 1. แยกเป็น 2 ส่วน ครึ่งละ 16 ตัวอักษร (64 bits) 2. แปลงแต่ละส่วนจาก Hex เป็น Decimal ด้วย CONV() 3. รวมกันด้วยการคูณส่วนแรกด้วย 264 แล้วบวกส่วนที่สอง ไวยากรณ์หลัก CONV(string, from_base, to_base) --

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:58/229  20-คอมพิวเตอร์/Page Goto:1 52 53 54 55 56 57 58 59 60 61 62 63 64