MySQL——表的操作

目录

一:本节⽬标

[二: 查看所有表](#二: 查看所有表)

[2.1 语法](#2.1 语法)

三:创建表

[3.1 语法](#3.1 语法)

[3.2 实例](#3.2 实例)

[3.3 表在磁盘上对应的⽂件](#3.3 表在磁盘上对应的⽂件)

四:查看表结构

[4.1 语法](#4.1 语法)

[4.2 ⽰例](#4.2 ⽰例)

五:修改表

5.1语法

[5.2 ⽰例](#5.2 ⽰例)

[5.2.1 向表中添加⼀列](#5.2.1 向表中添加⼀列)

[5.2.2 修改某列的⻓度](#5.2.2 修改某列的⻓度)

[5.2.3 重命名某列](#5.2.3 重命名某列)

[5.2.4 删除某个字段](#5.2.4 删除某个字段)

5.2.5修改表名

六:删除表

6.1语法

[6.2 ⽰例](#6.2 ⽰例)

[6.3 注意事项](#6.3 注意事项)


一:本节⽬标

掌握创建、查看、修改和删除表。

二: 查看所有表

2.1 语法

sql 复制代码
show tables;

首先我们先使用我们的数据库java116,由于我库没有创建表 就查询, 所以返回空。

empty set:表示空结果集,表示当前数据库中没有表

三:创建表

3.1 语法

sql 复制代码
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(

field datatype [约束] [comment '注解内容']

[, field datatype [约束] [comment '注解内容']] ...

) [engine 存储引擎] [character set 字符集] [collate 排序规则];

TEMPORARY: 表⽰创建的是⼀个临时表

field:列名

datatype:数据类型

comment:对列的描述或说明(就是注释)

engine:存储引擎,不指定则使⽤默认存储引擎

(和创建库的时候一样,如果创建表的时候指定,则只针对当前表生效)

character set:字符集,不指定则使⽤默认字符集

collate:排序规则,不指定则使⽤默认排序规则

3.2 实例

创建⼀个⽤⼾表,其中包含⽤⼾编号、⽤⼾名、密码、⽣⽇,并指定字符集为utf8mb4,排序规则为utf8mb4_0900_ai_ci。

java 复制代码
-- 创建⼀个⽤⼾表,其中包含⽤⼾编号、⽤⼾名、密码、⽣⽇,并指定字符集为utf8mb4,排序规则为utf8mb4_0900_ai_ci
-- 两个横线加空格(-- )注释
# 这个也是注释

/*
这个是多行注释
/
sql 复制代码
create table if not EXISTS users(
  id bigint comment '用户编号',
	username VARCHAR(30)  COMMENT'用户名',
	`password` VARCHAR(30) comment '密码',
	 birthday date COMMENT '生日'
);

创建成功后 就会出现一个OK的字符

我们在navicat中创建表 ,然后我们在命令中查询表

-- 创建⼀个表并指定存储引擎为MyISAM

sql 复制代码
create table if not EXISTS t_myisam(
  id bigint ,
	`name` varchar(30)
)engine = myISAM;

注意:
还需要注意 其他列都以逗号结尾,最后一列的变量没有逗号。
如果我们创建的变量是关键字,我们就要使用反引号

3.3 表在磁盘上对应的⽂件

创建表后有相应的文件

innodb存储引擎,一个表中对应一个文件

其他就是myisan存储引擎对应的三个文件:MYD中my就代表my D就代表数据

四:查看表结构

4.1 语法

sql 复制代码
desc 表名;

4.2 ⽰例

Field:表中的列名

Type:列的数据类型

Null:该列的值是否允许为Null

Key:该列的索引类型

Default:该列的默认值

Extra:扩展信息

五:修改表

在项⽬的实际开发中,随着版本的迭代和需求的变更,经常会对表结构进⾏调整,⽐如向现有表中添加列,删除列,或者修改某列的列名、数据类型或⻓度,这时就需要对表进⾏修改操作

5.1语法

sql 复制代码
ALTER TABLE tbl_name [alter_option [, alter_option] ...];
alter_option: {
table_options
| ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name](新增列加到表第一列   |   加到哪一列之后就是 after+列明)
| MODIFY [COLUMN] col_name (列名)  column_definition(数据类型) [FIRST | AFTER col_name]修改列的位置  
| DROP [COLUMN] col_name
| RENAME COLUMN old_col_name TO new_col_name
| RENAME [TO | AS] new_tbl_name

tbl_name:要修改的表名
ADD:向表中添加列
MODIFY:修改表中现有的列
DROP:删除表中现有的列
RENAME COLUMN:重命名表中现有的列
RENAME [TO | AS] new_tbl_name:重命名当前的表

修改类型至少有一个,多个修改逗号隔开。

5.2 ⽰例

5.2.1 向表中添加⼀列

sql 复制代码
`-- 向表中末尾加入一列`
`alter table users add assets VARCHAR(100) comment '头像地址' after birthday;`

运行展示:

执行以下命令行

在navicat中展示:

5.2.2 修改某列的⻓度

alter table users MODIFY assets VARCHAR(200);

这样子就很直观的看到修改长度的变化:

5.2.3 重命名某列

sql 复制代码
-- 重命名某列
alter  table users rename COLUMN id to idname;

运行前后我们看一下命令:

5.2.4 删除某个字段

sql 复制代码
-- 删除列
alter table users DROP idname;

前后对比

5.2.5修改表名

sql 复制代码
-- 修改表名
alter table users rename user1;

前后查询对比

六:删除表

6.1语法

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

TEMPORARY:表⽰临时表
tbl_name:将要删除的表名

数据库删除中所有删除操作都是危险操作,在以后工作中就把删除忘记 !!!

6.2 ⽰例

要使用反引号把表引起来

我们查看以下表:就没有t_myisam

6.3 注意事项

删除表是⼀个危险操作,执⾏删除语句时⼀定要谨慎

删除表成功后,磁盘上对应的数据⽂件也会被删除

⼀次可以删除多个表,表与表之间⽤逗号隔开

相关推荐
DashVector3 小时前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
KYGALYX3 小时前
在Linux中备份msyql数据库和表的详细操作
linux·运维·数据库
檀越剑指大厂4 小时前
金仓KReplay:定义数据库平滑迁移新标准
数据库
努力成为一个程序猿.4 小时前
【Flink】FlinkSQL-动态表和持续查询概念
大数据·数据库·flink
毕设十刻5 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
liliangcsdn5 小时前
如何利用约束提示优化LLM在问题转sql的一致性
数据库·sql
熙客6 小时前
Kubernetes是如何保证有状态应用数据安全和快速恢复的
mysql·云原生·容器·kubernetes
Java爱好狂.6 小时前
分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
java·数据库·分布式·分布式id·es·java面试·java程序员
Elastic 中国社区官方博客6 小时前
通过混合搜索重排序提升多语言嵌入模型的相关性
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
倔强的石头1067 小时前
KingbaseES:从兼容到超越,详解超越MySQL的权限隔离与安全增强
数据库·mysql·安全·金仓数据库