首页技术栈归档照片墙音乐日记随想收藏夹友链留言关于

MySQL 基础入门

写作时间:2026-07-08

MySQL 基础入门

MySQL 简介

MySQL 是最流行的开源关系型数据库,采用 SQL 标准语言,支持多用户、多线程,适合中小型 Web 应用。

InnoDB 引擎特性:

  • 支持事务(ACID)
  • 行级锁定
  • 外键约束
  • MVCC 多版本并发控制
  • 崩溃恢复(redo log)

常用数据类型

类型 说明 示例
INT 整数 age INT
BIGINT 大整数 id BIGINT
VARCHAR(n) 变长字符串 name VARCHAR(50)
TEXT 长文本 content TEXT
DECIMAL(m,n) 精确小数 price DECIMAL(10,2)
DATETIME 日期时间 create_time DATETIME
TINYINT 布尔值 is_deleted TINYINT DEFAULT 0

DDL 数据定义

创建表:

CREATE TABLE article ( id BIGINT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(200) NOT NULL, slug VARCHAR(200) UNIQUE, content TEXT, category_id BIGINT, status TINYINT DEFAULT 0, publish_time DATETIME, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_category (category_id), INDEX idx_status_time (status, publish_time) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE 常用操作:

ALTER TABLE article ADD COLUMN summary VARCHAR(500) AFTER title; ALTER TABLE article MODIFY COLUMN content MEDIUMTEXT; ALTER TABLE article ADD INDEX idx_slug (slug); DROP TABLE IF EXISTS article;

DML 数据操作

INSERT INTO article (title, slug, content, status) VALUES ('MySQL入门', 'mysql-intro', '内容...', 1);

UPDATE article SET status = 1 WHERE id = 1;

-- 推荐软删除 UPDATE article SET is_deleted = 1 WHERE id = 1; -- 物理删除 DELETE FROM article WHERE id = 1;

DQL 数据查询

-- 基本查询 SELECT id, title, publish_time FROM article WHERE status = 1;

-- 模糊搜索 SELECT * FROM article WHERE title LIKE '%MySQL%';

-- 排序分页 SELECT * FROM article WHERE status = 1 ORDER BY publish_time DESC LIMIT 10 OFFSET 0;

-- JOIN 联表 SELECT a.*, c.name AS category_name FROM article a LEFT JOIN blog_category c ON a.category_id = c.id WHERE a.status = 1;

-- 聚合 SELECT category_id, COUNT(*) cnt FROM article WHERE status = 1 GROUP BY category_id HAVING cnt > 3;

avatar

yuanyourdomain

写代码,做研究,记录生活。

RECOMMENDED

MyBatis 动态 SQL

2026-07-08

Nginx 基础入门

2026-07-08

Maven 多模块与私服

2026-07-08