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

    สร้าง trigger ใหม่ด้วยคำสั่ง CREATE TRIGGER ไวยากรณ์: CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN ... END; รายละเอียด: Trigger_name — ชื่อ trigger วางหลัง CREATE TRIGGER แนะนำรูปแบบ [trigger_time]_[table_name]_[trigger_event] เช่น before_student_update T

  2. วิธียกเลิกคำสั่ง MySQL ระหว่างการประมวลผลด้วย \c

    ใช้คำสั่ง \c (clear) เพื่อยกเลิกคำสั่งที่กำลังพิมพ์อยู่ระหว่างทาง ตัวอย่าง: mysql> Select * -> from\c mysql> หลังพิมพ์ \c MySQL จะยกเลิกคำสั่งปัจจุบันและกลับสู่พรอมต์รอคำสั่งใหม่

  3. ข้อดี ข้อเสีย และข้อจำกัดของการใช้ MySQL Trigger

    ควรเข้าใจข้อดี ข้อเสีย และข้อจำกัดของ Trigger เพื่อใช้งานได้อย่างมีประสิทธิภาพ ข้อดี (Advantages) ความสมบูรณ์ของข้อมูล (Data Integrity) — Trigger ช่วยตรวจสอบความถูกต้องของข้อมูลในตาราง เป็นทางเลือกอื่นนอกเหนือจาก constraint จับข้อผิดพลาดทางธุรกิจ (Error Catching) — สามารถจับข้อผิดพลาดในชั้นฐานข้อม

  4. การใช้คำสั่ง LIMIT ใน MySQL เพื่อจำกัดจำนวนแถวผลลัพธ์

    LIMIT ใช้กำหนดจำนวนแถวสูงสุดที่ต้องการให้คืนในผลลัพธ์ ช่วยจำกัดขนาดชุดผลลัพธ์ ตัวอย่าง: ตัวอย่าง mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar

  5. ความหมายของ 'empty set' ในชุดผลลัพธ์ MySQL

    หากผลลัพธ์แสดง Empty set หมายถึงคำสั่งรันสำเร็จ ไม่มีข้อผิดพลาด แต่ไม่มีแถวข้อมูลที่ตรงตามเงื่อนไข ตัวอย่าง: mysql> Select * from Student_info WHERE Name = ABCD; Empty set (0.00 sec) แสดงว่าโครงสร้างคำสั่งถูกต้อง แต่ตารางไม่มีข้อมูลชื่อ ABCD

  6. เกิดอะไรกับธุรกรรมปัจจุบัน ถ้ารันคำสั่ง DDL กลางคืนธุรกรรม

    ธุรกรรมปัจจุบันจะถูก COMMIT และจบลง ทันที เมื่อมีการรันคำสั่ง DDL (CREATE, DROP, ALTER ตาราง ฐานข้อมูล หรือ stored routines) กลางคืนธุรกรรม การเปลี่ยนแปลงทั้งหมดจะกลายเป็นถาวรและ ไม่สามารถ ROLLBACK ได้ ตัวอย่าง mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO

  7. เกิดอะไรกับธุรกรรมปัจจุบัน ถ้า START TRANSACTION รันระหว่างธุรกรรมอยู่

    ธุรกรรมปัจจุบันจะถูก COMMIT และจบลง ทันที หากรัน START TRANSACTION กลางคืนธุรกรรมที่กำลังดำเนินอยู่ การเปลี่ยนแปลงทั้งหมดในธุรกรรมเดิมจะกลายเป็นถาวร (implicit commit) ตัวอย่าง ตาราง marks มีข้อมูล 3 แถว เริ่มธุรกรรม INSERT 2 แถว แล้วรัน START TRANSACTION อีกครั้ง: mysql> select * from marks; +--

  8. ทำไม MySQL ไม่ให้ใช้ตัวดำเนินการคำนวณ (=, <, <>) กับ NULL ได้

    เพราะการเปรียบเทียบกับ NULL ด้วยตัวดำเนินการเหล่านั้นจะไม่ให้ผลลัพธ์ที่มีความหมาย ผลลัพธ์จะเป็น NULL เสมอ ตัวอย่าง: mysql> Select 10 = NULL, 10< NULL, 10<>NULL; +-----------+----------+----------+ | 10 = NULL | 10< NULL | 10<>NULL | +-----------+----------+----------+ | NU

  9. ประโยชน์ของ IS NULL และ IS NOT NULL ใน MySQL

    เมื่อใช้ NULL กับตัวดำเนินการเปรียบเทียบ (เช่น =, <, <>) จะไม่ได้ผลลัพธ์ที่มีความหมาย ใช้ IS NULL และ IS NOT NULL แทน เพื่อให้ได้ผลลัพธ์เป็น Boolean (0 = FALSE, 1 = TRUE) ตัวอย่าง mysql> Select 10 IS NULL; +------------+ | 10 IS NULL | +------------+ | 0 | +------------+ 1 row

  10. เหตุผลที่สามารถ INSERT 0 หรือสตริงว่างลงคอลัมน์ NOT NULL ใน MySQL ได้

    การประกาศคอลัมน์ NOT NULL หมายถึงคอลัมน์ไม่ยอมรับค่า NULL แต่ 0 (ศูนย์) และสตริงว่าง () เป็นค่าที่แท้จริง ไม่ใช่ NULL จึง INSERT ได้ ตัวอย่างเปรียบเทียบ: mysql> Select 0 IS NULL, 0 IS NOT NULL; +-----------+---------------+ | 0 IS NULL | 0 IS NOT NULL | +-----------+---------------+ | 0

  11. ทำไม INSERT สตริงว่างลงคอลัมน์ NOT NULL ใน MySQL จึงแสดงเป็น 0 ไม่ใช่สตริงว่าง

    เพราะการ INSERT สตริงว่างหมายถึงเราให้ค่าบางค่า (ไม่ใช่ NULL) สตริงว่างจะถูกแมปเป็นศูนย์ในรูปแบบจำนวนเต็ม (INT 0) กล่าวคือ เราให้ค่าที่มีการแทนค่าเป็นจำนวนเต็ม 0 ตัวอย่าง: mysql> create table test(id int NOT NULL, Name Varchar(10)); Query OK, 0 rows affected (0.19 sec) mysql> Insert into test

  12. วิธีตรวจสอบระดับการแยกธุรกรรม (Transaction Isolation Level) ปัจจุบันใน MySQL

    รันคำสั่ง SELECT @@TX_ISOLATION เพื่อดูระดับการแยกธุรกรรมปัจจุบัน ตัวอย่าง mysql> SELECT @@TX_ISOLATION; +-----------------+ | @@TX_ISOLATION | +-----------------+ | REPEATABLE-READ | +-----------------+ 1 row in set (0.00 sec) ค่าเริ่มต้นของ MySQL คือ REPEATABLE-READ

  13. บทบาทของชนิดข้อมูลเมื่อ INSERT สตริงว่างลงคอลัมน์ NOT NULL ใน MySQL

    การแสดงผลของสตริงว่าง (empty string) ในชุดผลลัพธ์ ขึ้นอยู่กับชนิดข้อมูลของคอลัมน์ เมื่อ INSERT สตริงว่างลงคอลัมน์ที่ประกาศ NOT NULL เรากำลังให้ค่าที่มีการแทนค่าเป็นจำนวนเต็ม 0 (INT 0) หากคอลัมน์เป็นชนิด INTEGER MySQL จะแสดง 0 ในผลลัพธ์ เพราะสตริงว่างถูกแมปเป็นศูนย์ในรูปแบบจำนวนเต็ม ตัวอย่าง: คอลัมน

  14. วิธีดึงข้อมูลจากหลายตาราง MySQL ด้วยคำสั่งเดียว

    คำสั่งหนึ่งสามารถมีหลายคำสั่ง MySQL ต่อกันโดยคั่นด้วย ; หากต้องการผลลัพธ์จากหลายตารางในคำสั่งเดียว ให้เขียนคำสั่ง SELECT หลายคำสั่งคั่นด้วย ; ตัวอย่างดึงข้อมูลจาก Student_info และ Student_detail: mysql> Select Name, Address from Student_info; Select Studentid, Address from Student_detail; +-----

  15. การใช้คำสั่ง SELECT ใน MySQL โดยไม่มี FROM clause

    คำสั่ง FROM หลัง SELECT ใช้ระบุตารางที่อ้างอิง แต่หากไม่มีการอ้างอิงตารางใดๆ เราสามารถใช้ SELECT ได้โดยไม่ต้องมี FROM กล่าวคือ SELECT สามารถใช้ดึงแถวที่คำนวณได้โดยไม่ต้องอ้างอิงตาราง ตัวอย่าง: mysql> Select concat_ws( ,Hello, World); +---------------------------------+ | concat_ws( ,Hello, World

  16. วิธียืนยันการเปลี่ยนแปลงในธุรกรรมปัจจุบันให้ถาวรใน MySQL

    ใช้คำสั่ง COMMIT เพื่อบันทึกการเปลี่ยนแปลงที่ทำในธุรกรรมปัจจุบันให้ถาวรในฐานข้อมูล MySQL หลังจากรันคำสั่ง DML ที่แก้ไขข้อมูล คำสั่ง COMMIT จะทำให้การเปลี่ยนแปลงนั้นๆ กลายเป็นถาวรและไม่สามารถยกเลิกได้ด้วย ROLLBACK ตัวอย่าง mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> I

  17. วิธียกเลิกการเปลี่ยนแปลงในธุรกรรมปัจจุบันออกจากฐานข้อมูล MySQL อย่างถาวร

    ใช้คำสั่ง ROLLBACK เพื่อยกเลิกการเปลี่ยนแปลงที่ทำในธุรกรรม (transaction) ปัจจุบันออกจากฐานข้อมูลอย่างถาวร หากรันคำสั่ง DML (INSERT, UPDATE, DELETE) แล้วข้อมูลเปลี่ยนแปลง คำสั่ง ROLLBACK จะเรียกคืนสภาพเดิมก่อนธุรกรรมเริ่มต้น ตัวอย่าง สมมติตาราง marks มีข้อมูลดังนี้ แล้วเริ่มธุรกรรมและทำการ INSERT แล

  18. เกิดอะไรขึ้นถ้าใช้ \G และ ; ร่วมกันในคำสั่ง MySQL เดียว

    \G ส่งคำสั่งไปรัน และ ; กำหนดจุดสิ้นสุดคำสั่ง ทั้งคู่ให้รูปแบบผลลัพธ์ต่างกัน หากใช้ทั้งสองในคำสั่งเดียว MySQL จะประมวลผลตามลำดับที่พบ: ตัวที่พบก่อนจะกำหนดรูปแบบผลลัพธ์ของคำสั่งนั้น ส่วนตัวที่สองจะทำให้เกิดข้อผิดพลาด No query specified เพราะไม่มีคำสั่งให้รันต่อ ตัวอย่าง 1: ใช้ ; ก่อน \G mysql> Se

  19. วิธีรวมคำสั่งในตัว (\g, \G) กับเครื่องหมายจบคำสั่ง (;) ใน MySQL ให้ได้ผลลัพธ์โดยไม่ผิดพลาด

    คำสั่งในตัว \G และ \g ส่งคำสั่งไปรันที่เซิร์ฟเวอร์ MySQL ในขณะที่เครื่องหมายจบคำสั่ง ; บอกจุดสิ้นสุดของคำสั่ง ทั้งสองรูปแบบให้ผลลัพธ์ต่างกัน: \G แสดงแบบแนวตั้ง \g และ ; แสดงแบบตาราง เพื่อรวมใช้งานพร้อมกันในคำสั่งเดียว ให้เขียนคำสั่งสองคำสั่ง คำสั่งหนึ่งลงท้ายด้วย \G หรือ \g อีกคำสั่งหนึ่งลงท้ายด้วย

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