前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL DDL 操作

MySQL DDL 操作

作者头像
Demo_Null
发布2020-09-28 17:39:25
1.2K0
发布2020-09-28 17:39:25
举报
文章被收录于专栏:Java 学习
在这里插入图片描述
在这里插入图片描述

1.1 数据库操作

1.1.1 库创建相关操作

语法

代码语言:javascript
复制
# 创建名为 db_name 的数据库
create database db_name;

# 创建并设置字符集,可简写 charset
create database db_name character set char_name;

# db_name 数据库不存在时创建名为 db_name 的数据库
create database if not exists db_name;

# 使用名为 db_name 的数据库
use db_name;

# 查看正在使用的数据库
select database();

# 查询指定数据库
show create database db_name;

示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1.2 库修改相关操作

语法

代码语言:javascript
复制
# 修改名为 db_name 的数据库的字符集为 char_name
alter database db_name charset char_name;

# 不建议修改数据库名称,若必须修改名称建议创建新的数据库然后将表复制过去。

示例

在这里插入图片描述
在这里插入图片描述

1.1.3 库删除相关操作

语法

代码语言:javascript
复制
# 删除名为 db_name 的数据库
drop database db_name;

# 若 db_name 存在则删除
drop database if exists db_name;

示例

在这里插入图片描述
在这里插入图片描述

1.2 表操作

1.2.1 表创建相关操作

语法

代码语言:javascript
复制
# 创建名为 tb_name 的表,最后一个字段后不加 , 
create table tb_name(
  	 col_name type,
     col_name type,
     ···
     col_name type
);

# 查询当前使用的数据库中所有表
show tables;

# 查询名为 tb_name 的表结构
desc tb_name;

# 查询名为 tb_name 表中所有数据
select * from tb_name;

# 查询名为 tb_name 表的建表语句
show create table tb_name;

示例

在这里插入图片描述
在这里插入图片描述

1.2.2 表修改相关操作

语法

代码语言:javascript
复制
# 将 old_tb_name 表名修改为 new_tb_name
alter table old_tb_name rename to new_tb_name;

# 给 tb_table 表怎加一列名为 col_name 类型为 type 的列
alter table tb_name add col_name type;

# 修改 tb_name 表 old_col_name 列列名和数据类型
alter table tb_name change old_col_name new_col_name type;

# 修改 tb_name 表 col_name 列数据类型
alter table tb_name modify col_name type;

示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2.3 表删除相关操作

语法

代码语言:javascript
复制
# 删除 tb_table 表中名为 col_name 的列
alter table tb_name drop col_name;

# 删除名为 tb_name 的表
drop table tb_name;

示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 数据类型

1.3.1 概述

MySQL 常有的数据类型如下 整数类型:bitbooltinyintsmallintmediumintintbigint 浮点类型:floatdoubledecimal 字符串类型:charvarchartinytexttextmediumtextlongtexttinyblobblobmediumbloblongblob 日期类型:DateDateTimeTimeStampTimeYear

1.3.2 整数类型

数据类型

含义(有符号数)

tinyint(n)

1个字节 范围 [-27 ~ 27 - 1]

smallint(n)

2个字节 范围 [-215 ~ 215 - 1]

mediumint(n)

3个字节 范围 [-223 ~ 223 - 1]

int(n)

4个字节 范围 [-231 ~ 231 - 1]

bigint(n)

8个字节 范围 [-263 ~ 263 - 1]

  取值范围如果加了unsigned,则变为无符号数,最小值为 0,最大值阶次加 1。例如:tinyint unsigned 取值范围为:[0 ~ 28 - 1]。无论括号中 n 等于多少,int 永远占 4 个字节 n 表示的是显示宽度,不足的用 0 补足,超过的无视长度而直接显示整个数字,但需要整型设置了 unsigned zerofill 才有效。

示例

在这里插入图片描述
在这里插入图片描述

  为什么只使用了 zerofill 也会补 0,我们查看建表语句会发现,使用了 zerofill 会自动将无符号数提升为有符号数,等同于使用了 unsigned zerofill 。

在这里插入图片描述
在这里插入图片描述

1.3.3 浮点类型

  float 数值类型用于表示单精度浮点数值,而 double 数值类型用于表示双精度浮点数值,float 和 double 都是浮点型,而 decimal 是定点型。decimal 采用的是四舍五入,float 和 double 采用的是四舍六入五成双(就是 5 以下舍弃 5 以上进位,如果需要处理数字为 5 的时候,需要看 5 后面是否还有不为 0 的任何数字,如果有,则直接进位,如果没有,需要看 5 前面的数字,若是奇数则进位,若是偶数则舍掉),使用浮点类型时建议选择 decimal。

数据类型

说明

float(m,n)

单精度浮点型 8位精度(4字节) m 总个数,n小数位

double(m,n)

双精度浮点型 16位精度(8字节) m 总个数,n小数位

decimal(m,n)

定点类型 总个数 m < 65,小数位 n < 30 且 n<m

1.3.4 字符串类型

数据类型

说明

char(n)

固定长度,最多 28 - 1 个字符

varchar(n)

固定长度,最多 216 - 1 个字符

tinytext

可变长度,最多 28 - 1 个字符

text

可变长度,最多 216 - 1 个字符

mediumtext

可变长度,最多 224 - 1 个字符

longtext

可变长度,最多 232 - 1 个字符

tinyblob

二进制数据,仅255个字符

blob

二进制数据,最大限制到65K字节

mediumblob

二进制数据,限制到16M字节

longblob:

二进制数据,可达4GB

注意  ① char(n) 固定长度,char 不管是存入几个字符,都将占用 4 个字节,故 char(n) 若存入字符数小于 n,则以空格补于其后,查询之时再将空格去掉。所以 char 类型存储的字符串末尾不能有空格。  ② varchar 是存入的实际字符数 +1 个字节(n <= 255)或 2 个字节(n > 255)。  ③ varchar可指定长度,text 不能指定长度,也不能有默认值。text 是实际字符数 +2 个字节。

1.3.5 日期类型

数据类型

说明

date

日期 2020-06-29

time

时间 12:12:12

datetime

日期时间 2020-06-09 12:12:12

timestamp

时间戳

注意  ① 若定义一个字段为 timestamp,该字段存放的时间戳会随表中其他字段修改的时候自动刷新。  ② 记录时间的建议使用 bigint 类型,将时间转换为时间戳,如将时间转换为毫秒进行存储,方便使用索引。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 数据库操作
    • 1.1.1 库创建相关操作
      • 1.1.2 库修改相关操作
        • 1.1.3 库删除相关操作
        • 1.2 表操作
          • 1.2.1 表创建相关操作
            • 1.2.2 表修改相关操作
              • 1.2.3 表删除相关操作
              • 1.3 数据类型
                • 1.3.1 概述
                  • 1.3.2 整数类型
                    • 1.3.3 浮点类型
                      • 1.3.4 字符串类型
                        • 1.3.5 日期类型
                        相关产品与服务
                        云数据库 MySQL
                        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档