Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. การแบ่งหน้า (Pagination) ด้วย LIMIT และ OFFSET ใน MySQL

    ใช้ LIMIT offset, row_count หรือ LIMIT row_count OFFSET offset สร้างตาราง limitoffsetDemo 11 แถว: mysql> CREATE TABLE limitoffsetDemo ( id INT, FirstName VARCHAR(200) ); -- INSERT 11 rows ... แสดงแถวที่ 8-11 (ข้าม 7 แถวแรก เอา 4 แถว): mysql> SELECT * FROM limitoffsetDemo LIMIT 7, 4; +----+-

  2. วิธี Clone ตาราง MySQL รวม Indexes และ Data

    ใช้ CREATE TABLE ... LIKE คัดลอกโครงสร้าง (รวม Indexes) แล้วตามด้วย INSERT ... SELECT คัดลอกข้อมูล ตัวอย่าง Clone ตาราง student: mysql> DESC student; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+--

  3. วิธีตั้งค่า Timezone ของ MySQL

    ดูเวลาปัจจุบันด้วย NOW(): mysql> SELECT NOW(); -- 2018-10-06 12:57:25 ตั้งค่า Timezone สำหรับ Session: mysql> SET time_zone = +9:50; Query OK, 0 rows affected (0.00 sec) ตั้งค่า Timezone แบบ Global (ต้องมีสิทธิ์ SUPER): mysql> SET GLOBAL time_zone = +9:00; Query OK, 0 rows affected (0.0

  4. วิธีดูค่า AUTO_INCREMENT ปัจจุบันของตารางใน MySQL

    มี 2 วิธีหลัก: 1. LAST_INSERT_ID() - ค่า AUTO_INCREMENT ที่เพิ่ง Insert ล่าสุด mysql> SELECT LAST_INSERT_ID(); -- คืนค่า 4 (ถ้า insert 4 แถวล่าสุด) 2. INFORMATION_SCHEMA.TABLES - ค่า AUTO_INCREMENT ถัดไป SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = yourDatabaseN

  5. UNSIGNED ใน MySQL คืออะไร

    UNSIGNED ระบุให้คอลัมน์รับค่าบวกเท่านั้น (0 ถึงค่าสูงสุด) ไม่รับค่าลบ ตัวอย่าง: mysql> CREATE TABLE UnsignedDemo ( id INT UNSIGNED ); Query OK, 0 rows affected (0.61 sec) mysql> INSERT INTO UnsignedDemo VALUES (124), (78967); Query OK mysql> INSERT INTO UnsignedDemo VALUES (-124); ERROR 1

  6. วิธีเปิดใช้งาน MySQL Query Log

    ใช้ SET GLOBAL general_log = 1 (ใน MySQL 8.0.12 ต้องใช้ GLOBAL ไม่สามารถ SET general_log โดยตรงได้) เปิด Query Log: mysql> SET GLOBAL general_log = 1; Query OK, 0 rows affected (0.10 sec) ตรวจสอบสถานะ: mysql> SHOW VARIABLES LIKE %general_log%; +------------------+---------------------+ | Va

  7. วิธีบวกวันกับวันที่ใน MySQL

    ใช้ฟังก์ชัน DATE_ADD() พร้อม INTERVAL ไวยากรณ์: SELECT DATE_ADD(date_string, INTERVAL 1 DAY) AS alias_name; ตัวอย่างบวก 1 วันกับ 2018-10-08: mysql> SELECT DATE_ADD(2018-10-08, INTERVAL 1 DAY) AS NextDay; +------------+ | NextDay | +------------+ | 2018-10-09 | +------------+ สามารถบวกหน่วย

  8. SELECT DISTINCT vs GROUP BY ใน MySQL

    SELECT DISTINCT ใช้เพื่อคืนค่าที่ไม่ซ้ำกัน (Distinct values) ลบแถวซ้ำ ใช้กับคอลัมน์เดียวหรือหลายคอลัมน์ ร่วมกับ Aggregate functions ได้ (MAX, AVG, ฯลฯ) ตัวอย่าง: ตาราง DistinctDemo มีข้อมูลซ้ำ John, Bob mysql> SELECT DISTINCT name FROM DistinctDemo; +-------+ | name | +-------+ | John | | Bob

  9. การค้นหา Case-insensitive ด้วย LIKE Wildcard ใน MySQL

    MySQL ค่าเริ่มต้น LIKE เป็น Case-insensitive แล้ว (ขึ้นอยู่กับ Collation) แต่สามารถบังคับได้ด้วย LOWER() หรือ UPPER() ตัวอย่างข้อมูลเหมือนกัน: JOhN, bob, BoB, Bob ค้นหา bob แบบ Case-insensitive (ค่าเริ่มต้น): SELECT * FROM InCaseSensDemo WHERE Name LIKE bob; -- คืน bob, BoB, Bob หากต้องการ Case

  10. การเปรียบเทียบสตริง Case Sensitive ใน MySQL

    MySQL ค่าเริ่มต้น Case-insensitive ใช้ BINARY operator เพื่อเปรียบเทียบ Case-sensitive สร้างตารางและเพิ่มข้อมูล: mysql> CREATE TABLE InCaseSensDemo ( Name VARCHAR(100) ); Query OK, 0 rows affected (0.50 sec) mysql> INSERT INTO InCaseSensDemo VALUES (JOhN), (bob), (BoB), (Bob); Query ปกติ (C

  11. วิธี SELECT คอลัมน์ที่มีช่องว่างในชื่อใน MySQL

    ใช้ backtick (` `) ครอบชื่อคอลัมน์ที่มีช่องว่าง ปุ่ม backtick อยู่ใต้ปุ่ม tilde (~) บนคีย์บอร์ด ตัวอย่าง: mysql> CREATE TABLE SpaceColumn ( `Student Name` VARCHAR(100) ); Query OK, 0 rows affected (0.48 sec) mysql> INSERT INTO SpaceColumn VALUES (John), (Bob); mysql> SELECT `Student Nam

  12. วิธีบันทึกเวลาในมิลลิวินาทีใน MySQL

    ใช้ DATETIME(3) หรือ TIMESTAMP(3) และฟังก์ชัน NOW(3) เพื่อเก็บเวลารวมมิลลิวินาที (3 หลัก) สร้างตาราง: mysql> CREATE TABLE MilliSecondDemo ( MyTimeInMillSec DATETIME(3) ); Query OK, 0 rows affected (0.70 sec) Insert ด้วย NOW(3): mysql> INSERT INTO MilliSecondDemo VALUES (NOW(3)); Query OK, 1

  13. ขนาดสูงสุดของ VARCHAR ใน MySQL

    MySQL ก่อน 5.0.3 จำกัด 255 ตัวอักษร ตั้งแต่ 5.0.3 เป็นต้นมา สูงสุด 65,535 ไบต์ต่อแถว (shared ทุกคอลัมน์) จากเอกสารอย่างเป็นทางการ: ความยาวสูงสุดของ VARCHAR ขึ้นอยู่กับ max row size (65,535 bytes) และ character set เช่น utf8 ใช้สูงสุด 3 ไบต์/ตัวอักษร ดังนั้น VARCHAR utf8 สูงสุดประมาณ 21,844 ตัวอักษ

  14. วิธีหา Port ของ MySQL Server

    ใช้คำสั่ง SHOW VARIABLES หรือ system variable @@port วิธีที่ 1: SHOW VARIABLES mysql> SHOW VARIABLES WHERE variable_name = port; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+ วิธีที่ 2: SELECT @@port mysql>

  15. ข้อผิดพลาด ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

    Error 1396 เกิดเมื่อพยายามสร้าง user root@localhost แต่ระบบมี user root อยู่แล้ว (อาจถูกสร้างด้วยชื่ออื่นหรือมีอยู่เดิม) ตัวอย่างที่ทำให้ error: mysql> CREATE USER root@localhost IDENTIFIED BY root123; ERROR 1396 (HY000): Operation CREATE USER failed for root@localhost วิธีแก้: สร้าง user ชื่อ

  16. ค้นหาข้อมูลในตาราง MySQL ที่ไม่มีในอีกตารางหนึ่ง

    ใช้ Subquery ด้วย NOT IN เพื่อหาแถวในตารางที่สองที่ไม่มีในตารางแรก สร้างตาราง PresentHistory (2 แถว) และ PastHistory (4 แถว รวม 2 แถวซ้ำ และ 2 แถวใหม่): mysql> CREATE TABLE PresentHistory ( HisID int, HisName varchar(100) ); mysql> INSERT INTO PresentHistory VALUES (1,John), (2,Bob); mysql&g

  17. NULL หรือ Empty String อันไหนดีกว่าสำหรับ MySQL

    ใน InnoDB NULL ใช้พื้นที่น้อยกว่า Empty String และความยาวของ NULL คือ NULL ส่วน Empty String ความยาวคือ 0 (แต่ COUNT() นับเป็น 1) ทดสอบกับตาราง DemoEmptyAndNULL: Empty String mysql> INSERT INTO DemoEmptyAndNULL VALUES( ); mysql> SELECT COUNT(message) FROM DemoEmptyAndNULL; -- ผลลัพธ์ 1 NU

  18. วิธีค้นหาตัวอักษร Non-ASCII ใน MySQL

    ตัวอักษร Non-ASCII เช่น สัญลักษณ์ปอนด์ (£), trademark, plus-minus สามารถค้นหาได้ด้วยฟังก์ชัน HEX() และ REGEXP สร้างตารางและเพิ่มข้อมูล: mysql> CREATE table NonASciiDemo ( NonAScii varchar(100) ); Query OK, 0 rows affected (0.61 sec) mysql> INSERT into NonASciiDemo values(,-,); Query OK, 1 ro

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