mysql基础之基本数据类型

原文:mysql基础之基本数据类型

列类型学习

mysql三大列类型

整型

 Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill

字符串型 

Char(M)

Varchar(M)

Text 文本类型

 

日期时间类型

Date 日期

Time 时间

Datetime 时间时间类型

Year 年类型

整形:

整型系列所占字节与存储范围的关系.

定性: 占字节越多,存储范围越大.

下图: 是具体的数字分析

 

Tinyint 1个字节 8个位  0 - 2^8-1  ,  0-255

                -2^7 ----> +2^7-1

 

 

分析:

Smallint 2个字节 , 16位  0----2^16-1 = 65535

                -2^15 ---> +2^15-1, -32768 -> 32767

 

一般而言,设某类型 N字节

N字节 , 8N位.

0 ----> 2^8N-1

 

-2^(8N-1)  ---> +2^(8N-1) -1; 

 

对于int型 : 占的字节越多,存储的范围也越大.

整型系统的可选参数 : XXint(M)  unsigned zerofill

例: age tinyint(4) unsigned ,或者  stunum smallint(6) zerofill;

Unsigned: 代表此列为无符号类型, 会影响到列的存储范围. (范围从0开始)

(不加unsinged, 则该列默认是有符号类型,范围从负数开始)

 

 

 

Zerofill: 代表0填充, 即: 如果该数字不足参数M位, 则自动补0, 补够M位.

1: 如果没有zerofill属性, 单独的参数M,没有任何意义.

2:如果设置某列为zerofill,则该列已经默认为 unsigned,无符号类型.

小数型

 

Float(M,D),decimal(M,D)

  M叫"精度" ---->代表"总位数",而D是"标度",代表小数位.(小数右边的位数)

 

 

浮点数占多大的空间呢

答: float 能存10^38 ,10^-38

如果M<=24, 点4个字节,否则占8字节

 

用来表示数据中的小数,除了float---浮点.

还有一种叫定点decimal,定点是把整数部分, 和小数部分,分开存储的.

比float精确,他的长度是变化的.

 

 

 

空间上的区别:

Float(M,D), M<=24, 4个字节, 24 <M <=53, 8个字节

Decimal () ,变长字节.

 

区别: decimal比float精度更高, 适合存储货币等要求精确的数字,

见下例:

字符串性:

Mysql 字符串类型

Char 定长类型

Char(M)  , M 代表宽度, 0<=M<=255之间

例:Char(10)  ,则能输入10个字符.

 

Varchar 变长类型

Varchar(M), M代表宽度, 0<=M<=65535(以ascii字符为例,utf822000左右)

0000000000

00\0\0\0\0\0 (char型,如果不够M个字符,内部用空格补齐,取出时再把右侧空格删掉)  

注:这意味着,如果右侧本身有空格,将会丢失.

通过concat函数可以验证!

M 代表字符长度,和是否是汉字和字母无关。

Blob,是二进制类型,用来存储图像,音频等二进制信息.

意义: 2进制,0-255都有可能出现.

Blob在于防止因为字符集的问题,导致信息丢失.

比如:一张图片中有0xFF字节, 这个在ascii字符集认为非法,在入库的时候,被过滤了.

enum选择一个,set选择多个

日期时间类型

Year 年(1字节)    95/1995,  [1901-2155],

在insert时,可以简写年的后2位,但是不推荐这样.

[00-69] +2000

[70-99] + 1900,   

即: 填2位,表示 1970 - 2069

 

Date 日期  1998-12-31

范围: 1000/01/01 ,9999/12/31

 

Time 时间  13:56:23

范围: -838:59:59 -->838:59:59

datetime 时期时间  1998-12-31 13:56:23

范围: 1000/01//01 00:00:00  ---> 9999:12:31 23:59:59

 

timestamp

 

时间戳: 

是1970-01-01 00:00:00 到当前的秒数. 

一般存注册时间,商品发布时间等,并不是用datetime存储,而是用时间戳.

因为datetime虽然直观,但计算不便.

时间: 2024-09-15 04:06:58

mysql基础之基本数据类型的相关文章

PHP 和 MySQL 基础教程(四)

mysql|基础教程 MySQL 中的 SQL 对于 MySQL ,第一件你必须牢记的是它的每一行命令都是用分号 (;) 作为结束的,但--没有完全绝对的事,在这儿也是一样. 前面我曾经讲到,当一行 MySQL 被插入在 PHP 代码中时,最好把后面的分号省略掉,例如: mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', '$last_name') "); 这是因为 PHP

mysql基础笔记

1.mysql的安装图解. 2.不同数据库的区别对程序的影响 1)数据类型 2)分页的问题 sql的分页相当简单,不同数据库的分页是不同的.sql server也比较简单,只有oracle比较难一些. 3)数据库的自动递增字段 3.mysql的日期处理 4.连上java连上mysql验证实例: import java.sql.*; public class testmysqlconnection { /** * @param args */ public static void main(Str

20分钟MySQL基础入门_Mysql

开始使用 MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成, 如图所示的一个表格: 表头(header): 每一列的名称;列(row): 具有相同数据类型的数据的集合;行(col): 每一行用来描述某个人/物的具体信息;值(value): 行的具体信息, 每个值必须与该列的数据类型相同; 登录MySQL mysql -h 127.0.0.1 -u 用户名 -p mysql -D 所选择的数据库名 -h

PHP 和 MySQL 基础教程(三)

mysql|基础教程 用 cookies 来跟踪识别用户 让我们来看看保存在浏览器中的内容.如果你用的是 IE5 ,在 windows 目录下有一个 cookies 的目录,里面有很多文本文件,文件名都是类似于 wudong@15seconds[1].txt 这样的,这就是浏览器用来保存值的 cookies 了.在以前的 IE 版本中, cookies 的内容是可以察看的,但现在内容已经被编码了.在浏览器得到一个 Web 页面之前,它会先看这个页面的域名,是否在 cookie 中存在,如果有相比

PHP 和 MySQL 基础教程(二)

mysql|基础教程 数据验证 清理空格 trim 函数将清除数据头尾的空格,它的语法是: trim ($first_name); 必填字段的处理 在你数据库中,有些字段时必须填写的.这样对应于 HTML 表单的相应的字段也不允许空出来不填.当然,这个检验处理的过程可以用客户端的 JavaScript 脚本来处理,但既然我们讲的是 PHP ,就还使用 PHP 来处理吧.下面的代码检查用户的姓是否输入: if (ereg(".", $first_name) == 1) { print (

PHP 和 MySQL 基础教程(一)

mysql|基础教程 HTML 和 PHP .MySQL 的交互 为什么要用到数据库? World Wide Web (WWW) 不仅仅是一个提供信息的地方.如果你有什么东西,作一个网站,同样可以和全世界的人一起分享.但是,这并不是一件很容易的事.当网站越做越大时,你可能会遇到这样的问题: 网站包含了太多的东西,使得访问者不能够很快得得到他们想要的东西.这个问题在某种程度上对一个网站而言是致命的. 访问者想要向你提供信息,而且这些信息必须保存下来以备后用. 上面的两个问题,都可以通过数据库来解决

mysql基础使用

mysql基础使用   1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码      1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2.连接到远程主机上的MY

mysql基础之对库表操作

原文:mysql基础之对库表操作 查看一下所有的库,怎么办? Mysql>Show databases;   选库语句: Use 库名 创建一个数据库: create database 数据库名 [charset 字符集] 删除一个数据库: drop database 数据库名; 把数据库改改名? Mysql中,表/列可以改名,database不能改名. phpMyAdmin似乎有这功能? 他是建新库,把所有表复制到新库,再删旧库完成的. 当选了库之后,我们面对的是表 查看库下面的所有表: sh

mysql基础之视图

原文:mysql基础之视图 在查询中,我们经常把查询结果 当成临时表来看. View是什么? View可以看一张虚拟表. 是表通过某种运算得到的一个投影. 既然视图只是表的某种查询的投影,所以主要步骤在于查询表上.查询的结果命名为视图就可以了. 视图与表的关系 视图是表的查询结果,自然表的数据改变了,影响视图的结果.   视图改变了呢? 0: 视图增删改也会影响表 1: 但是,视图并是总是能增删改的.   视图某种情况下,是可以修改的. 要求: 视图的数据和表的数据 11对应. 就像函数的映射.