【MySQL】表的操作

文章目录

下面学习MySQL中对表的一些操作指令集

创建表

语法:

sql 复制代码
CREATE TABLE table_name (
 field1 datatype,
 field2 datatype,
 field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

其中

  • table_name表示创建表的名字
  • fieldx 表示列名
  • datatype表示该列的类型
  • character set 字符集 如果没有设置字符集就默认使用所在数据库的字符集,校验规则也是一样
  • 指定该表的存储引擎类型,否则就是使用系统默认的存储引擎

创建表的案例

下面演示创建表的实例,在创建表的之前需要使用use指令指定要操作的数据库。

sql 复制代码
create  table users (
   id int,
   name varchar(20) comment '用户名',
   password char(32) comment '密码是32位的md5值',
   birthday date comment '生日'
) character set utf8 engine MyISAM;

创建完成之后可以使用desc指令查看

说明:

不同的存储引擎,创建表之后产生的文件不一样,我们进入/var/lib/mysql/db1/目录就能找到我们生成的表的的表文件

上图是使用MySAM存储引擎生成的表文件,下面换成innodb演示:

我们发现使用innodb存储引擎创建表生成的表文件只有一个。那这些文件分别存储什么内容呢?

其实不同的版本下,这些存储引擎生成的文件类型也是不同的。

  • ·MYD文件存储表的数据
  • .MYI文件存储表的索引
  • .sdi文件存储表的元数据
  • .frm文件存储表的结构定义
  • .idb存储数据和索引

查看表的结构

查看库中所有表

使用show tables指令可以查看当前数据库的所有表名:

下面介绍如何查看表的详细信息

desc 表名

show create table

可以使用show create table指令查看详细的表信息,将号换成\G可以帮我们格式化显示 ,有助于我们查看。

通过上图我们可以看到,其实mysql真正建表的语句和我们输入的建表语句是有些差别的,这是mysql帮我们做了优化。

修改表

添加列

sql 复制代码
ALTER TABLE table_name ADD column_name column_definition;

添加一列到table_name 表中,列名为column_name,数据类型为column_definition

修改列

sql 复制代码
ALTER TABLE table_name MODIFY column_name new_definition;

table_name表中的column_name列的所有信息替换为new_definition,不包括列名。

修改列名

sql 复制代码
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;

table_name表中的column_name列的所有信息替换为new_definition,包括列名。

删除列

sql 复制代码
ALTER TABLE table_name DROP column_name;

删除table_name表中的column_name列。

修改表引擎

sql 复制代码
ALTER TABLE table_name ENGINE = new_storage_engine;

将表的引擎设置为new_storage_engine

修改表名

sql 复制代码
RENAME TABLE old_table_name TO new_table_name;

将表名修改为new_table_name

修改表的默认字符集和校验规则

sql 复制代码
ALTER TABLE table_name DEFAULT CHARSET=new_charset COLLATE=new_collation;

修改表的字符集为new_charset,校验规则为new_collation

删除表

sql 复制代码
drop table table_name;
相关推荐
极限实验室1 小时前
INFINI Labs 产品更新 - Easysearch 2.1.0 新增高性能 Rules 规则引擎插件,数据探索 Discover 等
数据库·产品
鹿角片ljp3 小时前
苍穹外卖 day05:店铺营业状态设置与Redis入门实战
数据库·redis·缓存
m0_743470374 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
Demon_Hao4 小时前
JAVA通过Redis实现Key分区分片聚合点赞、收藏等计数同步数据库,并且通过布隆过滤器防重复点赞
java·数据库·redis
掘根4 小时前
【微服务即时通讯】消息转发子服务
数据库·oracle
喜欢喝果茶.4 小时前
SQL 预处理
数据库·sql
数据科学小丫6 小时前
Python 数据存储操作_数据存储、补充知识点:Python 与 MySQL交互
数据库·python·mysql
Knight_AL6 小时前
Nacos 启动问题 Failed to create database ’D:\nacos\nacos\data\derby-data’
开发语言·数据库·python
xianjian09127 小时前
MySQL 的 INSERT(插入数据)详解
android·数据库·mysql
知识分享小能手7 小时前
MongoDB入门学习教程,从入门到精通,MongoDB入门指南 —— 知识点详解(2)
数据库·学习·mongodb