不同软件中的数据类型
来源:互联网 发布:物流管理信息系统软件 编辑:程序博客网 时间:2024/05/19 20:37
1、python中的数据类型
1.1数据的组成
python中数据包含三部分: 身份、类型、值
身份-例如给变量a赋值,a=1,id(a)可得到a的身份,为长整型,代表内存地址。
1.2数据类型
python中不需要声明数据类型,在给变量赋值;时自动生成数据类型。
python中的数据类型包括:
数值型(int,long,float,complex)、
布尔型(boolean)、
字符串(string)、
列表(list)、
元组(tuple)、
字典(dict)
python中通过第三方库可以引入更复杂的数据类型,如矩阵,但都是通过这些基本类型衍生出来的。
1.2.1 列表
列表的合并 append()向原列表的尾部追加一个列表,该列表作为一个元素占一个索引位 extend()向原列表的尾部追加另一个列表中的元素,另一列表有几个元素就占几个索引位 +看起来和extend()一个效果,但是生成了一个新的列表来存放 +=和extend一个效果
1.3数据的可变与不可变
变量被创建时存于内存之中,变量被赋值指的是变量指向了该内存地址。数据的不可变指的是内存中的数据不会变,当变量被赋予新值时,变量指向了新的地址。而列表和字典这两种可变类型,当变量被赋新值时,变量指向的地址不变,地址中的内容变化。
1.4变量类型转换
对有些操作如字符串拼接会自动类型转换进行输出,而有些类型不同类型混合操作则会出错,如a=“1”,b=a+3
此时就需要类型转换
2、mysql中的数据类型
2.1、字符数据
BINARY(N)
VARBINARY(N)
BINARY和VARBINARY存储的是二进制的字符串,而非字符型字符串。也就是说,BINARY和VARBINARY没有字符集的概念,对其排序和比较都是按照二进制值进行对比。BINARY(N)和VARBINARY(N)中的N指的是字节长度,对于BINARY(10),其可存储的字节固定为10。
CHAR(N)
VARCHAR(N)
CHAR(N)和VARCHAR(N)中N指的是的字符长度。对于CHAR(10),其可存储的字节视字符集的情况而定。
2.2、日期时间数据
每种日期时间类型都有一个有效值范围,拆除这个范围系统就会进行错误提示,并将以零值(上表为零值展示表)进行存储
timestamp
1.若想将timestamp查询的值返回为数字,应在timestamp列后添加”+0”。
2.系统会为timestamp字段自动创建默认值”current_timestamp(系统日期)”。如果有第二个timestamp,则默认值为零值。
3.MySQL规定timestamp类型字段只能有一列默认值为current_timestamp。
4.时区相关。当插入日期时,会先转换成本地时区后存放;从数据库取出时,需要将日期转换为本地时区后显示。
5.timestamp受MySQL版本和服务器SQLMode影响较大。本文是以MySQL5.0为例。
year
1.当应用只需要记录年份时,year比date更省空间
2.year有两种格式:yy和yyyy。yyyy的范围是1901~2155,yy的范围是1970~2069
00~69表示2000~2069,70~99表示1970~1999。
datetime
1.不严格语法:任何标点符号都可以做日期部分或时间部分的间隔符 eg:’38[11&23 11&30+12’ 等同于 ‘38-11-23 11:30:12’ 多能够正常插入。
2.没有间隔符的字符串,如果是合法的,也将成功保存。eg:19961119083028将会被成功保存为 1996-11-19 08:30:28
3.输入错误的时间将会报错并保存为零值。eg:1998-13-23 11:30:12 没有13月份,所以这是个错误的时间,将会报错,并保存为零值
2.3、数值型数据
DECIMAL
DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下:
·M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认值是10。
·D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。
说明:float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。
如DECIMAL(5,2) 的最大值为9 9 9 9 . 9 9,因为有7 个字节可用。
M 与D 对DECIMAL(M, D) 取值范围的影响
类型说明取值范围(MySQL < 3.23)取值范围(MySQL >= 3.23)
MySQL < 3.23 MySQL >=3.23
DECIMAL(4, 1) -9.9 到 99.9 -999.9 到 9999.9
DECIMAL(5,1) -99.9 到 999.9 -9999.9 到 99999.9
DECIMAL(6,1) -999.9 到 9999.9 -99999.9 到 999999.9
DECIMAL(6,2) -99.99 到 999.99 -9999.99 到 99999.99
DECIMAL(6,3) -9.999 到 99.999 -999.999 到 9999.999
在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范围等于早期版本中的DECIMAL(M + 2, D) 的取值范围。
当数值在其取值范围之内,小数位多了,则直接截断小数位。
若数值在其取值范围之外,则用最大(小)值对其填充。
2.4、正负数问题
SIGNED [INTEGER]
UNSIGNED [INTEGER]
拿tinyint字段来举例,unsigned后,字段的取值范围是0-255,而signed的范围是-128 - 127。 那么如果我们在明确不需要负值存在的情况下,通常是不要设置signed来支持负数的。 因为只支持正数会让存储空间大一倍(当然我这种表达可能不准确)。
严格讲,在性能上是有细微的差别的。 unsigned的性能更好。
- 不同软件中的数据类型
- 软件发布中的不同版本
- 不同软件中的字符串操作
- 关于JavaScript中的不同数据类型转换判断
- 数据类型不同
- 不同软件中的时间和日期
- 黑马程序员----C#中的不同数据类型之间的转换
- hive中不同数据类型存储在Hbase中的格式解析
- java不同数据类型在内存中的存储方式
- python:global,可变数据类型与不可变数据类型,在声明全局变量中的不同
- JavaScript 不同数据类型转换
- 数据类型不同平台长度
- 不同数据类型的计算
- 不同数据类型的清洗
- 不同数据类型转换
- +=不同数据类型
- Mybatis中动态SQL语句中的parameterType不同数据类型的用法
- 不同平台上的不同数据类型
- 赋值中类型的转换
- 历史版本的firefox下载
- ncre三级信息安全 考试感悟(上)
- 1-Azkaban用户登录篇
- File***could only be replicated to 0 nodes instead of minReplication (=1)
- 不同软件中的数据类型
- 学习回顾mysql常用函数(1)
- 一次百度内存泄漏定位
- 在centOS上安装Node
- Fiddler抓取手机端APP接口数据
- Oracle分页的实现方式
- Redis学习-2:Linux安装Redis
- 从JDK源码看InputStream
- (三)JAVA菜鸟养成记--抽象类和接口