数据库的数据类型和运算符
一、数据库的介绍
1、整数类型
创建一张表,三种不同的日期格式
2、浮点数类型
3、任意精度类型
在PostgreSQL中,NUMERIC标识数值是任意精度的类型,使用NUMERIC(M,N)来表示。其中,M称为精度,表示总的位数;N称为标度,表示小数的位数。例如321.594,精度为6,标度为3。
NUMERIC的有效的取值范围有M和N的值决定。如果改变M而固定N,则其取值范围将随M的变大而变大。另外如果用户数据的精度超出指定精度,则会四舍五入进行处理。
插入数据,进行查询
4、日期与时间类型
在PostgreSQL中,有多种日期数据类型,主要有:TIME 、 DATE、TIMESTAMP和INTERVEL。每一个类型都有合法的取值范围,当指定确实不合法的值时,系统将“零”值插入到数据库中。
①、TIME数据类型
用于只需要时间信息的值,在存储时需要8个字节。格式为:HH:MM:SS。HH表示小时,MM表示分钟,SS表示秒。取值范围为00:00:00--24:00:00
②、DATE数据类型
用在仅需要日期格式的时候,没有时间部分,在存储是需要4个字节,日期格式为“YYYY-MM-DD”。其中,YYYY表示年;MM表示月;DD表示日。在给DATE类型的字段赋值时,可以使用字符串类型或者数字类型的数据插入,只要符合DATE的日期格式即可。
③、TIMESTAMP数据类型【时间戳类型】
日期格式是:“YYYY-MM-DD HH:MM:SS”。
④、创建带时区的日期和时间类型
PST是西8区,如果不指定时区,默认为东8区。
5、字符串类型
字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其他数据,比如图片和声音的二进制数据。字符串可以进行区分或者不区分大小写的串比较。例如CHAR 、VARCHAR 、TEXT。
注:CHAR 和VARCHAR 的区别
CHAR类型在数据长度不足时,会以空格去补齐;但是VARCHAR类型不会以空格补齐,只会存储数据的实际长度。
所以CHAR类型会占用更多的存储空间,但是CHAR在检索数据的效率上比VARCHAR类型较高。
①、VARCHAR(n)和CHARACTER VARYING(n)
n是一个正整数,两者都可以存储最多n个字符的字符串。如果要存储的字符串比声明的长度短,类型为CHARACTER的数值将会用空白填满;而类型为CHARACTER VARYING的数值将只是存储较短的字符串。
CHARACTER类中填充的空白是无意义的。
②、TEXT
可以存储任何长度的字符串。尽管TEXT不是SQL标准类型,但是其他许多的SQL数据库系统中也包括它。
6、二进制类型
PostgreSQL支持两种字符型数据:文本字符串和二进制字符串。例如BYTEA,用于存储二进制字符串。
7、布尔类型
BOOLEAN用一个字节来存储,提供了TRUE和FALSE两个值。
8、数组类型
数组类型可以是任何基本类型或用户定义类型。
①、声明数组
address text
②、插入数组数值
二、如何选择数据类型
1、整数和浮点数
整数:不需要小数部分
浮点数:需要小数部分
2、日期和时间类型
TIME:时间
DATE:日期
TIMESTAMP:日期+时间
3、CHAR和VARACTER的特点的选择
CHAR:固定长度字符
VARACTER:可变长度字符
三、常见运算符介绍
1、运算符
①、算术运算符
+ - / * %(求余)
②、比较运算符
> < >= <= != IN LIKE LEAST BENTWEEN AND GREATEST
③、逻辑运算符
TRUE FALSE AND OR NOT
总结:
④、位运算符
& | ~ ^ << >>
2、规则
*** 规则:①、 如果有一个或是两个参数为null,那么比较的结果为空;
②、若同一个运算符中两个参数都是字符串,那么比较结果按照字符串进行比较;
③、如果两个参数均为整数,那么在比较的时候会按照整数类型来比较;
④、如果一个字符串和数值类型进行比较,那么PostgreSQL数据库会自动将字符串类型转换成数值进行比较。
运算符的优先级:
有参考资料书籍 !!