Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. MySQL: เลือก Database ด้วยคำสั่ง USE

    ปัญหา: No Database Selected mysql> create table Demoofselectdatabase (Id int); ERROR 1046 (3D000): No database selected แก้ไข: ใช้ USE mysql> USE business; Database changed หลังจากนี้ สร้างตาราง/Query ได้ใน Database business แล้ว คำสั่งที่เกี่ยวข้อง SHOW DATABASES;: ดูรายการ Database ทั้งห

  2. วิธีหาไฟล์ my.cnf (my.ini) ใน Windows

    ตำแหน่งมาตรฐาน Windows Windows ใช้ชื่อไฟล์ my.ini (ไม่ใช่ my.cnf) ตำแหน่งทั่วไป: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini หาผ่าน Services (แน่ใจที่สุด) Win + R → services.msc → Enter หา MySQL80 (หรือชื่อ Service MySQL) คลิกขวา → Properties ดู Path to executable จะเป็นแบบ: C:\Program Files\MySQ

  3. วิธีเช็คว่า MySQL Table ใช้ Engine MyISAM หรือ InnoDB

    คำสั่งสำหรับตารางเฉพาะ SHOW TABLE STATUS FROM yourDatabaseName LIKE yourTableName; ตัวอย่าง mysql> show table status from business like student; +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+--------

  4. MySQL: แยก DATE และ TIME จาก DATETIME (DATE_FORMAT)

    ฟังก์ชัน DATE_FORMAT() จัดรูปแบบ Date/Time ตาม Pattern ที่กำหนด Pattern หลัก Patternความหมายตัวอย่าง %Yปี 4 หลัก2018 %mเดือน 2 หลัก11 %dวัน 2 หลัก24 %Hชั่วโมง 24h13 %iนาที40 %sวินาที36 ตัวอย่าง: แยก Date และ Time สร้างตารางและข้อมูล mysql> create table DateAndTimePartDemo (YourDateandtime

  5. MySQL: ปัดเศษลงจำนวนเต็ม (FLOOR)

    ฟังก์ชัน FLOOR() คืนค่าจำนวนเต็มที่มากที่สุดที่ ≤ ค่าที่ให้มา (ปัดลง) รูปแบบ SELECT FLOOR(yourColumnName) FROM yourTableName; ตัวอย่าง สร้างตารางและข้อมูล mysql> create table FloorDemo (Price float); mysql> insert into FloorDemo values(5.75),(5.23),(5.50); ข้อมูลต้นฉบับ +-------+ | Price |

  6. MySQL: ตัดส่วนเวลาออกจาก DATETIME (DATE function)

    ฟังก์ชัน DATE() ดึงเฉพาะส่วนวันที่ (Date) จาก Datetime/Timestamp รูปแบบ SELECT DATE(yourColumnName) FROM yourTableName; ตัวอย่าง สร้างตารางและข้อมูล mysql> create table StripComponentDatetimeDemo (YourDateTime datetime); mysql> insert into StripComponentDatetimeDemo values(date_add(now(), in

  7. หาค่าสูงสุดจากหลายคอลัมน์ใน MySQL (GREATEST)

    ฟังก์ชัน GREATEST() คืนค่ามากที่สุดจากรายการค่าที่ให้มา รูปแบบเพื่อหาค่าสูงสุดของแต่ละคอลัมน์ แล้วหาค่าสูงสุดของทั้งหมด SELECT GREATEST(MAX(col1), MAX(col2), MAX(col3)) FROM yourTable; ตัวอย่าง สร้างตาราง 3 คอลัมน์คะแนน mysql> create table GreatestOfTwoOrMore (Marks1 int, Marks2 int, Marks3 int

  8. วิธีเพิ่ม AUTO_INCREMENT ให้คอลัมน์ที่มีอยู่แล้วด้วย ALTER TABLE

    คำสั่ง ALTER TABLE yourTableName CHANGE yourColumnName yourColumnName dataType AUTO_INCREMENT PRIMARY KEY; ตัวอย่าง สร้างตาราง (ยังไม่มี PK, ไม่มี AI) mysql> create table AlterTableToAddAutoIncrement (StudentId int); เพิ่ม AUTO_INCREMENT + PRIMARY KEY พร้อมกัน mysql> alter table AlterTableTo

  9. MySQL: SELECT ช่วงค่า ใช้ BETWEEN แทน IN

    ปัญหา: IN() ไม่ใช่ Range IN(4,10) คืนแค่ 4 และ 10 → ไม่ได้คืน 5,6,7,8,9 แก้ด้วย BETWEEN (Inclusive) SELECT * FROM table WHERE column BETWEEN 4 AND 10; คืน 4,5,6,7,8,9,10 (รวมปลายทั้งสอง) ตัวอย่าง สร้างตาราง 1-15 mysql> create table SelectInWithBetweenDemo (PortalId int); mysql> insert into S

  10. การจัดเก็บจำนวนเงินใน MySQL: ใช้ DECIMAL ไม่ใช่ FLOAT

    ทำไมไม่ควรใช้ FLOAT/DOUBLE ชนิด Floating Point มี Percision Error (ข้อผิดพลาดการปัดเศษ) เช่น 0.1 + 0.2 ≠ 0.3 ใน Binary Floating Point แนะนำ: DECIMAL หรือ NUMERIC เก็บค่าทศนิยมได้แม่นยำ (Exact Precision) รูปแบบ: DECIMAL(precision, scale) precision: จำนวนหลักทั้งหมด (สูงสุด 65) scale: จำนวนหลักทศนิย

  11. วิธีดู Username ปัจจุบันใน MySQL (CURRENT_USER vs USER)

    สองฟังก์ชัน ฟังก์ชันคืนค่าตัวอย่าง CURRENT_USER()User ที่ใช้ Authenticate การเชื่อมต่อroot@% USER()User และ Host ที่ Client ใช้เชื่อมต่อจริงroot@localhost ตัวอย่าง CURRENT_USER() mysql> select CURRENT_USER(); +----------------+ | CURRENT_USER() | +----------------+ | root@% | +----

  12. MySQL: SELECT แถวที่คอลัมน์เป็น NULL (IS NULL)

    คำสั่ง SELECT * FROM yourTableName WHERE yourColumnName IS NULL; ต้องใช้ IS NULL ไม่ใช่ = NULL (เพราะ NULL ไม่เท่ากับอะไรเลย รวมถึงตัวมันเอง) ตัวอย่าง สร้างตารางและข้อมูล mysql> create table NULLDemo1 (StudentId int, StudentName varchar(100)); mysql> insert into NULLDemo1 values(NULL,John),(

  13. วิธีแสดงผล SELECT หลายคอลัมน์ใน Terminal แบบแนวตั้ง (\\G)

    ปัญหา ตารางมีคอลัมน์เยอะ → แสดงแบบตาราง (Horizontal) อ่านยากใน Terminal วิธีแก้: ใช้ \\G แทน ; SELECT * FROM yourTableName\G ตัวอย่าง สร้างตารางและข้อมูล mysql> create table TooManyFieldsreturnDemo (Id int, Name varchar(100), Age int); mysql> insert into TooManyFieldsreturnDemo values(1,John

  14. วิธีดู Warning ล่าสุดใน MySQL (SHOW WARNINGS)

    คำสั่ง SHOW WARNINGS; เงื่อนไขการทำงาน แสดง Warning/Error ของคำสั่ง ทันทีที่ผ่านมา เท่านั้น ถ้ารันคำสั่งอื่นระหว่างทาง หรือตัดการเชื่อมต่อ → จะไม่แสดงได้ ตัวอย่าง mysql> SHOW WARNINGS; +-------+------+--------------------------------------------------------------------------------------------

  15. MySQL: Insert วันที่/เวลาปัจจุบัน (CURDATE vs NOW)

    สองฟังก์ชันหลัก ฟังก์ชันคืนค่าตัวอย่าง CURDATE()เฉพาะวันที่ (Date)2018-11-23 NOW()วันที่และเวลา (Datetime)2018-11-23 17:31:26 ตัวอย่าง: Insert แค่ Date mysql> create table CurDateDemo (ArrivalDate datetime); mysql> insert into CurDateDemo values(curdate()); mysql> select * from CurDa

  16. MySQL: แปลง String เป็นตัวเล็ก (LOWER / LCASE)

    ฟังก์ชันสองตัวเลือก LOWER(string) LCASE(string) (Alias ของ LOWER) ทั้งคู่ให้ผลลัพธ์เหมือนกัน ตัวอย่าง LOWER() mysql> select lower(JOhN); +---------------+ | lower(JOhN) | +---------------+ | john | +---------------+ LCASE() mysql> select lcase(JOhN); +---------------+ | lcase(JOh

  17. LIMIT กับ OFFSET ใน MySQL คืนแถวไหนบ้าง?

    กฎทั่วไป LIMIT n OFFSET m → คืน n แถว เริ่มจากแถวที่ m+1 OFFSET 0 = เริ่มแถวแรก OFFSET 6 = ข้าม 6 แถวแรก เริ่มแถวที่ 7 ตัวอย่าง สร้างตาราง 13 แถว (Id 1-13) mysql> create table LimitOffsettable (Id int); mysql> insert into LimitOffsettable values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:164/229  20-คอมพิวเตอร์/Page Goto:1 158 159 160 161 162 163 164 165 166 167 168 169 170