1. SQL 语句分类与实战应用
作为一名数据库工程师,我经常需要向新人解释SQL语句的分类及其实际应用场景。SQL语句按照功能可以分为三大类,每类都有其独特的语法和用途。
1.1 数据定义语言(DDL)
DDL(Data Definition Language)是我们构建数据库结构的基石。在实际项目中,我通常会在系统初始化阶段集中使用DDL语句:
sql复制-- 创建数据库
CREATE DATABASE ecommerce
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_0900_ai_ci;
-- 创建用户表
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
注意:在生产环境执行DDL操作要特别小心,尤其是ALTER TABLE可能会锁表导致服务中断。建议在低峰期操作,大表修改可以考虑使用pt-online-schema-change工具。
1.2 数据操作语言(DML)
DML(Data Manipulation Language)是我们日常使用最频繁的SQL类型。在电商系统开发中,典型的DML操作包括:
sql复制-- 插入新用户
INSERT INTO users (username, email)
VALUES ('tech_lead', 'lead@example.com');
-- 更新用户信息
UPDATE users
SET email = 'new_lead@example.com'
WHERE user_id = 1;
-- 查询活跃用户
SELECT user_id, username
FROM users
WHERE last_login > DATE_SUB(NOW(), INTERVAL 30 DAY);
