mysql基础数据类型

创建表的完整语法

create table 表名(
	字段名 字段类型(数字) 约束条件,
	字段名 字段类型(数字) 约束条件,
 	字段名 字段类型(数字) 约束条件
);
1.字段名和字段类型是必须的
2.数字和约束条件是可选的
3.约束条件也可以写多个 空格隔开即可
4.最后一行结尾不能加逗号
ps:编写SQL语句报错之后不要慌 仔细查看提示 会很快解决 

表字段类型之整形

'''
一个字节是八个比特,即:1byte = 8bit。
1kb= 1024byte,1m=1024kb,1G = 1024m。
'''

tinyint  1bytes   正负号(占1bit)
smallint 2bytes   正负号(占1bit)
int 	   4bytes   正负号(占1bit) 
bigint   8bytes   正负号(占1bit)


int 类型默认是带正负号的
int 可存取范围 -21474836482147483647
int unsigned  表示取消正负号 04294967295


create table l1(id int,uid int unsigned,zid int(5));
# int(5)意思最少5位 不够用0在前面补.

insert into l1 values(-100,200,12);


表字段类型之浮点型

float(10,2)
# 总共存储10位 小数点后保留2位小数
douule(20,10)
# 总共存储20位 小数点后保留10位

decimal(10,2)
# 总数位10位, 小数点后保留2位
# 如果不填写 decimal()括号数字 默认(10,0)

一般项目中 涉及到金额的 都用 decimal 

create table l2(money decimal(10,2));

三者的核心区别在于精确度不同
	float	<	double  < 	decimal

表字段类型之字符串

char(m)   

定长字符串: 
m代表字符串的长度 最大存储长度255个字符

定长的体现:
如果内容长度小于m 也会占用m的长度,例如 char(5) 数据是;1
底层也会占用5个字符。如果数据是 哈哈哈哈哈哈 超过5个字符会报错
注意要使用严格模式
非严格模式不会报错 但是会导致数据被阶段


varchar(m)

变长字符串:
m代表字符串的长度,但是与char不同 如果字符串长度小于m则存取真实
长度 例如 varchar(5) 数据 哈哈 那只会占用2个字符,如果超过5个字符也是会报错  varchar 最大储存字符长度65535字节

char:
    优点 :存取速度相对于varchar更快 因为是整存争取
    缺点 :可能浪费更多内存空间,因为不管数据大小都是存统一大小
    最大存储长度255个字符
    
    sql_mode='strict_trans_tables,pad_char_to_full_length';
# 保留定长的默认空格 一般不使用

varchar:
    优点:可以节约内存空间 储存数据真实大小长度
         最大储存字符长度65535字节
    缺点:为了精确读取 底层对多处一个报头接收长度,相对于
         char存取速度较慢
      
"""
char与varchar的使用需要结合具体应用场景
"""



text类型 可以保存很长的字符 一般用于 文章 新闻的储存

create table l1(new text);

表字段类型之时间

datetime 年月日时分秒  

展示时间跟mysql所在主机系统时区相关 中国时间 CST

date  年月日

time  时分秒

year			年

create table t17(
	id int,
  	name varchar(32),
 	register_time datetime,
 	birthday date,
 	study_time time,
 	work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
ps:以后涉及到日期相关字段一般都是系统自动回去 无需我们可以操作


year			年

create table t17(
	id int,
  	name varchar(32),
 	register_time datetime,
 	birthday date,
 	study_time time,
 	work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
ps:以后涉及到日期相关字段一般都是系统自动回去 无需我们可以操作


字段类型之枚举与集合

枚举 enum

enum('male','female')

单选,只能存储enum规定的对象 并且只能单选。


create table l1(gender enum('male','female'));
# 创建列表 字段名 gender 类型 enum 枚举待选项 'male','female'


集合 set

set('football','basktabll','ball','reading')

多选(也包括单选) 只能存储set规定的对象 可以多选 也可以单选

create table l2(hobbies set('football','basktabll','ball','reading');
# 创建一个set集合类型 数据可以多选存入



posted @   Python-moon  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示