SQL关键字三分钟入门: 表结构管理与分区设计。(ALTER、MODIFY、CHANGE、DEFAULT、VALUES、LESS THAN、RANGE)

前面我们已经学习了如何查询数据SELECT)、筛选数据WHERE)等操作。现在我们要进入数据库的另一个重要领域 ------ 表结构管理与分区设计

本文带你快速认识以下关键字:

  • ALTER
  • MODIFY
  • CHANGE
  • DEFAULT
  • VALUES
  • LESS THAN
  • RANGE

一、ALTER:修改表结构的核心命令

基本作用

用于修改已有表的结构,比如添加字段、删除字段、重命名表等。

示例:

sql 复制代码
-- 添加新列
ALTER TABLE users ADD COLUMN birth_date DATE;

-- 删除列
ALTER TABLE users DROP COLUMN phone;

-- 重命名表
ALTER TABLE users RENAME TO user_accounts;

二、MODIFY:修改列的定义

基本作用

用于更改某个字段的数据类型或属性,但不能重命名字段名

示例:

sql 复制代码
-- 修改 email 字段为 VARCHAR(150),并设置非空
ALTER TABLE users MODIFY email VARCHAR(150) NOT NULL;

三、CHANGE:修改列名和定义

基本作用

MODIFY 类似,但它还可以重命名字段名

示例:

sql 复制代码
-- 将字段 old_name 改名为 new_name,并改变类型
ALTER TABLE users CHANGE old_name new_name VARCHAR(100);

四、DEFAULT:设定默认值

基本作用

为字段设置一个默认值,当插入数据时未指定该字段值时,自动使用默认值。

示例:

sql 复制代码
-- 创建表时设置默认值
CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    status VARCHAR(20) DEFAULT 'pending'
);

-- 修改现有字段的默认值
ALTER TABLE orders MODIFY status VARCHAR(20) DEFAULT 'completed';

五、VALUES:插入数据的核心语法

基本作用

用于 INSERT INTO 语句中,指定要插入的具体值。

示例:

sql 复制代码
-- 插入一行数据
INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');

-- 插入多行数据
INSERT INTO users (name, email) VALUES
('李四', 'lisi@example.com'),
('王五', 'wangwu@example.com');

六、LESS THAN:常用于范围分区

基本作用

用于定义分区规则中的"小于某值"的边界条件,常见于 RANGE 分区。

示例:

sql 复制代码
CREATE TABLE sales (
    id INT,
    amount DECIMAL(10,2)
) PARTITION BY RANGE (amount) (
    PARTITION p0 VALUES LESS THAN (1000),
    PARTITION p1 VALUES LESS THAN (5000),
    PARTITION p2 VALUES LESS THAN MAXVALUE
);

在这个例子中,销售金额小于1000的数据会存储在 p0 分区中,以此类推。


七、RANGE:按范围进行分区

基本作用

用于创建按某一字段值的范围进行分区的逻辑,提升大数据量下的查询效率。

示例:

sql 复制代码
CREATE TABLE employees (
    id INT,
    salary INT
) PARTITION BY RANGE (salary) (
    PARTITION low_salary VALUES LESS THAN (3000),
    PARTITION mid_salary VALUES LESS THAN (8000),
    PARTITION high_salary VALUES LESS THAN MAXVALUE
);

这样,工资不同范围的员工会被分配到不同的分区中,便于管理与查询优化。


八、总结对比表

关键字 用途 是否影响数据 示例
ALTER 修改表结构 ALTER TABLE users ADD COLUMN...
MODIFY 修改字段定义(不改名) MODIFY email VARCHAR(150)
CHANGE 修改字段定义 + 可以重命名字段名 CHANGE old_name new_name ...
DEFAULT 设置字段默认值 VARCHAR(100) DEFAULT 'abc'
VALUES 插入具体数据 VALUES ('A', 'B')
LESS THAN 定义分区的范围边界 VALUES LESS THAN (1000)
RANGE 按字段值范围划分分区 PARTITION BY RANGE (salary)
相关推荐
丷丩24 分钟前
Postgresql基础实践教程(十一)各种Join
数据库·postgresql·join
星夜夏空9940 分钟前
FreeRTOS学习(4)——内存映射
数据库·学习·mongodb
TheRouter1 小时前
AI Agent 记忆体系建设实战:短期、长期与工作记忆的工程实现
数据库·人工智能·oracle
Omics Pro2 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
唐青枫2 小时前
MySQL EXISTS 详解:存在性判断、NOT EXISTS 与实战示例
sql·mysql
JAVA面经实录9173 小时前
Hibernate面试题库
数据库·oracle·hibernate
迷枫7123 小时前
DM8 目录结构与常用排查入口梳理
服务器·数据库
Mr.Daozhi4 小时前
RAG 进阶实战:跑通 Demo 后我连续翻了 6 次车,逐一修复才真正可用(含 Gradio Web 版)
前端·数据库·langchain·大模型·gradio·rag·科研工具
小程故事多_804 小时前
Claude Code自定义workflow skills用法
数据库·人工智能·智能体
大鹏说大话4 小时前
SQL 排序与分组实战:解决“分组后取最新数据“
android·java·数据库