首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 基礎語法速查手冊:DDL/DML/DQL 核心語句、索引操作、字符集處理與常用函數

     編輯:MySQL 綜合教學

一、資料庫與表結構操作 (DDL)

資料庫


CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER DATABASE mydb CHARACTER SET utf8mb4;
DROP DATABASE mydb;
SHOW DATABASES;
USE mydb;
SELECT DATABASE();

建表完整範例


CREATE TABLE userInfo (
    userId INT PRIMARY KEY AUTO_INCREMENT COMMENT '主鍵',
    userName VARCHAR(20) NOT NULL COMMENT '用戶名',
    userPwd VARCHAR(20) NOT NULL COMMENT '密碼',
    userSex TINYINT DEFAULT 0 COMMENT '性別 0女 1男',
    userAge DECIMAL(10,2) NOT NULL COMMENT '薪資',
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';

表結構修改


-- 查看結構
DESC userInfo;
SHOW CREATE TABLE userInfo\G

-- 新增欄位
ALTER TABLE userInfo ADD COLUMN userAge INT(100) COMMENT '年齡';

-- 修改欄位類型/屬性
ALTER TABLE userInfo MODIFY COLUMN userSex TINYINT COMMENT '性別';
ALTER TABLE userInfo CHANGE COLUMN userSex userSexs TINYINT; -- 重命名+改類型

-- 刪除欄位
ALTER TABLE userInfo DROP COLUMN userAge;

-- 重命名表
RENAME TABLE userInfo TO stuInfo;
-- 或
ALTER TABLE userInfo RENAME TO stuInfo;

-- 刪表
DROP TABLE stuInfo;

二、數據操作 (DML)

插入


INSERT INTO userInfo VALUES (NULL, '張三', '123456', 0, 2000.00);
INSERT INTO userInfo (userName, userPwd, userSex, userAge) VALUES 
('李四', '123456', 0, 4200.00), ('王五', '123456', 1, 3000.00);

查詢 (DQL 核心)


SELECT * FROM userInfo;
SELECT * FROM userInfo ORDER BY userId LIMIT 0, 2;  -- 分頁
SELECT * FROM userInfo LIMIT 2 OFFSET 0;            -- 等價
SELECT userId, userName FROM userInfo WHERE userAge > 3000;
SELECT COUNT(*) FROM userInfo;
SELECT NOW();  -- 當前時間

更新


UPDATE userInfo SET userAge = 4500 WHERE userId = 2;

刪除


DELETE FROM userInfo WHERE userId = 1;
TRUNCATE TABLE userInfo;  -- 全清、重置自增、不可回滾

三、索引操作


-- 建立索引
CREATE INDEX idx_name ON userInfo(userName);
CREATE UNIQUE INDEX uk_name ON userInfo(userName);
ALTER TABLE userInfo ADD INDEX idx_sex_age (userSex, userAge);

-- 查看索引
SHOW INDEX FROM userInfo\G

-- 刪除索引
DROP INDEX idx_name ON userInfo;
ALTER TABLE userInfo DROP INDEX uk_name;

四、字符集與編碼處理


-- 表級轉換 (推薦)
ALTER TABLE userInfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 庫級轉換 (僅影響新表)
ALTER DATABASE mydb CHARACTER SET utf8mb4;

-- 連接層指定 (應用端)
-- JDBC: ?characterEncoding=utf8&connectionCollation=utf8mb4_general_ci
-- PDO: charset=utf8mb4
-- Python: charset='utf8mb4'

五、字符串處理實用技巧


-- 字段內容前綴添加 (如文章內容縮進)
UPDATE article SET content = CONCAT('    ', content);

-- 去除首尾空格
UPDATE userInfo SET userName = TRIM(userName);

-- 替換
UPDATE userInfo SET userName = REPLACE(userName, '舊', '新');

-- 截取
SELECT SUBSTRING(userName, 1, 10) FROM userInfo;

六、常用系統函數

分類函數示例
時間NOW()當前日期時間
CURDATE()當前日期
DATE_FORMAT()DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
DATE_ADD/SUBDATE_ADD(NOW(), INTERVAL 1 DAY)
字符串CONCAT()CONCAT('a','b') → 'ab'
LENGTH()字節長度
CHAR_LENGTH()字符長度
流程控制IF()IF(age>18,'成年','未成年')
CASE WHENCASE WHEN sex=1 THEN '男' ELSE '女' END
COALESCE()COALESCE(NULL, '默認值') → '默認值'
聚合COUNT/SUM/AVG標準聚合
GROUP_CONCATGROUP_CONCAT(name SEPARATOR ',')

收藏建議: 本手冊涵蓋 90% 日常開發運維場景,建議配合 HELP 'command' (如 HELP 'CREATE TABLE') 終端即時查閱語法細節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved