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

    MySQL Event คืองาน (task) ที่รันตามตารางเวลาที่กำหนดไว้ล่วงหน้า เรียกว่า scheduled event Event scheduler รันในพื้นหลังตรวจสอบ event ที่ถึงเวลา เรียกว่า temporal trigger เพราะถูกกระตุ้นโดยเวลา ไม่ใช่การเปลี่ยนแปลงตารางเหมือน trigger ทั่วไป ใช้สำหรับ backup, ลบข้อมูลเก่า, สรุปรายงาน ฯล฿ ไวยากรณ์: CRE

  2. วิธีเริ่ม MySQL Event Scheduler

    Event Scheduler เป็นกระบวนการพื้นหลังที่รอรัน event ตามตารางเวลา ต้องเปิดใช้งานก่อนสร้าง event: mysql> SET GLOBAL event_scheduler = ON; Query OK, 0 rows affected (0.07 sec) ตรวจสอบสถานะใน process list: mysql> SHOW PROCESSLIST\G *************************** 2. row *************************** Id

  3. วิธีค้นหาค่าที่มี backslash เช่น 'a\\b' จากคอลัมน์ MySQL ด้วย RLIKE

    ใช้ operator RLIKE (regex) ความสำคัญคือจำนวน backslash ในคิวรี่ ตัวอย่างตาราง backslashes: mysql> select * from backslashes; +------+-------+ | Id | Value | +------+-------+ | 1 | 200 | | 2 | 300 | | 4 | a\\b | | 3 | a\b | +------+-------+ 4 rows in set (0.10 sec) ค้นหา a\\b

  4. วิธีรวมค่าของหลายคอลัมน์ใน MySQL ด้วย CONCAT()

    ใช้ฟังก์ชันสตริง CONCAT() รวมสตริง 2 ตัวขึ้นไป ไวยากรณ์: CONCAT(String1,String2,...,StringN) ตัวอย่าง mysql> select CONCAT(Ram,is,a,good,boy) AS Remarks; +---------------+ | Remarks | +---------------+ | Ramisagoodboy | +---------------+ 1 row in set (0.00 sec) นำไปรวมคอลัมน์ตาราง Student

  5. วิธีสร้าง Trigger หลายตัวสำหรับ event และ timing เดียวกันใน MySQL 5.7.2+

    MySQL 5.7.2+ รองรับหลาย trigger ต่อ event/timing เดียวกัน ทำงานตามลำดับ ตัวอย่างสร้าง 2 trigger BEFORE UPDATE บนตาราง Student_detail: ตัวอย่าง ข้อมูลตาราง Student_detail: mysql> Select * from Student_detail; +-----------+-------------+------------+ | Studentid | StudentName | address | +-----

  6. ลำดับการเรียก Trigger หลายตัวที่มี event และ timing เหมือนกันใน MySQL

    ค่าเริ่มต้น MySQL เรียก trigger ตามลำดับที่สร้าง (creation order) แต่สามารถเปลี่ยนได้ด้วย: 1. FOLLOWS option trigger ใหม่ทำงาน **หลัง** trigger ที่ระบุ FOR EACH ROW FOLLOWS trigger_name 2. PRECEDES option trigger ใหม่ทำงาน **ก่อน** trigger ที่ระบุ FOR EACH ROW PRECEDES trigger_name

  7. วิธี Escape ตัวอักษรพิเศษในคำสั่ง MySQL

    เมื่อต้องรวมตัวอักษรพิเศษในสตริง ต้อง escape ด้วย \ (backslash) กฎพื้นฐาน: Escape backslash เอง: \\ แทน \ ตัวอย่าง mysql> Select A\\B; +-----+ | A\B | +-----+ | A\B | +-----+ 1 row in set (0.00 sec) เขียน A\\B MySQL จะเก็บเป็นสตริง A\B

  8. วิธีใส่ตัวอักษรเป็นเลขฐานสิบหก (HEX) ในคำสั่ง MySQL

    ระบุตัวอักษรเป็น HEX เหมือนตัวเลข แต่ MySQL แปลงเป็นสตริงตัวอักษร: 1. คำนำหน้า X mysql> Select X5152545678; +---------------+ | X5152545678 | +---------------+ | QRTVx | +---------------+ 1 row in set (0.00 sec) 2. คำนำหน้า 0x mysql> Select 0x5152545678; +--------------+ | 0x515254567

  9. วิธีใส่ค่าตัวเลขเป็นเลขฐานสิบหก (HEX) ในคำสั่ง MySQL

    มี 2 วิธีระบุเลขฐานสิบหก: 1. คำนำหน้า X เขียนในเครื่องหมายคำพูดเดี่ยว นำหน้า X MySQL แปลงเป็นตัวเลข ตัวอย่าง mysql> Select X5152545678+ 10; +-------------------+ | X5152545678+ 10 | +-------------------+ | 349273609858 | +-------------------+ 1 row in set (0.00 sec) 2. คำนำหน้า 0x เขียนโดยไ

  10. Trigger ทำงานหลายคำสั่งได้อย่างไร (BEGIN...END)

    Trigger รันหลายคำสั่งได้โดยห่อหุ้มใน BEGIN...END ภายในบล็อกนี้ใช้ syntax ของ stored routines ได้ เช่นเงื่อนไข (IF) และลูป ตัวอย่าง BEFORE INSERT trigger มี IF...ELSEIF: ตัวอย่าง mysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN S

  11. วิธีดูลำดับการทำงานของ Trigger หลายตัวที่มี event และ timing เหมือนกัน

    คิวรี่จาก INFORMATION_SCHEMA.triggers เรียงตามตาราง timing event: mysql> SELECT trigger_name,action_order FROM INFORMATION_SCHEMA.triggers WHERE TRIGGER_SCHEMA = query ORDER BY event_object_table,action_timing,event_manipulation; +------------------------------+--------------+ | trigger_name

  12. วิธีใส่ตัวอักษรเป็นเลขฐานสอง (BINARY) ในคำสั่ง MySQL

    ระบุตัวอักษรเป็น binary เหมือนตัวเลข แต่ MySQL แปลงเป็นสตริงตัวอักษร: 1. คำนำหน้า B mysql> Select B01000001; +-------------+ | B01000001 | +-------------+ | A | +-------------+ 1 row in set (0.00 sec) 2. คำนำหน้า 0b mysql> Select 0b01000001; +------------+ | 0b01000001 | +----------

  13. วิธีใส่ค่าตัวเลขเป็นเลขฐานสอง (BINARY) ในคำสั่ง MySQL

    มี 2 วิธีระบุตัวเลขฐานสอง: 1. คำนำหน้า B เขียนเลขฐานสองในเครื่องหมายคำพูดเดี่ยว นำหน้าด้วย B MySQL จะแปลงเป็นตัวเลขตามบริบทนิพจน์ ตัวอย่าง mysql> Select B1110+0; +-----------+ | B1110+0 | +-----------+ | 14 | +-----------+ 1 row in set (0.00 sec) 2. คำนำหน้า 0b เขียนเลขฐานสองโดยไม่ต้องมีเ

  14. การใส่ค่า BOOLEAN ในคำสั่ง MySQL

    MySQL ไม่มีชนิดข้อมูล BOOLEAN แยกต่างหาก ใช้ TRUE/true แทนจริง (1) และ FALSE/false แทนเท็จ (0) ตัวอย่าง: mysql> Select TRUE,FALSE; +------+-------+ | TRUE | FALSE | +------+-------+ | 1 | 0 | +------+-------+ 1 row in set (0.00 sec) mysql> Select true,false; +------+-------+ | TRUE | F

  15. การใช้ DISTINCT หลายคอลัมน์ใน MySQL

    ใช้ DISTINCT บนหลายคอลัมน์ ความไม่ซ้ำจะพิจารณาจาก **ชุดค่ารวม** ของคอลัมน์เหล่านั้น ตัวอย่างตาราง testing 10 แถว: mysql> select * from testing; +------+---------+---------+ | id | fname | Lname | +------+---------+---------+ | 200 | Raman | Kumar | | 201 | Sahil | Bhalla | | 202

  16. Trigger จะถูกลบอัตโนมัติเมื่อ DROP ตารางที่ผูกอยู่หรือไม่

    ใช่ Trigger จะถูกลบ (destroyed) อัตโนมัติ หากตารางที่ผูกอยู่ถูกลบ (DROP TABLE) เรียกว่า implicit destroy ตัวอย่าง: ตัวอย่าง มี trigger trigger_before_delete_sample ผูกตาราง Sample แสดง trigger ทั้งหมด: mysql> Show Triggers\G ... (แสดง 2 trigger: trigger_before_delete_sample บน sample, before_ins

  17. GROUP BY หลายคอลัมน์ ทำงานเหมือน DISTINCT หลายคอลัมน์ใน MySQL ได้ไหม

    ได้ ใช้ GROUP BY หลายคอลัมน์ได้เหมือน DISTINCT หลายคอลัมน์ ตัวอย่างตาราง testing: mysql> Select * from testing; +------+---------+---------+ | id | fname | Lname | +------+---------+---------+ | 200 | Raman | Kumar | | 201 | Sahil | Bhalla | | 202 | Gaurav | NULL | | 203 | A

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:185/229  20-คอมพิวเตอร์/Page Goto:1 179 180 181 182 183 184 185 186 187 188 189 190 191