资源预览内容
第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
第9页 / 共57页
第10页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单元,9 MySQL,数据库编程基础,MySQL,数据库管理与应用任务式教程(慕课版),学习内容,任务,1,数据类型,任务,4,函数,数据库系统的组成,任务,2,常量与变量,任务,3,运算符与表达式,任务,1,数据类型,任务,5,流程控制,任务,6,游标,任务,1,数据类型,9.1.1,数值类型,类型名,字节数,可表示数的范围,无符号,unsigned,有符号,sign,bigint,8,0264-1,即(,018446744073709551615,),-263263,即,(-92333720368547758089233372036854775807),int,4,0232-1,即(,04294967295,),-231231,即,(-21474836482147483647),mediumint,3,02241,即(,016777215,),-223223,即,(-83886088388607),smallint,2,0216-1,即(,065535,),-215215,即,(-3276832767),tinyint,1,028-1,即(,0255,),-2727,即,(-128127),(,1),在数据表中存储的一些数值,如商品销售量、商品价格等,这类数据都适合用数值类型来表达,,数值类型包括整型、浮点型等。各数值类型的名称及使用范围如表,9-1,、表,9-2,所示。,表,9-1,数值类型,整数类型,表,9-1,任务,1,数据类型,(2),在数据表中存储的一些数值,如商品销售量、商品价格等,这类数据都适合用数值类型来表达,,数值类型,包括整型、浮点型等。各数值类型的名称及使用范围如表,9-1,、表,9-2,所示。,表,9-1,数值类型,整数类型,表,9-2,类型名,字节数,可表示数的范围,无符号,unsigned,有符号,sign,float,4,0,和,1.175494351E-38,3.402823466E+38,-3.402823466E+38,-1.175494351E-38,double,8,0,和,2.2250738585072014E-308,1.7976931348623157E+308,-1.7976931348623157E+308,-2.2250738585072014E-308,decimal(m,d),m+2,最大取值范围与,DOUBLE,相同,最大取值范围与,DOUBLE,相同,任务,1,数据类型,表达数值型数据时,对涉及到小数的存储就要使用浮点数或定点数表达,同时依据所要考虑到表达数的精度,浮点数又分为单精度浮点数,float,和双精度浮点数,double,两种类型。其中,Float,所表达的小数位数是,5-6,位,,double,双精度所表达的小数位数可达到,15,位。,对于定点数类型,decimal,是通过,decimal(m,d),来设置位数和精度的,其中,m,表示所有数据字符的,总位数(不包括“,.,”和“,-,”),最大值为,65,,默认值为,10,,其中,d,表示小数位数据个数,,最大值为,30,,默认值为,0,。,在,任务,1,数据类型,9.1.2,字符串类型,(1),当所用数据是字符或字符串时就要用到字符串类型数据,,MySQL,支持两类字符型数据:文本字符串和二进制字符串。文本字符串主要有,char,、,varchar,、,binary,、,varbinary,、,blob,、,text,等,二进制字符串主要有,BIT,、,BINARY,、,VARBINARY,、,TINYBLOB,、,BLOB,、,MEDIUMBLOB,和,LONGBLOB,等,常用的字符串类型如表,9-3,所示。,表,3,字符类型名,字节数,数据存储描述,Char(m),m,m,为,0,至,255,之间的整数,Varchar(m),m,m,为,0,至,65535,之间的整数(默认),Text,L+2,允许长度为,0,至,65535,字节,列值的长度,L+2,个字节,Binary,m,允许长度为,0,至,m,个字节的定长字节字符串,Varbinary,m,允许长度为,0,至,m,个字节的变长字节字符串,Blob,L+2,允许长度为,0,至,65535,字节,列值的长度,L+2,个字节,ENUM,1,或,2,个,取决于枚举值的数目(最大值为,65535,),SET,1,、,2,、,3,、,4,或,8,取决于集合成员的数量(最多,64,个成员),任务,1,数据类型,表示字符串类型数据时需用单引号将字符内容括起来。,(1)char,表示固定长度非二进制字符串。,(2)varchar,表示变长非二进制字符串,字段的最大值默认为,65535,,所默认对应的字符集是,latin1,,其他字符集如,gbk,其对应的,m,最大值为,32766,,,utf8,字符集对应的,m,最大值为,21844,。,(3),文本类型,text,表示变长非二进制字符串,适用于存储大量数据。它又分为,TINYTEXT,、,TEXT,、,MEDIUMTEXT,和,LONGTEXT,四种类型。不同的,TEXT,类型的存储空间和数据长度不同。,BINARY,和,VARBINARY,类型类似于,CHAR,和,VARCHAR,,不同的是它们包含二进制字节字符串,,BINARY,类型的长度是固定的,指定长度后,不足最大长度的,将在它们右边填充“,0”,补齐,以达到指定长度。,任务,1,数据类型,BLOB,类型分为,4,种:,TINYBLOB,、,BLOB,、,MEDIUMBLOB,和,LONGBLOB,,它们可容纳值的最大长度不同。,(1)BLOB,列是字符集,并且排序和比较基于列值字节的数值;,TEXT,列有一个字符集,并且根据字符集对值进行排序和比较。,(2)enum,类型又称枚举类型,是一个字符串对象。,(3)ENUM,类型的字段在取值时,能在指定的枚举列表中获取,而且一次只能取一个。在,MySQL,中枚举列表最多可以有,65535,个值,且每个值都有一个从,1,开始的顺序编号,实际保存在记录中的是顺序编号而不是列表中的值。其定义格式如下。,Enum(,值,1,,,值,2,,,.,,,值,n),(4)set,类型用于保存字符串对象,值为表创建时规定的一列值,,SET,列最多可以有,64,个成员。与,ENUM,类型相同,,SET,值在内部用整数表示,列表中每个值都有一个索引编号。不同的是,SET,类型的列可从定义的列值中选择多个字符的联合。其定义格式如下。,Set(,值,1,,,值,2,,,.,,,值,n),任务,1,数据类型,9.1.3 日期和时间类型,在表达日期或时间之类的数据时将要用到日期和时间类型数据,,MySQL,数据库提供的日期和时间类型有,year,、,date,、,time,、,datetime,和,timestamp,,可以用来表示不同范围的日期或时间值,如表,9-4,所示。,表,9-4,日期和时间类型名,字节数,数据存储描述,year,1,取值范围为,1901,到,2155,time,3,可以包含,6,位的毫秒微秒精度,其取值范围为,-838:59:59.000000,到,838:59:59.000000,date,4,可表达日期范围,1000-01-01,至,9999-12-31,datetime,8,可表达时间范围,1000-01-01 00:00:00,至,9999-12-31 23:59:59,timestamp,4,可表达日期时间范围,1970-01-01 00:00:01,到,2038-01-19 03:14:07,任务,1,数据类型,year,类型用来仅表示年份,默认格式为,YYYY,。,time,类型用来仅表示时间,默认格式为,HH:MM:SS,,,Time,类型可以包含,6,位的毫秒微秒精度。小时字段可以超过,24,是因为,time,类型不光代表小时,也可以代表持续时长中的小时。,date,类型仅用来表示日期,默认的格式为,yyyy-mm-dd,。,datetime,类型用来表示日期和时间,默认的格式为,yyyy-mm-dd hh:mi:ss,。,timestamp,类型也用来表示日期和时间。,datetime,和,timestamp,两个类型都可以保存到微妙级别,即,6,位毫秒微妙精度,即,1000-01-01 00:00:00.000000,到,9999-12-31 23:59:59.999999,和,1970-01-01 00:00:01.000000,到,2038-01-19 03:14:07.999999,。,非法的,date,、,datetime,、,timestamp,值将被分别转换成,0,、,0000-00-00,、,0000-00-00 00:00:00,。,year,首字母大写还是小写?表中为小写?,任务,2,常量与变量,9.2.1,常量,常量即是在数据操作或程序运行过程中值保持不变的量,如数值常量,123,,字符常量,a,,默认值,default 0,等,。,任务,2,常量与变量,9.2.2,变量,变量是程序运行过程中数值可以发生变化的量,主要用来临时存储数据。,变量的使用要遵循先定义(或声明)后使用的原则(系统变量除外)。,在,MySQL,中根据变量的作用范围可以将变量划分为系统变量(全局变量)、用户自定义变量(会话变量)及局部变量。,任务,2,常量与变量,1.,系统变量,系统变量也称为全局变量,是,MySQL,系统内部定义的、具有某种功能的变量,形如,变量名,如,query_cache_limit,等。,系统变量对所有的,MySQL,客户端都有效,默认情况下,会在服务器启动时使用命令行上的选项或配置文件完成系统变量的设置,因此用户不能再定义系统变量,但可以查看和修改变量值。,(,1,)查看系统变量,可使用,show variables like auto_%;,语句查看系统变量。,任务,2,常量与变量,(,2,)修改系统变量的值,在成功连接,MySQL,服务器,且系统变量被初始化后,用户有时要根据实际需求对系统变量值作局部修改或全局修改。,局部修改系统变量的值,若修改的系统变量只需在本次连接中有效,且不影响其他连接,MySQL,服务器客户端使用时,只能使用局部修改,基本语法如下。,Set,变量名,=,新值,;,例如,在一个客户端上对系统变量,auto_increment_offset,的值作修改,在另一客户端上看到的,auto_increment_offset,的值仍然是原值。,全局修改系统变量的值,对系统变量作全局修改对所有正在连接的客户端无效,只对新连接的客户端永久生效,基本语法如下。,Set global,变量名,=,值,;,或,set global.,变量名,=,值,;,任务,2,常量与变量,2.用户自定义变量,用户自定义变量也称为会话变量,是指由用户根据需求进行定义的变量,跟,MySQL,当前客户端是绑定的,且仅对当前用户使用的客户端有效。用户自定义变量的语法如下。,Select ,变量名,:=,表达式值,;,或,set ,变量名,=,值,;,对用户自定义变量定义时还必须为该变量赋初值,赋值方式有如下三种。,任务,2,常量与变量,(,1,)使用,set,命令,set,变量名,=,表达式值,;,例如,,set xh=20200001;,(,2,)使用,select,命令,select ,变量名,:=,字段值,from,表名,;,或,select ,变量名,:=,字段值,as,输出标识符名称,from,表名,;,注意:这里使用了赋值符号,:=,以区别于,=,。,例如,,select xm:=,姓名,from xs where,学号,=001101;,(,3,)使用,select,语句,selec
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号