首页
学习
活动
专区
圈层
工具
发布

Mysql从入门到放弃(三)

一、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的值

小数值(更加精准)

创建表语句

代码语言:javascript
代码运行次数:0
复制
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

混合日期和时间值

建表语句

代码语言:javascript
代码运行次数:0
复制
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不区分大小写

创建表语句

代码语言:javascript
代码运行次数:0
复制
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')
    -> );

插入数据

代码语言:javascript
代码运行次数:0
复制
insert into teststr values(15611833906,123,'我是内容','w',1)
下一篇
举报
领券