前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql从入门到放弃(三)

Mysql从入门到放弃(三)

作者头像
会呼吸的Coder
发布2020-02-17 17:36:03
6730
发布2020-02-17 17:36:03
举报

一、MySQL表的创建

字段类型

(1) 数值类型

类型

大小

范围(有符号)

范围(无符号)

用途

tinyint

1字节

(-128,127)

(0,255)

小整数值

smallint

2字节

(-32768,32767)

(0,65535)

大整数值

int

4字节

(-2147483648, 2147483647)

(0,4294967295)

大整数值

float

4字节

单精度浮点型

double

8字节

双精度浮点型

decimal

decimal(m,d)如果m>d为m+2否则为d+2

依赖于m和d的值

依赖于m和d的值

小数值(更加精准)

创建表语句

mysql> create table testnum(
    -> ttinyint tinyint,
    -> tsmallint smallint,
    -> tint int,
    -> tfloat float(6,2),
    -> tdouble double(6,2),
    -> tdecimal decimal(6,2)
    -> );

创建表的主体结构:

create table if not exists 表名(

字段名称 字段类型 约束条件 字段说明,

字段名称 字段类型 约束条件 字段说明,

...

主键索引,

唯一索引,

常规索引

)

表插入数据语句

指定字段名称插入值

insert into 表名(字段1,字段2...) values(值1,值2...)

不指定字段插入之

insert into 表名 values(值1,值2...)

注意:

  1. decimal 小数类型 不仅能够保证数据计算更为精确 还可以节省空间
  2. float/double/decimal 在存储的时候 小数点超出了 会四舍五入
  3. 数值类型 如int /tinnyint/smallint 等 在给后面括号值的时候 没有任何的意义的 也就是说不能够去限制当前存储值的长度 除非配合约束条件zerofill 零填充的时候 才有意义
(2) 日期和时间类型

类型

大小(字节)

范围

格式

用途

date

3

1000-01-01/9999-12-31

YYYY-MM-DD

日期值

time

3

-838:59:59/838:59:59

HH:MM:SS

时间值或持续时间

year

1

1901-2155

YYYY

年分值

datetime

8

1000-01-01 00:00:00/9999-12-31 23:59:59

YYYY:MM:DD HH:MM:SS

混合日期和时间值

timestamp

4

1970-01-01 00:00:00/2038

YYYYMMDDHHMMSS

混合日期和时间值

建表语句

mysql> create table if not exists testtime(
    -> tdate date,
    -> ttime time,
    -> tyear year,
    -> tdatetime datetime default now(),
    -> ttimestamp timestamp
    -> );

日期类型注意事项:

  1. 存储日期时 我们可以使用整形类进行存储时间戳 这样做便于我们进行日期的计算
  2. timestamp 值默认不为空 默认值为当前的时间戳
(3) 字符串类型

类型

大小

用途

char

0-255字节

定长字符串

varchar

0-255字节

变长字符串

tinyblob

0-255字节

不超过255个字符的二进制字符串

tinytext

0-255字节

短文本字符串

blob

0-65535字节

二进制形式的长文本数据

text

0-65535字节

长文本数据

mediumblob

0-16777215字节

二进制形式的中等长度文本数据

mediumtext

0-16777215字节

中等长度文本数据

loneblob

0-4294697295字节

二进制形式的极大文本数据

lonetext

0-4294697295字节

极大文本数据

enum(成员1,成员2...)

65535个成员

枚举:可赋予某个枚举成员

set(成员1,成员2...)

64个城院

集合:可赋予多个集合成员 多个集合成员使用逗号隔开

字符串类型注意事项:

1) char和varchar的区别

  • char执行效率高于varchar (但占用空间大)
  • varchar相对于char节省空间
  • char和varchar 类型的长度范围都在0-255之间
  • 当给char类型传入值的长度低于给定的长度 则为使用空格填充到指定长度
  • varchar类型传入的值小于给定的长度 不会使用空格填充
  • 如果开启了不严谨报错 给定的值超出了设定的长度 会自动截取

2) enum和set的区别

  • enum只能选择多个成员中的一个成员
  • set可以选择多个成员 如果存在重复的成员则会自动去重
  • enum和set都只能选择给定成员

3) blob和text类型

  • blob和text类型都是可以存放任意大数据的数据类型
  • blob区分大小写 text不区分大小写

创建表语句

mysql> create table if not exists teststr(
    -> tchar char(11),
    -> tvarchar varchar(5),
    -> ttext text,
    -> tenum enum('w','m'),
    -> tset set('1','2','3','4')
    -> );

插入数据

insert into teststr values(15611833906,123,'我是内容','w',1)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 初级程序员 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、MySQL表的创建
    • 字段类型
      • (1) 数值类型
      • (2) 日期和时间类型
      • (3) 字符串类型
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档