MySQL之数据定义语言(DDL)
写在前面
- 本文中
[ 内容 ]
代表啊可选项,即可写可不写。
SQL语言的基本功能介绍
SQL是一种结构化查询语言,主要有如下几个功能:
- 数据定义语言(DDL):全称Data Definition Language
- 数据操纵语言(DML):全称Data Manipulation Language
- 数据查询语言(DQL):全称Data Query Language
- 数据控制语言(DCL):全称Data Control Language
- 事务控制语言(TCL):全称Transaction Control Language
数据定义语言的用途
DDL
主要是对数据库对象(数据库、表、视图、索引)的操作。常用命令如下:
创建 | 修改 | 销毁 |
---|---|---|
create | alter | drop |
数据库的操作语句
显示当前所有库
-- 显示说有的库 show databases;
创建库
-- 创建库 -- create database [if not exists] 数据库名 [charset=utf8]; -- 重复创建会报错, 可以加上if not exists create database if not exists student;
销毁库
-- 销毁库 -- drop database [if exists] 数据库名; -- 如果不知道数据库是否存在,记得加if exists drop database if exists student;
使用库
-- 使用库 -- use 数据库名; -- 创建数据库后,当进行对表的操作之前,必须要先使用数据库。 use student;
其他
-- 查看当前所在的库 select database(); -- 修改数据库名 rename database 旧名 to 新名;
数据表的操作
查看当前库中都有哪些表
-- 查看当前库中都有哪些表 show tables;
创建表
-- 格式 -- 注意:表名 和 字段名 尽量使用 ` `(反引号)括起来 crate table [if not exists] `表名`( `字段名` 字段类型 [属性] [索引] [注释], `字段名` 字段类型 [属性] [索引] [注释], ...... `字段名` 字段类型 [属性] [索引] [注释] )[表的搜索引擎] [字符编码] [注释];
简单示例:
create table if not exists `table`( `sid` int, `sname` varchar(20), `age` int )charset=utf8;
注意:由于默认使用的engine就是InnoDB,这个建表时候可以不写。但是charset=utf8这个最好是加上,尤其是在CMD黑窗口中输入中文的时候,
不写这一句,会出现类似如下错误
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5' for column 'sname' at row 1
查看表结构和建表语句
-- 查看表结构 -- desc 表名; desc student; -- 查看建表语句 -- show create table 表名; show create table stu;
修改表名
-- rename table 旧名 to 新名; rename table student to stu;
修改表结构
修改表结构中包含给表添加某个新字段,修改表中某个字段,删除表中某个字段
-
给表添加某个新字段,使用
add
关键字- 默认是追加,即在最后一列添加新字段
-- alter table 表名 add 字段名 字段类型; alter table `stu` add `cid` int; - 在首位添加新字段,使用
first
关键字
-- alter table 表名 add 字段名 字段类型 first; alter table `stu` add `cname` varchar(20) first; -
修改表中某个字段,使用
change
或modify
关键字- 修改字段名称,使用
change
关键字
-- alter table 表名 change 旧字段名 新字段名 字段类型; -- 修改字段age的名称,为sage alter table `stu` change `age` `sage` int; - 修改字段类型,既可以使用
change
,还可以使用modify
-- 修改sname字段的数据类型由varchar(20)为varchar(50) -- 有以下两种方式 -- alter table 表名 change 字段名 字段名 字段类型; alter table `stu` change `sname` `sname` varchar(50); -- alter table 表名 modify 字段名 字段类型; alter table `stu` modify `sname` varchar(50); - 修改字段位置,可以配合使用
first
、after
关键字
-- 将sname字段,放置到sage后面。可以使用如下两种方式: alter table `stu` change `sname` `sname` varchar(50) after `sage`; alter table `stu` modify `sname` varchar(50) after `sage`; -- 将sid字段,放置到首位 alter table `stu` change `sid` `sid` int first; alter table `stu` modify `sid` int first; modify不能直接修改字段名称,其余能用change的地方,就可以用modify。
- 修改字段名称,使用
-
删除表中某个字段,使用
drop
关键字-- alter table 表名 drop 字段名; -- 删除cid这个字段 alter table `stu` drop `cid`;
清空表
truncate只删除数据但是不删除表结构
-- truncate table 表名; truncate table `stu`;
销毁表
-- drop table 表名; drop table `stu`;
注意:一般表结构有了,数据也有了,不要轻易修改表结构,增加、删除、修改列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?