当前位置: 首页 > news >正文

MySQL——数据类型和表的操作

目录

一、常用数据类型分类

二、数据值类型

三、字符串类型

四、日期类型

五、表的操作

5.1 查看所有表

5.2 创建表

5.3 查看表结构

5.4 修改表

5.5 删除表


一、常用数据类型分类

与其他编程语言类似,SQL中也规定了用于描述属性的数据类型。常用的数据类型有以下几类:

  • 数据值类型
  • 字符串类型
  • 二进制类型
  • 日期类型

二、数据值类型

类型大小说明
BIT[(M)]默认bitM表示每个值的位数,取值范围为1~64。如果省略M,则默认为1
TINYINT[(M)]1byte取值范围-2^7~2^7-1,无符号取值范围2^8-1
BOOL1byteTINYINT(1)的同义词。值为零被认为是假,非零值被认为是true
SMALLINT[(M)]2byte取值范围 -2^15 ~ 2^15-1 ,⽆符号取值范围 2^16-1 
MEDIUMINT[(M)]3byte

取值范围 -2^23 ~ 2^23-1 ,⽆符号取值范围 2^24-1

INT[(M)]4byte取值范围 -2^31 ~ 2^31-1 ,⽆符号取值范围 2^32-1
INTEGER[(M)]4byteINT[(M)]的同义词
BIGINT[(M)]8byte取值范围 -2^63 ~ 2^63-1 ,⽆符号取值范围 2^64-1
FLOAT[(M,D)]4byte单精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后7位
DOUBLE[(M,D)]8byte双精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后15位。
DECIMAL[(M[,D])]动态不存在精度损失,M是总位数,D是⼩数点后的位数。DECIMAL的最⼤位数(M)为65,最⼤⼩数位数(D)为30。如果省略M,则默认为10,如果省略D,则默认为0。M中不计算⼩数点和负数的-号,如果D为0,则值没有⼩数点和⼩数部分。

三、字符串类型

类型说明
CHAR[(M)]固定⻓度字符串, M 表⽰⻓度,以字符为单位,取值范围 0 ~ 255 , M 省略则⻓度为 1
VARCHAR(M)可变⻓度字符串, M 表⽰字符最⼤⻓度,的范围 0 ~ 65535 ,有效字符个数取决于实际字符数和使⽤的字符集
TINYTEXT⼩⽂本类型,最⼤⻓度为 255 (2^8-1)个字符,有效字符个数取决于使⽤的字符
TEXT[(M)]⽂本类型,最⼤⻓度为 65535 (2^16-1)个字符,有效字符个数取决于使⽤的字符集
MEDIUMTEXT中⽂本类型,最⼤⻓度为 16,777,215 (2^24-1)个字符,有效字符个数取决于使
⽤的字符集
LONGTEXT⼤⽂本类型,最⼤⻓度为 4,294,967,295 即 4GB (2^32-1)个字符,有效字符
个数取决于使⽤的字符集
BINARY[(M)]固定⻓度⼆进制字节,于CHAR类似,但存储的是⼆进制字节⽽不是字符串。 M 表
⽰⻓度,以字节为单位,取值范围 0 ~ 255 ,M 省略则⻓度为 1
VARBINARY(M)可变⻓度⼆进制字节,于VARCHAR类似,但存储的是⼆进制字节⽽不是字符串。
M 表⽰⻓度,以字节为单位
TINYBLOB⼩⼆进制字节类型,最⼤⻓度为 255 (2^8-1)个字节
BLOB[(M)]⼆进制字节类型,最⼤⻓度为 65535 (2^16-1)个字节
MEDIUMBLOB中⼆进制字节类型,最⼤⻓度为 16,777,215 (2^24-1)个字节
LONGBLOB⼤⼆进制字节类型,最⼤⻓度为 4,294,967,295 即 4GB (2^8-1)个字节
ENUM('value1','valu
e2',...)
• 枚举
• 从值列表 中选⼀个值
• 最多可以有 65,535 个不同的元素
• 单个元素的最⼤⻓度是 M <= 255 或 (M x w) <= 1020 ,其中 M 是元素字符⻓度, w     是字符集中字符所需的最⼤字节数
• ENUM的值在内部表⽰为整数'value1','value2' 或 ''(空字符串) 和 NULL
SET('value1','value
2',...)

• 集合
• 从值列表 'value1','value2' 中选零个或多个值
• 最多64个元素
• 单个元素的最⼤⻓度是 M <= 255 或 (M x w) <= 1020 ,其中 M 是元素字符⻓度, w 是字符集中字符所需的最⼤字节数
• SET值在内部表⽰为整数

四、日期类型

类型大小说明0值
TIMESTAMP[(fsp)]4bytes•  时间戳类型
• ⽀持范围 1970-01-01 00:00:01.000000 ~ 20388-01-19
03:14:07.499999
• 0值为 0000-00-00 00:00:00

0000-00-

0000:00:00
DATETIME[(fsp)]8bytes

• ⽇期类型和时间类型的组合

•⽀持范围 1000-01-01 00:00:00.000000 ~ 9999-12-31
23:59:59.499999
• 显⽰格式为 YYYY-MM-DD hh:mm:ss[.fraction] 
• 0值为 0000-00-00 00:00:00
0000-00-
00
00:00:00
 
DATE
 
3bytes• ⽇期类型
• ⽀持范围 1000-01-01 ~ 9999-12-31 
• 显⽰格式为 YYYY-MM-DD 
• 0值为 0000-00-00 
TIME[(fsp)]
 
3bytes
 
• 时间类型
• ⽀持范围 -838:59:59.000000 ~ 838:59:59.000000 
• 显⽰格式为 hh:mm:ss[.fraction] 
• 0值为 00:00:00 
00:00:00
YEAR[(4)]
 
1byte• 4位格式的年份
• ⽀持范围 1901 ~ 2155 
• 显⽰格式为 YYYY 
• 0值为 0 
0

• fsp 为可选设置,⽤来指定⼩数秒精度,范围从0到6,值为0表⽰没有⼩数部分,如果省略,默认
精度为0
• CURRENT_DATE和 CURRENT_DATE() 是 CURDATE() 的同义词⽤于获取当前⽇期
• CURRENT_TIME和CURRENT_TIME([fsp]) 是CURTIME() 的同义词⽤于获取当前时间
• CURRENT_TIMESTAMP和CURRENT_TIMESTAMP([fsp]) 是 NOW() 的同义词⽤于获取当前⽇期和时间

五、表的操作

5.1 查看所有表

show tables;

5.2 创建表

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:排序规则,不指定则使⽤默认排序规则

创建了一个user表,含四个列,id,name,password,birthday

5.3 查看表结构

desc 表名

  • Field:表中的列名
  • Type:列的数据类型
  • Null:该列的值是否允许为Null
  • Key:该列的索引类型
  • Default:该列的默认值
  • Extra:扩展信息

5.4 修改表

ALTER TABLE tbl_name [alter_option [, alter_option] ...];
alter_option: {
                table_options
        | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
        | 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:重命名当前的表

向users表中添加一列assets

修改asses列的长度

重命名assets列为avatar列

删除avatar列

重命名users表为employee

5.5 删除表

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

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

删除employee表

  • 删除表是⼀个危险操作,执⾏删除语句时⼀定要谨慎
  • 删除表成功后,磁盘上对应的数据⽂件也会被删除
  • ⼀次可以删除多个表,表与表之间⽤逗号隔开
http://www.dtcms.com/a/453128.html

相关文章:

  • 工作笔记-----ICache对中文显示的影响问题
  • 什么是 Maven?关于 Maven 的命令、依赖传递、聚合与继承
  • nat静态地址转化
  • 计算机网站开发要考什么证竞价培训班
  • 《算法与数据结构》第七章[算法3]:图的最小生成树
  • 文科和理科思维差异:推演与归纳
  • 雨雪“开关式”监测:0.5秒精准响应,守护户外安全
  • 做文化传播公司网站手机建立网站
  • HTML的本质——网页的“骨架”
  • 徐州双语网站制作wordpress 外链视频
  • React 快速入门:菜谱应用实战教程
  • 网站备案和域名备案网页源码app
  • Tomcat本地部署SpringBoot项目
  • 大模型开发 - 04 QuickStart_DeepSeek 模型调用流程源码解析:从 Prompt 到远程请求
  • 怎么把在微企点做响应式网站深圳专业网站建
  • 认识三极管
  • gRPC从0到1系列【23】
  • Element Plus 完整教程:从背景到实践
  • Qt编写上下界面切换效果/前进到下一个界面/后退到上一个页面/零件工艺及管理设计系统
  • 第3章 多线程服务器的适用场合与常用编程模型
  • 网站开发什么课程佛山建站模板制作
  • Lua语法(2)
  • npm、npx、pnpm 深度解析:从原理到实战的全方位指南
  • Qt Qml Drag and Drop-鼠标拖动添加组件
  • 神经网络之为什么回归任务的输出是高斯分布的均值
  • 《深入理解 Django 中间件:请求-响应生命周期与执行顺序全解析》
  • HC32项目搭建
  • 台式真空共晶炉口碑企业
  • 网站开发宣传标语网站建设基本情况
  • [效率]学习哔哩哔哩视频的的笔记|对于书签的想法思考