MySQL 数据定义语句

表相关

修改表名

alter table grade rename hang;

新增表字段

alter table grade add `name` varchar(100);

修改表字段类型

alter table grade modify `name` varchar(100);

修改表字段名和类型

alter table grade change `name` `name1` varchar(10);

删除表字段

alter table grade drop `name`;

表增加外键

alter table student
add constraint `FK_gradeID`
foreign key (`gradeID`) references `grade` (`id`);

删除表

drop table grade;

删除表(如果存在)

drop table if exists grade;

创建表(含主键外键)

create table if not exists `student` (
    `id` int(4) not null auto_increment comment '学号',
    `name` varchar(30) not null default '匿名' comment '名字',
    `pwd` varchar(20) not null default '123456' comment '密码',
    `birthday` datetime default null comment '出生日期',
    `address` varchar(100) default null comment '家庭住址',
    `email` varchar(50) default null comment '邮箱',
    `gradeID` int(10) comment '年级ID',
    primary key (`id`),
    key `FK_gradeID` (`gradeID`),
    constraint `FK_gradeID` foreign key (`gradeID`) references `grade` (`id`)
)ENGINE=InnoDB default charset = utf8;
create table if not exists `grade` (
    `id` int(10) not null auto_increment comment 'ID',
    `name` varchar(30) null comment '名称',
    primary key (`id`)
)ENGINE=InnoDB default charset = utf8;

清空表数据

truncate table `grade`;

delete和truncate区别

相同点

都能删除数据,都不会删除表结构

不同点

truncate会重新设置自增列,计数器会归零

truncate不会影响事务

posted @   天航星  阅读(72)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航