Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. วิธี Escape Single Quote (เครื่องหมายอ่อน) ใน MySQL

    เมื่อต้องการเก็บข้อความที่มีเครื่องหมายอ่อน () เช่น Carols ใน MySQL ต้องทำการ Escape เพื่อไม่ให้ SQL เข้าใจผิด วิธีที่ 1: ใช้ Backslash (\) SELECT Carol\s Taylor; ผลลัพธ์: Carols Taylor วิธีที่ 2: ใช้ Single Quote คู่ (Double Single Quote) SELECT Carols Taylor; ผลลัพธ์: Carols Taylor ตัวอย่างการ

  2. MySQL: ควรใช้ NULL หรือ Empty String ดี กรณีไหนใช้แบบไหน

    การเลือกใช้ NULL หรือ Empty String () ใน MySQL ขึ้นอยู่กับกรณีการใช้งาน แต่โดยทั่วไป Empty String มักสะดวกกว่า สำหรับการตรวจสอบและเปรียบเทียบ ความแตกต่างหลัก คุณสมบัติNULLEmpty String () ความหมายไม่มีค่า / ไม่ทราบค่ามีค่าแต่เป็นสตริงว่าง การตรวจสอบต้องใช้ IS NULL / IS NOT NULLใช้ = / != ได้เลย

  3. วิธีคัดลอกข้อมูลจากตารางหนึ่งไปยังตารางใหม่ใน MySQL แบบง่ายที่สุด

    วิธีที่ง่ายและรวดเร็วที่สุดในการคัดลอกข้อมูลระหว่างตารางคือใช้คำสั่ง INSERT INTO ... SELECT ขั้นตอนการคัดลอกข้อมูล 1. สร้างตารางต้นทาง (FirstTable) CREATE TABLE FirstTable ( id INT, name VARCHAR(100) ); 2. เพิ่มข้อมูลตัวอย่าง INSERT INTO FirstTable VALUES (1, john), (2, Smith); 3. สร้างต

  4. ROW_NUMBER() ใน MySQL คืออะไร และการใช้งานอย่างไร

    ROW_NUMBER() เป็น Window Function ที่เพิ่มเข้ามาตั้งแต่ MySQL 8.0 ใช้สำหรับกำหนดลำดับรันนัมเบอร์ให้กับแถวข้อมูล ตัวอย่างการใช้งาน 1. สร้างตารางและเพิ่มข้อมูล CREATE TABLE rowNumberDemo ( FirstName VARCHAR(100) ); INSERT INTO rowNumberDemo VALUES (john), (john), (Bob), (Smith); 2. ใช้ ROW_NUM

  5. วิธีอัปเดตตาราง MySQL ด้วยข้อมูลจากอีกตารางหนึ่ง

    เราสามารถอัปเดตตารางหนึ่งด้วยข้อมูลจากอีกตารางหนึ่งได้โดยใช้ INNER JOIN มาดูตัวอย่างการสร้างตารางและอัปเดตข้อมูลกัน 1. สร้างตารางแรก (tblFirst) CREATE TABLE tblFirst ( id INT, name VARCHAR(100) ); 2. เพิ่มข้อมูลในตารางแรก INSERT INTO tblFirst VALUES (1, John); INSERT INTO tblFirst VALUES (

  6. ความแตกต่างระหว่าง Stored Procedure และ Function ใน MySQL คืออะไร

    Stored Procedure (กระบวนงานที่จัดเก็บ) ใน MySQL สามารถเรียกใช้ Stored Procedure ได้ด้วยคำสั่ง CALL โดย Stored Procedure สามารถคืนค่าได้มากกว่าหนึ่งค่า Stored Procedure จะคืนค่า 0 โดยค่าเริ่มต้น ไม่สามารถใช้ใน SQL Query ได้โดยตรง และทำงานแบบ Pre-compile Function (ฟังก์ชัน) Function สามารถเรียกใช้ได้

  7. ความแตกต่างระหว่าง localhost และ 127.0.0.1

    ความแตกต่างหลักคือ Name Resolution: localhost: ต้อง resolve ผ่าน hosts file (หรือ DNS) ก่อน จึงจะได้ IP address (ปกติคือ 127.0.0.1) มี overhead นิดหน่อย 127.0.0.1: เป็น IP address โดยตรง ไม่ต้อง resolve เร็วกว่าเล็กน้อย ใน MySQL มีความหมายเพิ่มเติม: localhost → ใช้ Unix Socket (หรือ Named Pipe

  8. การใช้ Nested Transactions ใน MySQL ด้วย SAVEPOINT

    MySQL ไม่รองรับ Nested Transactions โดยตรง (ไม่สามารถ START TRANSACTION ซ้อนกันได้) แต่ใช้ SAVEPOINT เพื่อทำ Savepoint ภายใน Transaction เดียวกัน แล้ว ROLLBACK TO SAVEPOINT ได้ ตัวอย่าง: mysql> CREATE TABLE transactionDemo ( id INT AUTO_INCREMENT PRIMARY KEY ); Query OK mysql> START TRANSACT

  9. ตารางใหญ่เพียงตารางเดียว หรือ หลายตารางเล็ก ใน MySQL อันไหนดีกว่า

    ไม่มีคำตอบเดียวจบ ขึ้นอยู่กับ: Application Design: โครงสร้างแอปพลิเคชันต้องการอย่างไร Database Normalization: หลักการ Normalize เพื่อลด redundancy และ anomaly กรณีที่ควรใช้หลายตารางเล็ก (Multiple Small Tables): ทีมพัฒนาหลายทีม ทำงานบนส่วนต่างๆ ของข้อมูล (แยก Ownership) ต้องการ Authority/Access

  10. MyISAM เทียบกับ InnoDB ใน MySQL

    ทั้งคู่เป็น Storage Engine ตารางใน MySQL 8.0.12 ใช้ InnoDB เป็นค่าเริ่มต้น ดู Engine ของตารางทั้งหมด: mysql> USE business; mysql> SHOW TABLE STATUS; ผลลัพธ์แสดง Column: Name, Engine, Version, Row_format, Rows, Avg_row_length, Data_length, Index_length, Auto_increment, Create_time, Collation,

  11. วิธีวัดเวลาจริงของ Query ใน MySQL

    ใช้ Profiling: ตั้ง SET PROFILING = 1 SHOW PROFILES ขั้นตอน: mysql> SET PROFILING = 1; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> SELECT * FROM MilliSecondDemo; -- Query ที่ต้องการวัด +-------------------------+ | MyTimeInMillSec | +-------------------------+ | 2018-10-0

  12. การใช้ STRAIGHT_JOIN ใน MySQL

    STRAIGHT_JOIN ทำงานเหมือน INNER JOIN แต่บังคับให้ MySQL join ตารางตามลำดับที่ระบุ (ตารางซ้ายก่อน ตารางขวาหลัง) ใช้เมื่อ Optimizer เลือก Plan ไม่ดี สร้าง 2 ตารางและ FK: mysql> CREATE TABLE ForeignTableDemo ( Id INT, Name VARCHAR(100), FK INT ); mysql> CREATE TABLE PrimaryTableDemo ( FK INT, A

  13. วิธีลบช่องว่างนำหน้าและท้ายสตริงในคอลัมน์ MySQL

    ใช้ฟังก์ชัน TRIM() เพื่อตัด whitespace (space, tab, newline) นำหน้าและท้าย สร้างตารางและเพิ่มข้อมูลที่มีช่องว่าง: mysql> CREATE TABLE TrailingANdLeadingDemo ( SpaceTrailLead VARCHAR(100) ); Query OK, 0 rows affected (0.57 sec) mysql> INSERT INTO TrailingANdLeadingDemo VALUES ( john ); -- มี

  14. ค้นหาและแสดงข้อมูลซ้ำ (Duplicate Records) ใน MySQL

    ใช้ Subquery ด้วย 1 เพื่อหาค่าที่ซ้ำ แล้ว IN เพื่อดึงแถวทั้งหมดที่มีค่านั้น สร้างตาราง DuplicateFound (ID, Name, Location) และเพิ่มข้อมูล 5 แถว (US 3 แถว, UK 2 แถว) แสดงแถวทั้งหมดที่ Location ซ้ำ (มีมากกว่า 1) 1) ORDER BY location; ผลลัพธ์: แสดง 5 แถว จัดกลุ่ม UK ก่อน แล้ว US แสดงเฉพาะค่าที่ซ้

  15. วิธีแสดงตารางทั้งหมดใน MySQL พร้อม Storage Engine

    Query จาก INFORMATION_SCHEMA.TABLES กรองด้วย ENGINE แสดงทุกคอลัมน์ (รายละเอียดเต็ม) SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE = InnoDB; ผลลัพธ์ยาวมาก (94 แถวในตัวอย่าง) แสดง TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, ENGINE, VERSION, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH, AUTO

  16. วิธีสร้างและใช้ Sequence ใน MySQL

    MySQL ไม่มีออบเจ็กต์ Sequence แบบ Oracle/PostgreSQL ใช้ AUTO_INCREMENT แทน สร้างตารางพร้อม AUTO_INCREMENT: mysql> CREATE TABLE SequenceDemo ( SequenceId INT AUTO_INCREMENT, PRIMARY KEY(SequenceId) ); Query OK, 0 rows affected (1.22 sec) Insert ไม่ต้องระบุค่า SequenceId: mysql> INSERT INTO S

  17. ค้นหาและแทนที่ข้อความในตารางทั้งหมดด้วย MySQL

    ใช้ฟังก์ชัน REPLACE() ร่วมกับ UPDATE สร้างตารางและเพิ่มข้อมูล: mysql> CREATE TABLE FindAndReplaceDemo ( FirstName VARCHAR(200) ); Query OK, 0 rows affected (0.43 sec) mysql> INSERT INTO FindAndReplaceDemo VALUES (john), (smith), (Bob), (carol); แทนที่ carol ด้วย Taylor: mysql> UPDATE Fin

  18. ข้อดีของ MySQLi เทียบกับ MySQL (เก่า)

    MySQLi (MySQL Improved Extension) เป็นขุมสำหรับ PHP ติดต่อ MySQL แทน Extension เดิม (mysql_*) ที่ถูก Deprecated และ Removed แล้ว ข้อดีของ MySQLi ทั่วไป ใช้ภาษา SQL มาตรฐาน ฟรี Open Source ทำงานกับ PHP ได้ดี (ภาษาเว็บยอดนิยม) รองรับฟังก์ชันขั้นสูงของฐานข้อมูล รองรับหลายภาษา: C, C++, Java, PHP, ฯลฯ

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:174/229  20-คอมพิวเตอร์/Page Goto:1 168 169 170 171 172 173 174 175 176 177 178 179 180