Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. เรียก Stored Procedure ภายใน Stored Procedure พร้อมเงื่อนไข IF ใน MySQL

    สามารถเรียก Stored Procedure อื่นภายใน Stored Procedure ได้ โดยใช้คำสั่ง CALL ร่วมกับเงื่อนไข IF-ELSE รูปแบบ syntax ดังนี้: 100 THEN CALL yourProcedureName1(); ELSE CALL yourProcedureName2(); END IF; ตัวอย่างการใช้งานจริง 1. สร้าง Stored Procedure แรก mysql> delimiter // mysql> crea

  2. ใช้ MySQL RegExp ดึงข้อมูลที่มีจำนวนคำเฉพาะ

    สามารถใช้ Regular Expression (RegExp) ใน MySQL เพื่อกรองข้อมูลที่มีจำนวนคำเท่ากับที่ต้องการได้ โดยใช้รูปแบบ syntax ดังนี้: select * from yourTableName where yourColumnName regexp ^\w+(\s+\w+){1}$; คำสั่งด้านบนจะทำงานเมื่อคำแยกด้วยช่องว่าง (space) และต้องการค้นหาข้อมูลที่มี 2 คำพอดี สร้างตารางและเพิ

  3. สามารถใช้ "rank" เป็นชื่อคอลัมน์ใน MySQL 8 ได้หรือไม่?

    คำว่า rank เป็นคำสงวน (reserved word) ของ MySQL ที่ถูกกำหนดตั้งแต่เวอร์ชัน 8.0.2 ดังนั้นจึงไม่สามารถใช้ rank เป็นชื่อคอลัมน์ได้โดยตรง คุณจำเป็นต้องใช้แบ็กทิก (`) ครอบรอบชื่อคอลัมน์ rank เพื่อหลีกเลี่ยงข้อผิดพลาด ตรวจสอบเวอร์ชัน MySQL ก่อนอื่นลองตรวจสอบเวอร์ชัน MySQL ที่กำลังใช้งานอยู่ ในตัวอย่างนี้

  4. แก้ ERROR 1093: You can't specify target table for update in FROM clause เมื่อ DELETE ค่าต่ำสุด

    Error 1093 เกิดเมื่อพยายาม DELETE จากตารางเดียวกับที่ใช้ใน Subquery ตรงทางแก้คือ wrap Subquery อีกชั้นหนึ่ง (Derived Table) ตัวอย่างปัญหา สร้างตารางคะแนน: mysql> create table DemoTable1597 ( -> Marks int -> ); Query OK, 0 rows affected (0.69 sec) เพิ่มข้อมูล: mysql> insert into

  5. สุ่มข้อมูลจากตาราง MySQL ด้วย ORDER BY RAND() LIMIT 1

    วิธีง่ายที่สุดในการสุ่ม 1 แถวจากตาราง คือ ใช้ ORDER BY RAND() แล้วจำกัดด้วย LIMIT 1 ตัวอย่างการใช้งาน สร้างตารางนักเรียนมี Primary Key Auto Increment: mysql> create table DemoTable1581 ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20) -> ); Q

  6. Query MySQL ดึงข้อมูลก่อน 3 วันล่าสุด (Relative Date)

    ใช้ DATE_SUB() และ NOW() หรือวันที่อ้างอิง เพื่อคำนวณช่วงวันที่แบบ Relative ตัวอย่างสถานการณ์ สมมติวันนี้คือ 2019-10-20 ต้องการข้อมูลที่โพสต์ก่อน 3 วันล่าสุด (คือ ก่อน 2019-10-17) สร้างตารางและข้อมูลทดสอบ mysql> create table DemoTable1582 ( -> PostedDate datetime -> ); Query OK, 0

  7. ลบข้อมูลบางส่วนในฟิลด์ MySQL ด้วย REPLACE()

    ใช้คำสั่ง UPDATE ร่วมกับฟังก์ชัน REPLACE() เพื่อลบหรือแทนที่ข้อความบางส่วนในคอลัมน์ TEXT/VARCHAR ตัวอย่างการใช้งาน สร้างตารางเก็บข้อมูลเกม (รูปแบบ XML-like): mysql> create table DemoTable1583 ( -> GameDetails text -> ); Query OK, 0 rows affected (1.38 sec) เพิ่มข้อมูลทดสอบ: mysql&

  8. วิธี INSERT วันที่อัตโนมัติใน MySQL ด้วย TRIGGER

    ใช้ BEFORE INSERT TRIGGER ตั้งค่าให้ฟิลด์วันที่รับค่าวันที่ปัจจุบัน (CURDATE()) อัตโนมัติทุกครั้งที่มีการเพิ่มข้อมูล ตัวอย่างการใช้งาน สร้างตารางมีฟิลด์ DueDate: mysql> create table DemoTable1584 ( -> DueDate datetime -> ); Query OK, 0 rows affected (1.79 sec) สร้าง Trigger ก่อน I

  9. เกิดอะไรขึ้นเมื่อตั้ง UNIQUE แล้ว INSERT ข้อมูลซ้ำหลายแถวพร้อมกัน

    ถ้าตั้งเงื่อนไข UNIQUE แล้วพยายาม INSERT หลายแถวพร้อมกันซึ่งมีค่าซ้ำในคอลัมน์ UNIQUE จะเกิด Error และ ไม่มีแถวใดถูกเพิ่มเลย (All-or-nothing) ตัวอย่างการใช้งาน สร้างตารางมี UNIQUE constraint: mysql> create table DemoTable1585 ( -> StudentId int, -> StudentMarks int, -> UNIQUE

  10. แสดงข้อมูลโครงสร้างตารางใน MySQL รวม TYPE, KEY และคอลัมน์ต่างๆ

    ใช้คำสั่ง SHOW COLUMNS เพื่อดูรายละเอียดฟิลด์ทั้งหมดของตาราง รวมถึงชนิดข้อมูล Key และค่าเริ่มต้น รูปแบบคำสั่ง show columns from yourTableName; ตัวอย่างการใช้งาน สร้างตารางพนักงาน: mysql> create table DemoTable1586 ( -> EmployeeId int, -> EmployeeFirstName varchar(20), -> Em

  11. เลือกค่าสูงสุดของผลรวมสองคอลัมน์ใน MySQL

    เพื่อหาแถวที่มีผลรวมของสองคอลัมน์มากที่สุด ใช้ฟังก์ชัน MAX() ร่วมกับ Subquery ตัวอย่างการใช้งาน สร้างตารางทดสอบ: mysql> create table DemoTable1587 ( -> Value1 int, -> Value2 int -> ); Query OK, 0 rows affected (0.59 sec) เพิ่มข้อมูล: mysql> insert into DemoTable1587 valu

  12. การเรียกใช้ฟังก์ชันรวมใน ORDER BY ด้วย MySQL

    สามารถใช้ฟังก์ชัน GROUP_CONCAT() ร่วมกับ ORDER BY เพื่อจัดเรียงข้อมูลก่อนรวมเป็นสตริงเดียว ตัวอย่างการใช้งาน สร้างตารางนักเรียน: mysql> create table DemoTable1588 ( -> StudentId int, -> StudentFirstName varchar(20), -> StudentMarks int -> ); Query OK, 0 rows affected

  13. วิธีดูเวลาการรันคำสั่งใน MySQL Command Line

    ใน MySQL Command Line ทุกคำสั่งที่รันจะแสดงเวลาที่ใช้ในการประมวลผลโดยอัตโนมัติ ทำให้สามารถติดตามประสิทธิภาพคิวรีได้ง่าย ตัวอย่างการใช้งาน เริ่มต้นด้วยการสร้างตารางทดสอบ: mysql> create table DemoTable1589 ( -> EmployeeId int, -> EmployeeName varchar(20) -> ); Query OK, 0 rows

  14. สร้าง Database ชื่อตัวเลขใน MySQL ต้องใช้ Backticks

    ปัญหา ชื่อ Database ที่เป็นตัวเลขอย่างเดียว (เช่น 1233) เป็น Invalid Identifier ใน MySQL จะเกิด Syntax Error Error ตัวอย่าง CREATE DATABASE 1233; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use

  15. เชื่อมต่อ MySQL จาก Java: JDBC URL และ Port 3306

    พื้นฐานการเชื่อมต่อ MySQL จาก Java ใช้ JDBC (Java Database Connectivity) Driver: mysql-connector-j (ใหม่) หรือ mysql-connector-java (เก่า) JDBC URL Format jdbc:mysql://[host][:port]/[database][?properties] องค์ประกอบสำคัญ Host: localhost / 127.0.0.1 / IP Address / Hostname Port: 3306 (De

  16. ใช้ IF() ใน SELECT Query ของ MySQL สำหรับเงื่อนไข 2 ทางเลือก

    ฟังก์ชัน IF() ใน MySQL IF(condition, true_value, false_value) - Control Flow Function สำหรับเงื่อนไขแบบ Binary (True/False) ใช้ใน SELECT, WHERE, ORDER BY ได้ รูปแบบคำสั่ง SELECT column, IF(condition, True Result, False Result) FROM table; ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affec

  17. ควบคุมแถวที่เลือกใน GROUP BY ด้วย Subquery ใน MySQL

    สถานการณ์ มีข้อมูลนักเรียนหลายคนมีคะแนนเท่ากัน (StudentMarks = 79) ต้องการเลือกแค่ 1 คนต่อ 1 คะแนน (เช่น คนที่ Id น้อยที่สุด) วิธีแก้: Subquery หา Min Id ต่อ Group SELECT * FROM DemoTable1572 WHERE StudentId IN (SELECT MIN(StudentId) FROM DemoTable1572 GROUP BY StudentMarks); ตัวอย่างการใช้งาน 1

  18. ใช้ REGEXP ใน WHERE Clause ค้นหาข้อมูลด้วย Regular Expression ใน MySQL

    สถานการณ์ คอลัมน์ StudentCode เก็บรหัสนักศึกษารูปแบบต่างๆ ต้องการค้นหาที่มี Pattern: ตัวอักษรตามด้วย Underscore และตัวเลข (เช่น 909_Sam, 3_Carol_455) วิธีแก้: ใช้ REGEXP WHERE column REGEXP pattern ใช้ POSIX Regular Expression ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.63 se

  19. แสดงรายชื่อตารางใน Database ด้วย SHOW TABLES ใน MySQL

    คำสั่ง SHOW TABLES แสดงรายการตารางทั้งหมดใน Database ที่กำหนดหรือ Database ปัจจุบัน รูปแบบคำสั่ง SHOW TABLES [FROM db_name] [LIKE pattern | WHERE expr]; ตัวอย่างการใช้งาน แสดงตารางใน Database hb_student_tracker SHOW TABLES FROM hb_student_tracker; ผลลัพธ์ (44 ตาราง): +---------------------------

  20. แทนที่อักขระพิเศษในคอลัมน์ด้วย REPLACE() ใน MySQL

    สถานการณ์ คอลัมน์ StudentCode มีค่า ______ ต้องการแทนที่เป็น Mike_007 วิธีแก้: ใช้ REPLACE() ใน UPDATE REPLACE(str, from_str, to_str) แทนที่ทุกครั้งที่พบ from_str ด้วย to_str ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.59 sec) 2. เพิ่มข้อมูล INSERT INTO DemoTable1574 VALUES

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:32/229  20-คอมพิวเตอร์/Page Goto:1 26 27 28 29 30 31 32 33 34 35 36 37 38