Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. นับจำนวน Record ทุกตารางใน MySQL Database

    ใช้ TABLE_ROWS จาก INFORMATION_SCHEMA.TABLES ร่วมกับ SUM() นับ Record รวมทั้ง Database mysql> SELECT SUM(TABLE_ROWS) -> FROM INFORMATION_SCHEMA.TABLES -> WHERE TABLE_SCHEMA = business; +-----------------+ | SUM(TABLE_ROWS) | +-----------------+ | 450 | +--------------

  2. WHERE vs HAVING ใน MySQL: ความแตกต่างและเมื่อไหร่ควรใช้

    WHERE กรองแถว ก่อน Group By (Row-level Filter) HAVING กรองกลุ่ม หลัง Group By (Group-level Filter) ใช้กับ Aggregate Functions ได้ สร้างตารางทดสอบ mysql> CREATE TABLE WhereDemo (Price INT); mysql> INSERT INTO WhereDemo VALUES (100), (200), (300), (400); WHERE กับ Aggregate → ERROR 200; ERROR

  3. ความยาวของ SHA256 Hash ใน MySQL

    SHA-256 ให้ผลลัพธ์ 256 บิต = 32 ไบต์ Hexadecimal: 256 ÷ 4 = 64 ตัวอักษร (0-9, a-f) Binary: 32 ไบต์ Data Type: CHAR(64) หรือ BINARY(32) (ใช้ UNHEX() แปลง) ตัวอย่างสร้างตาราง mysql> CREATE TABLE SHA256Demo ( -> Password VARCHAR(64) -- หรือ CHAR(64) / BINARY(32) -> ); Insert Hash

  4. ดู Character Set ของ Database / Table / Column ใน MySQL

    Query จาก INFORMATION_SCHEMA เพื่อดู Character Set และ Collation ทุกระดับ 1. Character Set ของ Table SELECT CCSA.CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.TABLES T JOIN INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY CCSA ON CCSA.COLLATION_NAME = T.TABLE_COLLATION WHERE T.TABLE_SCHEMA

  5. วิธี Shrink/Purge ไฟล์ ibdata1 ใน MySQL

    ibdata1 ไม่สามารถ Shrink ได้โดยตรง (Design limitation ของ InnoDB Shared Tablespace) วิธีเดียวคือ Dump → Drop → Reload วิธีแก้ไขรากราก (Reclaim Space) alldb.sql (Backup ทุก Database) Stop MySQL: systemctl stop mysql ลบไฟล์: ibdata1, ib_logfile*, *.ibd ใน Data Directory Start MySQL: systemctl start

  6. บวก 2 ชั่วโมง กับเวลาปัจจุบันใน MySQL

    ใช้ NOW() ดูเวลาปัจจุบัน และ DATE_ADD(NOW(), INTERVAL 2 HOUR) บวก 2 ชั่วโมง ดูเวลาปัจจุบัน mysql> SELECT NOW(); +---------------------+ | NOW() | +---------------------+ | 2018-11-01 12:58:40 | +---------------------+ บวก 2 ชั่วโมง mysql> SELECT DATE_ADD(NOW(), INTERVAL 2 HOUR)

  7. ดึงตัวเลขจาก String ใน MySQL (CONVERT + SUBSTRING_INDEX)

    ใช้ SUBSTRING_INDEX ตัดส่วนท้ายหลัง Delimiter แล้ว CONVERT(... UNSIGNED) แปลงเป็นตัวเลข สร้างตารางและข้อมูล mysql> CREATE TABLE textIntoNumberDemo (Name VARCHAR(100)); mysql> INSERT INTO textIntoNumberDemo VALUES (John-11), (John-12), (John-2), (John-4); Query ดึงตัวเลขและเรียง mysql> SEL

  8. สลับค่าระหว่าง 2 คอลัมน์ใน MySQL (Swap Columns)

    ใช้ Logic คณิตศาสตร์ บวก-ลบ ไม่ต้องใช้ Temp Variable หลักการ Swap (a, b) 1. a = a + b 2. b = a - b -- (a+b) - b = a (ค่าเดิมของ a) 3. a = a - b -- (a+b) - a = b (ค่าเดิมของ b) สร้างตารางและข้อมูล mysql> CREATE TABLE SwappingTwoColumnsValueDemo ( -> FirstColumnValue INT, -> Secon

  9. ตรวจสอบค่าเป็น Integer ใน MySQL (CAST / REGEXP)

    ใช้ CAST(value AS UNSIGNED) หรือ REGEXP เพื่อเช็คว่าค่าเป็น Integer จริงๆ วิธีที่ 1: CAST() mysql> SELECT CAST(John123456 AS UNSIGNED); -- 0 (ไม่ใช่ตัวเลข) mysql> SELECT CAST(123456 AS UNSIGNED); -- 123456 (เป็นตัวเลข) mysql> SELECT CAST(78.90 AS UNSIGNED); -- 78 (Float → Trunc

  10. ดู Schema ของตารางใน MySQL (DESCRIBE / SHOW CREATE TABLE)

    มี 2 วิธีหลัก: DESCRIBE (ดูโครงสร้าง) และ SHOW CREATE TABLE (ดู SQL สร้างตาราง) วิธีที่ 1: DESCRIBE (หรือ DESC) mysql> DESCRIBE business.student; -- หรือ mysql> DESC business.student; ผลลัพธ์: +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Defau

  11. ดึง ID หลัง INSERT ใน MySQL ด้วย Python (pymysql)

    ใช้ cursor.lastrowid (PyMySQL) หรือ connection.insert_id() (mysqlclient) หลังจาก Execute INSERT ข้อกำหนดเบื้องต้น MySQL 8.0+ Python 3.6+ PyMySQL: pip install PyMySQL หรือ mysqlclient: pip install mysqlclient โค้ด Python (PyMySQL) import pymysql conn = pymysql.connect( host=localhost, us

  12. mysql_fetch_array vs mysql_fetch_assoc vs mysql_fetch_object ใน PHP

    ฟังก์ชัน mysql_* ทั้งหมด Deprecated แล้ว (PHP 5.5+) และ Removed ใน PHP 7.0+ ควรใช้ mysqli หรือ PDO แทน เปรียบเทียบ (สำหรับ Legacy Code เท่านั้น) FunctionReturn TypeKey Typeคำอธิบาย mysql_fetch_assoc()Associative ArrayColumn Name (String)คืนค่า val] ใช้ Key เป็นชื่อคอลัมน์ mysql_fetch_array()Ar

  13. MySQL Error 1452: Foreign Key Constraint Fails

    Error 1452 เกิดเมื่อ Insert/Update Child Table ด้วยค่า Foreign Key ที่ ไม่มีอยู่ใน Parent Table สร้างสถานการณ์ Error -- Parent mysql> CREATE TABLE ParentDemo (FKPK INT, Name VARCHAR(100), PRIMARY KEY(FKPK)); -- Child mysql> CREATE TABLE ChildDemo (id INT, FKPK INT); -- Add FK Constraint mys

  14. เปิดใช้งาน LOAD DATA LOCAL INFILE ใน MySQL

    LOAD DATA LOCAL INFILE ใช้ Import ข้อมูลจากไฟล์ Local เข้า Database ต้องเปิดตัวแปร local_infile ตรวจสอบสถานะปัจจุบัน mysql> SHOW GLOBAL VARIABLES LIKE local_infile; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | OFF | +---------------+-------+

  15. ส่ง Array ให้ WHERE Clause ใน MySQL ด้วย IN

    ใช้ WHERE column IN (value1, value2, ...) เพื่อส่งหลายค่าเข้าไปใน Query สร้างตารางและข้อมูล mysql> CREATE TABLE PassingAnArrayDemo (id INT, Firstname VARCHAR(100)); mysql> INSERT INTO PassingAnArrayDemo VALUES -> (1,John),(2,Carol),(3,Smith),(4,Bob),(5,Johnson),(6,David),(7,Sam),(8,Je

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