mysql数据库设计字符类型及长度
1.数字类型
小数的我就不聊了,因为有小数点的一般都是用字符串保存。关于整数,有几种可以选TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,分别占1、2、4、8字节。如果无符号,则其最大为255、65535、16777215、4294967295和18446744073709551615。一般年龄呀身高呀用tinyint就足够了,应该合理使用,保证字节不会被浪费。
然后我说一下长度,就是int(多少),其实mysql保存int的时候一般默认为11,这个我们设不设置都没什么关系,因为这只是显示的长度,
如
int(10)显示结果为0000000010
int(3)显示结果为010
字节都是占4个字节,所以在设计时可以直接int就行不用设置长度。
2.varchar和char的区别
首先说一下这2个的长度,varchar占的字节就是其用的长度+1,char占的字节就是其长度,因为varchar的长度是可变的,两者的最大长度是255(utf-8中文字符占3个字节)。
char占的字节是固定不变的,设定多少长度就是多少字节,varchar是根据其使用的长度+1,之所以还+1是为了保存其使用了的长度,一般在使用到固定长度的字段时,如手机号
码,电话号码一般都用char,当字段不固定是可以用varchar。
3.时间日期
mysql有5种表示时间值的日期和时间类型,分别为YEAR,DATE,TIME,TIMESTAMP,DATETIME。所占字节分别为1、3、3、4、8。一般我是使用datetime,直接date("Y-m-d H:i:s")进行保存,时间戳的话就用int保存就行。

mysql数据库设计字符类型及长度的更多相关文章
- mysql数据库设计规则总结
MySQL数据库设计总结 规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎. 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的 ...
- MySQL 数据库设计的“奥秘”
2 MySQL 数据库设计的"奥秘" [主题]逻辑设计:数据类型与 Schema 所谓"万丈高楼平地起",一个稳固的建筑离不开扎实的基础.同样,良好的的「逻辑设 ...
- Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题
Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...
- mySql 数据库设计原则
mysql数据库设计原则: 必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 禁止使用存储过程.视图.触发器.Event 解读:高并发大数据 ...
- java的Date类型转换为MySQL数据库的Date类型
最近遇到一个问题,需要把java中的日期类型存放为MySQL数据库的日期类型,两个日期之间需要进行转化才能进行存储,转化代码如下: package com.alphajuns.demo1; impor ...
- flask修改数据库字段的类型和长度
flask修改数据库字段的类型和长度 在将models中的字段的db.String(256)修改为db.String(1024)后,执行migrate和upgrade操作后,发现数据库并没有更新, ...
- mysql 数值与字符类型 长度梳理
上述表格中的数值类型都是定长的,也就是说,无论你存的数值是多少,多大或者多小,占用的存储字节大小都是固定的.例如,设置int(1),虽然M值是1个字符,但是它所占用的空间大小永远都是4个字节的大小,换 ...
- MYSQL数据库设计之字段选择原则
关于字段的选择其实很多地方都有进行详细的介绍,我这里只写一下我在使用过程中的心得感受.如果想要全面的了解的话,大家可以去看高性能MYSQL这一本书籍,里面有一章节介绍的特别全面,基本涉及MYSQL中全 ...
- mysql 数据库设计(转)
本规范适用于mysql 5.1或以上版本使用 数据库范式 第一范式(1NF)确保每列保持原子性 第一范式(1NF):数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项. ...
随机推荐
- Navicat创建数据库或导入数据库
双击点亮数据库 导入数据库 点击开始
- loj541
七曜圣贤 sol:我标算还没写过,似乎分块就可以过(因为数据是随机的),我写个set可以有70~80分 //C++ #include<bits/stdc++.h> using namesp ...
- vue-router的两种动态路由
第一种实质上不能算动态路由,充其量算是参数的传递 https://www.jianshu.com/p/f499d9f64958 第二种是真正的动态路由,利用 router.addRoutes()设置动 ...
- 预处理、const、static与sizeof-用宏定义得到一个字的高位和低位字节
1:代码如下: #define WORD_LO(XXX) ((byte) (word)(XXX) & 255) #define WORD_HI(XXX) ((byte) (word)(XXX) ...
- 【零基础】一文读懂CPU(从二极管到超大规模集成电路)
一.前言 我们都知道芯片,也知道芯片技术在21世纪是最重要的技术之一,但很少有人能知道芯片技术的一些细节,如芯片是如何构造的.为什么它可以运行程序.芯片又是如何被设计制造出来的等等.本文就尝试从最底层 ...
- ubuntu 18.04 64bit下如何启动向日葵远程控制端软件?
一. 背景 从向日葵官网下载了linux版向日葵远程控制端软件,解压后直接执行Sunlloginremote发现以下错误: jello@jello:~/sunlogin_remote_linux$ . ...
- LC 873. Length of Longest Fibonacci Subsequence
A sequence X_1, X_2, ..., X_n is fibonacci-like if: n >= 3 X_i + X_{i+1} = X_{i+2} for all i + 2 ...
- CentOS7 源码安装 PostgreSQL 12
PostgreSQL 12 源码安装 Table of Contents 1. 下载 2. 准备环境 3. 编译安装 4. 设置环境变量 5. 初始化数据库 6. 配置参数文件 6.1. postgr ...
- SdCardUtils
import android.os.Environment; import android.os.StatFs; public class SdCardUtils { public static bo ...
- 前端与后台可能需要使用交互的表单form,input标签
前端与后台可能需要使用交互的表单标签 form表单和input标签 textarea文本域表单 select,option下拉列表表单 fieldset和legend组合表单 label标签 form ...