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)
相关推荐
咖丨喱9 分钟前
【Action帧简要分析】
服务器·数据库·asp.net
没饭吃!11 分钟前
NHibernate案例
数据库·hibernate
泷羽Sec-静安32 分钟前
OSCP官方靶场-Solstice WP
服务器·网络·数据库
IvanCodes42 分钟前
Oracle 视图
大数据·数据库·sql·oracle
德育处主任Pro1 小时前
「py数据分析」04如何将 Python 爬取的数据保存为 CSV 文件
数据库·python·数据分析
许白掰2 小时前
Linux入门篇学习——Linux 编写第一个自己的命令
linux·运维·数据库·嵌入式硬件·学习
打不了嗝 ᥬ᭄2 小时前
文件系统----底层架构
linux·运维·数据库
亲爱的非洲野猪3 小时前
Oracle与MySQL详细对比
数据库·mysql·oracle
Matrix703 小时前
Navicat实现MySQL数据传输与同步完整指南
数据库·mysql
Z字小熊饼干爱吃保安4 小时前
面试技术问题总结一
数据库·面试·职场和发展