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 注意事项

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

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

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

相关推荐
程序员水自流3 小时前
MySQL InnoDB存储引擎关键核心特性详细介绍
java·数据库·mysql
阿巴~阿巴~3 小时前
Ubuntu 20.04 安装 Redis
linux·服务器·数据库·redis·ubuntu
想睡hhh4 小时前
mysql表的操作——mysql表的约束
数据库·mysql
shaohaoyongchuang4 小时前
9-mysql编程
数据库
m0”-“0m4 小时前
MySQL、Nignx和Docker在Linux上的安装详解
linux·数据库·mysql
野犬寒鸦4 小时前
从零起步学习Redis || 第十章:主从复制的实现流程与常见问题处理方案深层解析
java·服务器·数据库·redis·后端·缓存
极限实验室5 小时前
Elasticsearch 备份:snapshot 镜像使用篇
数据库·elasticsearch
武子康5 小时前
Java-145 深入浅出 MongoDB 基本操作详解:数据库查看、切换、创建集合与删除完整教程
java·数据库·sql·mysql·mongodb·性能优化·系统架构
阿巴~阿巴~6 小时前
Centos 7/8 安装 Redis
linux·服务器·数据库·redis·centos