หน้าแรก
หน้าแรก
อย่างที่เราทราบดีว่าคำสั่งในตัว (\G และ \g) ส่งคำสั่งไปยังเซิร์ฟเวอร์ MySQL เพื่อดำเนินการ และทั้งคู่มีรูปแบบที่แตกต่างกันของชุดผลลัพธ์ ในการรวมและได้ผลลัพธ์โดยไม่มีข้อผิดพลาด เราจำเป็นต้องเขียนข้อความค้นหาสองรายการ แบบสอบถามหนึ่งมี \G และอีกรายการหนึ่งมี \g ต่อท้ายในคำสั่งเดียว ตัวอย่าง mysql> S
อย่างที่เราทราบดีว่าคำสั่งในตัว (\G และ \g) ส่งคำสั่งไปยังเซิร์ฟเวอร์ MySQL เพื่อดำเนินการและด้วยความช่วยเหลือของ Semicolon (;) MySQL กำหนดจุดสิ้นสุดของ คำแถลง. สำหรับการใช้ทั้งสามอย่างและได้ผลลัพธ์โดยไม่มีข้อผิดพลาด เราจำเป็นต้องเขียนข้อความค้นหาสามรายการ หนึ่งข้อความค้นหาที่มี \G หนึ่งข้อความมี \g
MySQL จะส่ง NULL ออกมาเสมออันเป็นผลมาจากการคำนวณทางคณิตศาสตร์ โดยที่หนึ่งในอาร์กิวเมนต์เป็น NULL พิจารณาตัวอย่างต่อไปนี้ที่มีค่า NULL เป็นอาร์กิวเมนต์ที่มีการบวก ลบ คูณ และหาร - mysql> Select 10*NULL; +---------+ | 10*NULL | +---------+ | NULL | +---------+ 1 row in set (0.12 sec) m
สามารถเข้าใจได้ด้วยความช่วยเหลือของตัวอย่างต่อไปนี้โดยใช้ตารางชื่อ นักเรียน ซึ่งมีคำอธิบายดังต่อไปนี้ - mysql> DESCRIBE Student; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+
สมมุติว่าถ้าเซสชันถูกฆ่าระหว่างธุรกรรม ธุรกรรม MySQL ปัจจุบันจะถูกย้อนกลับโดย MySQL และสิ้นสุด หมายความว่าการเปลี่ยนแปลงฐานข้อมูลทั้งหมดที่ทำในธุรกรรมปัจจุบันจะถูกลบออก เรียกว่าย้อนกลับโดยปริยายเมื่อเซสชันถูกฆ่า ตัวอย่าง สมมติว่าเรามีค่าต่อไปนี้ในตาราง เครื่องหมาย เลือก * จากเครื่องหมาย;+------+--
สมมติว่าเซสชันสิ้นสุดในระหว่างธุรกรรม ธุรกรรม MySQL ปัจจุบันจะถูกย้อนกลับโดย MySQL และสิ้นสุด หมายความว่าการเปลี่ยนแปลงฐานข้อมูลทั้งหมดที่ทำในธุรกรรมปัจจุบันจะถูกลบออก เรียกว่า n การย้อนกลับโดยปริยายเมื่อเซสชันสิ้นสุดลง ตัวอย่าง สมมติว่าเรามีค่าต่อไปนี้ในตาราง เครื่องหมาย mysql> Select * from ma
เมื่อรันคำสั่ง START TRANSACTION ผู้ใช้สามารถเริ่มธุรกรรม MySQL ใหม่ได้ ลักษณะการทำงานของธุรกรรมจะขึ้นอยู่กับโหมด SQL AUTOCOMMIT โหมดเริ่มต้นคือโหมด AUTOCOMMIT ON ซึ่งคำสั่ง MySQL แต่ละคำสั่งถือเป็นธุรกรรมที่สมบูรณ์และกำหนดโดยค่าเริ่มต้นเมื่อเสร็จสิ้น เริ่มต้นได้โดยการตั้งค่าตัวแปรเซสชัน AUTOCOMMIT
ในกรณีที่เราใช้การเรียงลำดับแบบโจ่งแจ้ง (ASC หรือ DESC) ที่มีชื่อคอลัมน์ในรายการ GROUP BY พร้อมกับตัวแก้ไข WITH ROLLUP แถวสรุปที่เพิ่มโดย ROLLUP จะยังคงอยู่ ปรากฏขึ้นหลังแถวที่คำนวณโดยไม่คำนึงถึงลำดับการจัดเรียง อย่างที่เราทราบดีว่าลำดับการจัดเรียงเริ่มต้นคือจากน้อยไปมาก ดังนั้นในตัวอย่างด้านล่าง หา
ที่จริงแล้ว ROLLUP และ ORDER BY นั้นไม่มีร่วมกันใน MySQL ดังนั้นจึงไม่ใช่วิธีปฏิบัติที่ดีที่จะใช้ทั้งคู่ในแบบสอบถาม แต่ถ้าเราใช้ ROLLUP ใน ORDER BY ข้อเสียหลักคือแถวสรุปจะถูกจัดเรียงตามแถวที่คำนวณ สิ่งสำคัญคือต้องสังเกตว่าลำดับการจัดเรียงจะกำหนดตำแหน่งของแถวสรุป แถวสรุปจะอยู่ที่จุดเริ่มต้นของลำดับจา
เรายังสามารถใช้ BEGIN คำสั่งเพื่อเริ่มต้นการทำธุรกรรมใหม่ เหมือนกับ เริ่มการทำธุรกรรม คำสั่ง ตัวอย่าง mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO Marks Values(1, 'Aarav','History',40); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Marks V
ด้วยความช่วยเหลือของคำสั่งในตัวต่อไปนี้ MySQL สามารถดำเนินการค้นหาแม้ว่าจะไม่ได้ใช้เครื่องหมายอัฒภาค (;) ตัวสิ้นสุด อัตตา เราสามารถใช้คำสั่งนี้ได้โดยใช้ตัวเลือก \G หมายถึงการส่งคำสั่งปัจจุบันไปยังเซิร์ฟเวอร์เพื่อดำเนินการและแสดงผลในรูปแบบแนวตั้ง เมื่อเราใช้ \G และละเว้นเซมิโคลอน (;) ในคำสั่ง (บรรทัด
“WITH ROLLUP” เป็นตัวดัดแปลงที่ใช้กับประโยค GROUP BY โดยหลักแล้ว จะทำให้เอาต์พุตสรุปรวมแถวพิเศษที่แสดงถึงการดำเนินการสรุปในระดับที่สูงกว่า ตัวอย่าง ในตัวอย่างด้านล่าง ตัวแก้ไข WITH ROLLUP ให้ผลลัพธ์สรุปพร้อมมูลค่าราคารวมในแถวพิเศษ mysql> Select Item, SUM(Price) AS Price from ratelist Group by it
โดยการใช้ \G ที่ส่วนท้ายของคำสั่ง MySQL จะแสดงผลลัพธ์ในรูปแบบแนวตั้งแทนที่จะเป็นรูปแบบตาราง พิจารณาตัวอย่างด้านล่าง − mysql> Select curdate(); +------------+ | curdate() | +------------+ | 2017-11-06 | +------------+ 1 row in set (0.00 sec) mysql> Select CURDATE()\G ********************
ต่อไปนี้เป็นวิธีที่ด้วยความช่วยเหลือซึ่งการทำธุรกรรม MySQL ปัจจุบันสามารถสิ้นสุดได้อย่างชัดเจน - โดยคำสั่ง COMMIT ธุรกรรมปัจจุบันจะสิ้นสุดลงอย่างชัดเจนหากเราจะเรียกใช้คำสั่ง COMMIT ในกรณีนี้ การเปลี่ยนแปลงจะมีผล ตัวอย่าง mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> I
ต่อไปนี้คือวิธีที่ธุรกรรม MySQL ปัจจุบันสามารถยุติได้โดยปริยาย - โดยการรันคำสั่ง DDL ธุรกรรม MySQL ปัจจุบันจะสิ้นสุดโดยปริยาย และการเปลี่ยนแปลงจะเกิดขึ้นโดยการเรียกใช้คำสั่ง DDL ใดๆ เช่น ฐานข้อมูล CREATE หรือ DROP, ตาราง Create, ALTER หรือ DROP หรือรูทีนที่จัดเก็บไว้ เป็นเพราะใน MySQL คำสั่งเหล่านี
เราสามารถเรียกใช้คำสั่ง “SELECT @@AUTOCOMMIT” เพื่อตรวจสอบโหมดการทำธุรกรรมปัจจุบันได้ mysql> Select @@AUTOCOMMIT; +--------------------+ | @@AUTOCOMMIT | +--------------------+ | 1 | +--------------------+ 1 row in
ด้วยความช่วยเหลือของคำหลัก IN เราสามารถใช้แบบสอบถามย่อยเพื่อกรองข้อมูลได้ เป็นเพราะเราสามารถใช้ผลลัพธ์ของการสืบค้นข้อมูล เช่นเดียวกับที่เราใช้รายการค่ากับตัวดำเนินการ IN เพื่อกรองการสืบค้นตามผลลัพธ์ของการสืบค้นอื่น เคียวรีย่อยปรากฏในวงเล็บหลังคีย์เวิร์ด IN ตัวอย่าง เราใช้ข้อมูลจากตารางต่อไปนี้เพื่อแ
เราสามารถใช้แบบสอบถามย่อยเป็นตารางในส่วนคำสั่ง FROM ในลักษณะเดียวกับผลลัพธ์ของแบบสอบถามย่อยที่สามารถใช้กับตัวดำเนินการในส่วนคำสั่ง WHERE ในตัวอย่างต่อไปนี้ เราใช้ผลลัพธ์ของ subquery เป็นตารางโดยเขียนไว้หลังคำสั่ง FROM จำเป็นต้องใช้นามแฝงหลังจากแบบสอบถามย่อย ที่นี่เราใช้นามแฝง C_car เพื่อแสดงให้เห็นว
ส่วนคำสั่ง MySQL ORDER BY ใช้เพื่อระบุการเรียงลำดับตามผลลัพธ์ของการสืบค้น คำหลัก ORDER BY ต้องตามด้วยชื่อของคอลัมน์ที่เราต้องการจัดเรียง ตัวอย่างเช่น เราต้องการจัดเรียงตารางต่อไปนี้ชื่อ ratelist ตามคอลัมน์ ราคา - mysql> Select * from ratelist; +----+------+-------+ | Sr | Item | Price | +----+--
ที่จริงแล้ว อย่างที่เรารู้ว่าเราสามารถระบุการเรียงลำดับโดยใช้คำสั่ง ORDER BY ได้ เราจำเป็นต้องเขียนคีย์เวิร์ด ORDER BY ตามด้วยชื่อของคอลัมน์ที่เราต้องการจัดเรียงตาราง ไม่จำเป็นที่เราต้องใช้ชื่อคอลัมน์นั้นหลังคีย์เวิร์ด SELECT ในเคียวรี ตัวอย่าง mysql> Select Sr, Item from ratelist ORDER BY Price;