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)
相关推荐
星空露珠18 分钟前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
踏月的造梦星球1 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
Database_Cool_1 小时前
企业级多模态分析计算引擎选型:首选 AnalyticDB MySQL 向量 + SQL + 实时一体化方案
数据库·sql·mysql
SelectDB1 小时前
从 Oracle、Hadoop 到 Apache Doris:哥瑞利泛半导体智能制造数据平台实践
数据库
ihuyigui1 小时前
海外签收通知短信接口
android·java·开发语言·前端·数据库·后端
海棠Flower未眠1 小时前
SpringBoot 消息死信队列(荣耀典藏版)
java·数据库·spring boot
Y3815326622 小时前
SERP API + Redis 缓存层:4 种方案对比与选型
数据库·redis·缓存
用户7783366132112 小时前
serpbase + GraphQL wrapper 实战:让 SERP 数据走 GraphQL schema
数据库·api
数字新视界2 小时前
信创动环监控品牌的技术架构及应用解析
数据库·物联网·需求分析·机房管理·动环监控
洵有兮3 小时前
sql注入通关笔记
数据库·笔记·sql·sql注入