SQL-DDL语句

SQL-DDL语句

2026年5月18日·#javawebai/后端基础前端/MySQL/数据库·974 字 5 分钟
浏览量加载中...
AI 摘要- DeepSeek

DDL数据定义语言:数据库与表结构的创建、查询、修改、删除操作

SQL-DDL语句#

定义#

DDL(Data Definition Language):数据定义语言,用来定义数据库对象(数据库、表)。

语法/用法#

SQL 四大分类#

分类全称说明
DDLData Definition Language数据定义语言,定义数据库/表
DMLData Manipulation Language数据操作语言,增删改数据
DQLData Query Language数据查询语言,查询数据
DCLData Control Language数据控制语言,权限管理

数据库操作#

-- 查询所有数据库
SHOW DATABASES;
-- 查询当前数据库
SELECT DATABASE();
-- 创建数据库(不存在则创建,指定字符集)
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET utf8mb4];
-- 使用/切换数据库
USE 数据库名;
-- 删除数据库(存在则删除)
DROP DATABASE [IF EXISTS] 数据库名;

DATABASE 可替换为 SCHEMA,如 CREATE SCHEMA db01;、SHOW SCHEMAS;

表操作 — 创建#

CREATE TABLE 表名(
字段1 字段1类型 [约束] [COMMENT '注释'],
字段2 字段2类型 [约束] [COMMENT '注释'],
...
字段n 字段n类型 [约束] [COMMENT '注释']
) [COMMENT '表注释'];

示例:

CREATE TABLE tb_user (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID,唯一标识',
username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',
name VARCHAR(10) NOT NULL COMMENT '姓名',
age INT COMMENT '年龄',
gender CHAR(1) DEFAULT '男' COMMENT '性别'
) COMMENT '用户表';

约束#

约束关键字描述
非空NOT NULL字段值不能为 NULL
唯一UNIQUE字段值不能重复
主键PRIMARY KEY唯一标识一行记录(非空且唯一)
默认值DEFAULT未指定值时使用默认值
外键FOREIGN KEY关联其他表的主键

主键自增:AUTO_INCREMENT,插入时自动生成递增的 ID 值,从 1 开始。

MySQL 数据类型#

数值类型:

类型大小用途
TINYINT1 byte小整数值
INT / INTEGER4 bytes大整数值
BIGINT8 bytes极大整数值
FLOAT4 bytes单精度浮点
DOUBLE8 bytes双精度浮点

示例:age TINYINT UNSIGNED、score DOUBLE(4,1)

字符串类型:

类型说明
CHAR(N)定长字符串,性能高
VARCHAR(N)变长字符串,按实际长度存储

示例:username VARCHAR(50)、phone CHAR(11)

日期时间类型:

类型格式说明
DATEYYYY-MM-DD日期
TIMEHH:MM时间
DATETIMEYYYY-MM-DD HH:MM日期时间
TIMESTAMP时间戳自动记录时间

示例:birthday DATE、create_time DATETIME

表操作 — 查询/修改/删除#

-- 查询当前数据库所有表
SHOW TABLES;
-- 查看表结构
DESC 表名;
-- 查看建表语句
SHOW CREATE TABLE 表名;
-- 添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT '注释'] [约束];
-- 修改字段类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
-- 修改字段名+类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT '注释'] [约束];
-- 删除字段
ALTER TABLE 表名 DROP 字段名;
-- 修改表名
RENAME TABLE 表名 TO 新表名;
-- 删除表(含数据)
DROP TABLE [IF EXISTS] 表名;

设计表流程#

  1. 阅读页面原型及需求文档,确定字段
  2. 确认各字段的类型、长度限制、约束
  3. 增加业务基础字段:id(主键自增)、create_time、update_time

员工表设计案例#

CREATE TABLE emp(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT 'ID,主键',
username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',
password VARCHAR(32) NOT NULL COMMENT '密码',
name VARCHAR(10) NOT NULL COMMENT '姓名',
gender TINYINT UNSIGNED NOT NULL COMMENT '性别, 1:男, 2:女',
phone CHAR(11) NOT NULL UNIQUE COMMENT '手机号',
job TINYINT UNSIGNED COMMENT '职位, 1:班主任,2:讲师,3:学工主管,4:教研主管,5:咨询师',
salary INT UNSIGNED COMMENT '薪资',
image VARCHAR(255) COMMENT '头像',
entry_date DATE COMMENT '入职日期',
create_time DATETIME COMMENT '创建时间',
update_time DATETIME COMMENT '修改时间'
) COMMENT '员工表';

注意事项#

  • MySQL 8 默认字符集为 utf8mb4,创建数据库时可不额外指定。
  • id 字段应使用 PRIMARY KEY AUTO_INCREMENT 保证唯一性,避免手动维护。
  • 同一数据库服务器中不允许创建同名数据库。
  • DROP TABLE 会同时删除表中所有数据,不可恢复。
  • 实际开发中,查看/修改/删除表结构通常直接在图形化界面操作。

评论区

[ 标签 ]
# AI37# AI 编程2# AI工具1# AI绘图1# AI辅助开发2# Ajax7# Apifox1# AstrBot3# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# Cloudflare2# CloudFlare2# CloudFlare-ImgBed3# coc4# CSS10# DeepSeek6# deepseek2# DELETE1# Docker5# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML9# HTTP10# ImageManager1# Java23# java13# JavaScript11# JavaWeb113# JDBC7# JSON2# JUnit1# LangChain25# Linux4# Logback1# Maven17# Muse Spark1# Mybatis1# MyBatis18# MySQL45# MySql1# NapCat1# Node.js1# obsidian2# Obsidian5# OpenCode4# ORM1# PathVariable1# PicGo1# PyCharm1# Python70# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot37# SpringMVC5# SQL2# Streamlit5# Svelte2# TailwindCSS1# Telegram3# Tlias2# Vercel1# vscode2# Vue20# Waline3# Web3# WebDAV1# Web基础6# Web开发6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档10# 写作1# 函数2# 刷步数1# 前端52# 动态1# 动漫1# 包1# 单词2# 博客8# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 后端48# 图床6# 地图1# 备份2# 大模型1# 奇思妙想1# 存储1# 学习方法6# 学校1# 宝塔面板3# 宝宝10# 实战4# 对象1# 导航栏1# 工具2# 布局2# 开发1# 开发工具1# 开发规范1# 开心1# 异常处理1# 影视2# 微信1# 性能优化2# 总结1# 想法15# 感受1# 感悟11# 指南1# 提示词工程2# 插件5# 故障排除1# 效率工具2# 教程10# 数据分析9# 数据库27# 数据结构1# 文件操作2# 斩神1# 日常95# 日志框架1# 朋友圈1# 朱元璋1# 模块1# 模板1# 正则表达式2# 测试3# 游戏2# 爬虫7# 生活迁移1# 电影2# 电脑1# 碎碎念1# 视觉识别1# 类1# 类型注解1# 网络基础2# 网络教室1# 羊毛2# 脚本2# 脚本工具1# 自动化2# 蓝奏云1# 表单1# 订阅推荐2# 记录2# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载2# 运动1# 部署11# 部落冲突1# 配置1# 随机图1# 面向对象5# 音乐3# 音标1# 项目实战11# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]