设为首页
收藏本站
开启辅助访问
繁体中文
提现
切换到宽版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
资源网
商业源码
分享源码
零氪游戏
SEO学习网
VIP
永久服务器
快捷导航
搜索
搜索
本版
文章
帖子
用户
永久服务器
私密影视你懂得
戴尔服务器代理商
NK博客-SEO的天堂
阿里云宝宝
华为服务器代理商
快排狗SEO
猫先森SEO
破解游戏平台
精品域名任君选购
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
6/月、50/年、200/永久。
猫先森网络资源站
»
论坛
›
站长资讯
›
网站教程
›
小贝_mysql建表以及列属性_MySQL-mysql教程
返回列表
查看:
84
|
回复:
0
[PHP]
小贝_mysql建表以及列属性_MySQL-mysql教程
[复制链接]
程序猿
程序猿
当前离线
积分
34274
论坛元老
积分
34274
主题
17031
UID
1347
M币
67
贡献
17176
发消息
发表于 2017-5-12 16:11:00
|
显示全部楼层
|
阅读模式
mysql建表以及列属性
简要:
一、建表原则
二、详细的列属性说明
一、建表原则 建表: 其实就是声明列的过程,数据最终是以文件的形式放在硬盘(内存)
列: 不同的列类型占的空间不一样. 选列的原则: 够用,不浪费
二、列类型以及属性说明 列类型有: 整形、浮点型、字符型、日期/时间型
2.1、整形 tinyint/smallint/mediumint/int/bigint
2.1.1、详解tinyint 一个字节
[][][][][][][][]共8位
假设8为都为0 ==》 转化为十进制 0
假设8为都为1 ==》 转换为十进制 2^8-1
由于计算机也能够存储负数,并采用最高位为符号位
最高位为0代表正数 最高位为1代表负数
当最高位为0时:
[0][][][][][][][] => 0~2^7-1 转化为十进制 0~127
当最高位为1时
[1][][][][][][][] => 0~-2^7 转化为十进制 0~-128
列
字节
无符号
有符号
tinyint
1
0~255
-128~127
smallint
2
0~2^16-1
-2^15~2^15
medium
3
0~2^24-1
-2^23~2^23
int
4
0~2^32-1
-2^31~2^31
bigint
8
0~2^64-1
-2^63~2^63
2.1.2、实例
2.1.3、整形列可选属性: not null unsigned zerofill
总结:
a、声明整数型列需要0填充时,它一定是无符号的
b、进行0填充时,不会改变其大小值
2.2、浮点型
对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节。
float与decimal的区别:decimal更精确
2.3、字符型
char:定长char(M),M代表宽度,即可容纳的字符数
varchar:变长char(M),M代表宽度,即可容纳的字符数
区别:
a、效率方面看,char
即char会有完全利用的情况,而varchar则不会。因为同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度
b、针对尾部(从左往右的方向看),char会过滤尾部有空格的情况,而varchar不会。因为char存储的字符少于定义的字符长度时,就会对尾部进行空格填充.进行展示时,再把尾部的空格去掉
案例:
CREATETABLE vc (v VARCHAR(4), c CHAR(4));
INSERTINTO vc VALUES ('ab ', 'ab ');
SELECTCONCAT(v, '+'), CONCAT(c, '+') FROM vc;
字节问题:
varchar(N), 这里的N是指字符数,并不是字节数.占用的字节数与编码有关
utf-8,一个汉字3字节 英文字母1字节
MySQL 5.0以上的版本:
1.一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,仅是实际字节长度有所区别
3.MySQL检查长度,可用SQL语言:
select LENGTH(fieldname) from tablename来查看
2.4、日期与时间型
2.4.1、 year
总结
MySQL以YYYY格式检索和显示YEAR值。范围是1901到2155。
可以指定各种格式的YEAR值:
· 四位字符串,范围为'1901'到'2155'。
· 四位数字,范围为1901到2155。
· 两位字符串,范围为'00'到'99'。'00'到'69'和'70'到'99'范围的值被转换为2000到2069和1970到1999范围的YEAR值。
· 两位整数,范围为1到99。1到69和70到99范围的值被转换为2001到2069和1970到1999范围的YEAR值。请注意两位整数范围与两位字符串范围稍有不同,因为你不能直接将零指定为数字并将它解释为2000。你必须将它指定为一个字符串'0'或'00'或它被解释为0000。
2.4.2、 time
MySQL以'HH:MM:SS'格式检索和显示TIME值(或对于大的小时值采用'HHH:MM:SS'格式)。TIME值的范围可以从'-838:59:59'到'838:59:59'。小时部分会因此大的原因是TIME类型不仅可以用于表示一天的时间(必须小于24小时),还可能为某个事件过去的时间或两个事件之间的时间间隔(可以大于24小时,或者甚至为负)。
2.4.3、 date
当你只需要日期值而不需要时间部分时应使用DATE类型。MySQL用'YYYY-MM-DD'格式检索和显示DATE值。支持的范围是'1000-01-01'到 '9999-12-31'。
2.4.4、 datetime
总结:虽然mysql有时间与日期的类型。但在一般的开发过程中涉及到跟时间方面的列类型时,通常使用int即整形类型。主要考虑到开发方面的方便,而且整形效率高。
小贝
,
以及
,
属性
,
教程
相关帖子
•
hbase表属性包括什么 - hbase怎么查看表
•
咪噜游戏网《仙魔变》角色属性
•
《魔灵觉醒》装备的真相 随机属性附送
•
王者荣耀 暖男为女友制作的教科书般的教程 详细到官方教程都羞愧
•
下游戏推荐:《属性与生活》非常真实的模拟人生
•
《3D少女Sasha》捏脸以及用时尚服饰装扮少女角色
•
《我的属性》休闲益智类手游,来测测你的属性吧
•
《梦幻之星:伊多拉传说》属性相克,星座变身,逆向冲击!
•
2022年抖音最近很火的游戏直播:挤地铁教程+源码+软件
•
2022多语言IM即时通讯源码-支持7端互通通讯/带教程
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
在我站开通SVIP可同时获得17个站点VIP资源
立即登录
或
立即注册
快速回复
返回顶部
返回列表