详解MySQL数据类型之数字类型正确使用
来源:Asp之家 发布时间:2010-06-20 15:02:00
无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用MySQL数据类型有充分的认识。下面我就将我的一点心得写出来跟大家分享。
MySQL数据类型之数字类型
数字类型按照我的分类方法分为三类:整数类、小数类和数字类。
我所谓的“数字类”,就是指DECIMAL和NUMERIC,它们是同一种类型。它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存的;他的值的每一位(包括小数点)占一个字节的存储空间,因此这种类型耗费空间比较大。但是它的一个突出的优点是小数的位数固定,在运算中不会“失真”,所以比较适合用于“价格”、“金额”这样对精度要求不高但准确度要求非常高的字段。
小数类,即浮点数类型,根据精度的不同,有FLOAT和DOUBLE两种。它们的优势是精确度,FLOAT可以表示绝对值非常小、小到约1.17E-38(0.000...0117,小数点后面有37个零)的小数,而DOUBLE更是可以表示绝对值小到约2.22E-308(0.000...0222,小数点后面有307个零)的小数。
FLOAT类型和DOUBLE类型占用存储空间分别是4字节和8字节。如果需要用到小数的字段,精度要求不高的,当然用FLOAT了。可是说句实在话,我们“民用”的数据,哪有要求精度那么高的呢?这两种类型至今我没有用过――我还没有遇到适合于使用它们的事例。
用的最多的,最值得精打细算的,是整数类型。从只占一个字节存储空间的TINYINT到占8个字节的BIGINT,挑选一个“够用”并且占用存储空间最小的类型是设计数据库时应该考虑的。TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT占用存储空间分别为1字节、2字节、3字节、4字节和8字节,就无符号的整数而言,这些类型能表示的最大整数分别为255、65535、16777215、4294967295和18446744073709551615。
如果用来保存用户的年龄(举例来说,数据库中保存年龄是不可取的),用TINYINT就够了;九城的《纵横》里,各项技能值,用SMALLINT也够了;如果要用作一个肯定不会超过16000000行的表的AUTO_INCREMENT的IDENTIFY字段,当然用MEDIUMINT不用INT,试想,每行节约一个字节,16000000行可以节约10兆多呢!


猜你喜欢
- 自己在学习过程中也遇到了类似的问题:比如,后台是想做成这样子的:但是实际则是这样的:解决方法:通过隐藏表单控件<input type=
- 学习目标:学会使用windows系统安装MySQL数据库,供大家参考,具体内容如下1.打开浏览器输入SQL官网的下载地址:下载链接2.下载好
- 1.命名规范1.库名、表名、字段名必须使用小写字母,并采用下划线分割。a)MySQL有配置参数lower_case_table_names,
- 与C语言一样,Go语言中同样有指针,通过指针,我们可以只传递变量的内存地址,而不是传递整个变量,这在一定程度上可以节省内存的占用,但凡事有利
- 一、题目描述A:先输出提示语句,并接受用户输入的年、月。B:根据用户输入的年,先判断是否是闰年。C:根据用户输入的月来判断月的天数。D:用循
- import 认识go的import有两种形式第一种是GOPATH下项目文件管理第二种是Go Modules初学状态我用的vscode.在两
- 一、爬虫是什么? 在进行大数据分析或者进行数据挖掘的时候,数据源可以从某些提供数据统计的网站获得,也可以从某些文献或内部资料中获得
- Python最基本的数据结构是序列(列表/元组)。一个序列中的每个元素都分配有一个数字- 它的位置或索引。第一个索引是0,第二个
- 今天写了这样的代码 DECLARE @atr NVARCHAR(20) SET @atr = NULL IF(@atr = NULL) BE
- (本章节主要是一些python的基础语法,具体内容不够详细,以pycharm下调试产生的部分代码为主)(python语法的详细内容请参考官方
- python tkinter按钮Button的使用创建和设置窗口from tkinter import *#创建窗口对象root = Tk(
- 这个游戏就是实现键盘上输入不同的数字,将圆分割成不同的几个部分,每部分用不同的颜色来实现。导入包导入随机包,pygame,系统包,time时
- keras 深度学习框架中get_value函数运行越来越慢,内存消耗越来越大问题问题描述如上图所示,经过时间和内存消耗跟踪测试,发现是ke
- 直接使用model2=model1会出现当更新model2时,model1的权重也会更新,这和自己的初始目的不同。经评论指出可以使用:mod
- 简介Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建
- 本文的目的是探讨JS相关技术,并不是以杀毒为主要目的,杀毒只是为讲解一些JS做铺垫的,呵呵,文章有点长,倒杯咖啡或者清茶慢慢看,学习切勿急躁
- PHP htmlentities() 函数实例把一些字符转换为 HTML 实体:<?php $str = "<&
- 本文实例为大家分享了python学生信息管理系统的具体代码,供大家参考,具体内容如下#编译环境为python3 #学生信息管理系统包括基本的
- 代码如下:td=date() '此次为设置当前日期,主要是为了调试方便,实际应用中可以使用当天日期.. str=
- 一、模拟数据库数据1-1 创建数据库及表脚本 - vim slap.sh#!/bin/bash HOSTNA