首页 > 编程知识 正文

mysqljdbc连接数据库代码(Java连接MySQL数据库)

时间:2023-05-04 01:58:57 阅读:91931 作者:466

典型的数据类型包括:

整数(xxxint位型(bit )浮点型)浮点型和双精度(real )固定点数) ) date、time、datetime、year )字符串)

整数列有三个可选属性:

M:宽(仅在填充0的情况下有意义,否则无需指定) unsigned:无符号类型(非负) zerofill: 0填充)某些列在zerofill的情况下默认为无符号), 如果指定了zerofill,如果只表示m位不够,则向左填充0,否则向左填充0,int(3)、int (int )、int ) )8)都将在磁盘上占用4字节的存储空间。

对于

1、整数(xxxint)

浮点列类型,MySQL使用4个字节的单精度值和8个字节的双精度值

MySQL允许使用非标准语法。 (其他数据库不一定支持,因此在设计数据迁移之前,最好不要这样使用。 )浮点(m,d )或双精度(m )米,d )。 在这里,m、d表示这个值全部显示出m位数,在这里,d表示小数点以后的几位,m和d也被称为精度和尺度。 例如,定义为float (5,2 )的列可以显示为-999.99-999.99。 m的值范围为0到255。 d取0~30的范围,同时必须=M。 如果存储时整数部分超出范围,MySql将报告错误,并且不允许存储这样的值。 在上面的示例中,将值添加到01。 记忆时,小数点部分在范围外的情况下,分为以下部分。 四舍五入时,如果整数部分不在范围内,则只有警告,但操作成功,将多余的小数点四舍五入后删除并保存。 例如,如果在float (5,2 )列中插入999.009,则近似结果为999.01。 如果四舍五入后整数部分超出范围,MySql将报告错误并拒绝处理。 报告错误,如999.995和-999.995。 说明:小数类型可以带有unsigned,但数据范围不变。 例如,float (3,2 ) unsigned仍然只能表示0-9.99的范围。 如果float和double未指定精度,则缺省情况下REAL为double,并且SQL服务器模式包含REAL_AS_FLOAT选项,则REAL是float的同义词而不是double的同义词。

注意:在编程中使用浮点数时,请特别注意误差问题。 浮点数字不准确,因此避免使用“=”来确定两个数字是否相等。 想要保证更正确的值时,推荐固定点数数据型。

2、浮点型

位数据类型可用于保存位字段的值。 位(m )型可以存储m位的值。 的范围为1到64,默认值为1。

BIT实际上是存储在二进制中的值,就像010110一样。 如果存储位类型的值,位数小于m值,则向左添加0。 如果存储位类型的值且位数大于m,则MySQL的操作取决于当时有效的SQL模式。 如果未设置模式,MySQL将值裁剪到范围的相应端点,并存储裁剪后的值。 如果模式设置为严格模式,则超出范围的值将被拒绝,显示错误,并且基于SQL标准的插入将失败。

对于位域,直接使用SELECT命令不会显示结果,而是可以通过凶恶的中心()或hex ) )函数读取。

3、位类型(了解)

DECIMAL作为字符串存储在MySQL内部,比浮点数更准确。 固定小数点型占M 2字节的decimal(m,d ),和浮动小数点型一样处理规则。 的取值范围为0~65,d的取值范围为0~30,且必须为=M,超过该范围时会发生错误。 指定DECIMAL精度时,缺省整数位为10,缺省小数点后的位数为0。 数字等效于数字。

4、定点型

对于year类型,输入两位数。 00-68表示2000-2069年,70-99表示1970-1999年。 因为记起来很麻烦,所以建议使用4位的标准格式。 ‘yyyy-mm-ddhh : mm : ss’或YY-mm-DDh

H:MM:SS’,’YYYY-MM-DD’或’YY-MM-DD’格式的字符串。允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,’98-12-31 11:30:45’、’98.12.31 11+30+45’、’98/12/31 11*30*45’和’98@12@31 11^30^45’是等价的。‘YYYYMMDD’或’YYMMDD’格式的没有间割符的字符串,假定字符串对于日期类型是有意义的。例如,’19970523’和’970523’被解释为 ‘1997-05-23’,但’971332’是不合法的(它有一个没有意义的月和日部分),将变为’0000-00-00’。对于包括日期部分间割符的字符串值,如果日和月的值小于10,不需要指定两位数。’1979-6-9’与’1979-06-09’是相同的。同样,对于包括时间部分间割符的字符串值,如果时、分和秒的值小于10,不需要指定两位数。’1979-10-30 1:2:3’与’1979-10-30 01:02:03’相同。数字值应为6、8、12或者14位长。如果一个数值是8或14位长,则假定为YYYYMMDD或YYYYMMDDHHMMSS格式,前4位数表示年。如果数字 是6或12位长,则假定为YYMMDD或YYMMDDHHMMSS格式,前2位数表示年。其它数字被解释为仿佛用零填充到了最近的长度。一般存注册时间、商品发布时间等,不建议使用datetime存储,而是使用时间戳,因为datetime虽然直观,但不便于计算。而且timestamp还有一个重要特点,就是和时区有关。

6、字符串型

char,varchar,text区别

char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:char如果不指定(M)则表示长度默认是1个字符。varchar必须指定(M)。char(M)类型的数据列里,每个值都占用M个字符,如果某个长度小于M,MySQL就会在它的右边用空格字符补足(在检索操作中那些填补出来的空格字符将被去掉;如果存入时右边本身就带空格,检索时也会被去掉);在varchar(M)类型的数据列里,每个值只占用刚好够用的字符再加上一个到两个用来记录其长度的字节(即总长度为L字符+1/2字字节)。由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但相对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。text文本类型,可以存比较大的文本段,搜索速度稍慢,因此如果不是特别大的内容,建议使用char,varchar来代替。还有text类型不用加默认值,加了也没用。

哪些情况使用char更好

一,存储很短的信息,比如门牌号码101,201……这样很短的信息应该用char,因为varchar还要占个byte用于存储信息长度,本来打算节约存储的现在得不偿失。二,固定长度的。比如使用uuid作为主键,那用char应该更合适。因为他固定长度,varchar动态根据长度的特性就消失了,而且还要占个长度信息。三,十分频繁改变的column。因为varchar每次存储都要有额外的计算,得到长度等工作,如果一个非常频繁改变的,那就要有很多的精力用于计算,而这些对于char来说是不需要的。MyISAM和MEMORY存储引擎中无论使用char还是varchar其实都是作为char类型处理的。

除此之外,建议使用varchar类型。特别是InnoDB存储引擎。

7、二进制值类型(了解)

包括:xxxBLOB和xxxBINARY

BINARY和VARBINARY类型类似于CHAR和VARCHAR类型,但是不同的是,它们存储的不是字符字符串,而是二进制串。所以它们没有字符集,并且排序和比较基于列值字节的数值值。当保存BINARY(M)值时,在它们右边填充0x00(零字节)值以达到指定长度。取值时不删除尾部的字节。比较时所有字节很重要(因为空格和0x00是不同的,0x00<空格),包括ORDER BY和DISTINCT操作。比如插入’a ‘会变成’a ’。

BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。分别与四种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT对应有相同的最大长度和存储需求。在TEXT或BLOB列的存储或检索过程中,不存在大小写转换。BLOB和TEXT列不能有默认值。BLOB或TEXT对象的最大大小由其类型确定,但在客户端和服务器之间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。你可以通过更改max_allowed_packet变量的值更改消息缓存区的大小,但必须同时修改服务器和客户端程序。

8、枚举(ENUM)

MySql中的ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值:

可以插入空字符串””和NULL(如果运行NULL的话)。如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),如果是严格模式,将不能插入,如果是非严格模式,将选用第一个元素代替,并警告。ENUM最多可以有65,535个成员,需要2个字节存储。当创建表时,ENUM成员值的尾部空格将自动被删除。

值的索引规则如下:

来自列规定的允许的值列中的值从1开始编号。空字符串错误值的索引值是0。NULL值的索引是NULL。

9、集合(SET)

SET和ENUM类型非常类似,也是一个字符串对象,里面包含0~64个成员。

SET和ENUM存储上有所不同,SET是根据成员的个数决定存储的字节数。

SET和ENUM最主要的区别在于SET类型一次可以选择多个成员,而ENUM则只能选择一个。

10、特殊的NULL类型

Null类型特征:

(1)所有的类型的值都可以是null,包括int、float等数据类型

(2)空字符串””,不等于null,0也不等于null,false也不等于null

(3)任何运算符,判断符碰到NULL,都得NULL

(4)NULL的判断只能用is null,is not null

(5)NULL 影响查询速度,一般避免使值为NULL

文章出处:http://www.atguigu.com/jsfx/13853.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。