收藏 分销(赏)

《数据库应用技术》第2章-数据库基本概念.pptx

上传人:a199****6536 文档编号:12545044 上传时间:2025-10-28 格式:PPTX 页数:49 大小:826.62KB 下载积分:12 金币
下载 相关 举报
《数据库应用技术》第2章-数据库基本概念.pptx_第1页
第1页 / 共49页
《数据库应用技术》第2章-数据库基本概念.pptx_第2页
第2页 / 共49页


点击查看更多>>
资源描述
,書式設定,第,2,第,3,第,4,第,5,第,6,第,7,第,8,第,9,#,書式設定,第二章 数据库基本概念,数据库基本概念,2.1,数据类型,2.1.1,基本数据类型,2.1.2,算术运算,2.1.3,常用函数,2.1.4,空值,2.2,表(,Table,),2.2.1,关系型数据库中的表,2.2.2,主键,2.2.3,示例,数据库介绍,2.1,数据类型,2.1.1,基本数据类型,数值型,字符型,日期型,二进制大对象,其他类型,数值型,定点数与浮点数,NUMBER(,p,s,),p,为,Precision,(,1=,p,=38,),,意为数值,的(十进制)最大,位数,。,可理解,为,有效数位,:从左边第一个不为,0,的数算起,小数点和负号不计入,有效位数。,s,为,Scale,(,-84,=,s,=,127,),,意为小数点后的最多位数。,s,为正数时,意,为小数点后的最多位数,;,s,为负数时,四舍五入到小数点,前,s,+1,位。,NUMBER(p),相当于,NUMBER(p,0),整数。而,NUMBER,表示精度,p,为,38,的浮点数,,s,不是,0,。,NaN,大于任何数值型,等于,NaN,。,数据,类型,存储,123.89,NUMBER(4,1),?,NUMBER(4,0),?,NUMBER(4,-1),?,NUMBER(4,5),?,NUMBER(3,1),?,0.003456,NUMBER(4,5),?,0.034567,NUMBER(4,5),?,0.003456,NUMBER(4,-1),?,NUMBER(3,3),?,0.0567,NUMBER(4,1),?,字符型,国家语言支持,(National Language Support,NLS),ASCII,Unicode,GBK,UTF-8,字符型,国家语言支持,(National Language Support,NLS),ASCII,Unicode,GBK,UTF-8,A,merican Standard Code for Information Interchange,,美国信息交换标准代码。基于拉丁字母的一套电脑编码系统,主要用于显示现代英语。它是现今最通用的单字节编码系统。,7,位,,128,个字符,其中,33,个无法显示,,95,个可以显示。,最,大缺点是只能显示,26,个基本拉丁字母、阿拉伯数目字和英式标点符号,只能用于显示现代美国英语。,字符型,国家语言支持,(National Language Support,NLS),ASCII,Unicode,GBK,UTF-8,也,称为,统一码、万国码、单一码、标准万国码,,,计算机科学领域中业界的一种标准,可以使电脑得以体现世界上数十种文字的系统。,2,字节编码。,字符型,国家语言支持,(National Language Support,NLS),ASCII,Unicode,GBK,UTF-8,汉,字内码扩展规范,,K,为汉语拼音,Kuo Zhan,(扩展)中,“,扩,”,字的声母。英文全称,Chinese Internal Code Specification,。,2,字节,编码,。,字符型,国家语言支持,(National Language Support,NLS),ASCII,Unicode,GBK,UTF-8,8,-bit Unicode Transformation Format,,,针对,Unicode,的可变长度字符编码(定长码),也是一种前缀码。,可,表示,Unicode,标准中的任何字符,且其编码中的第一个字节仍与,ASCII,兼容,。,逐渐成为优先采用的编码。,1,至,4,个字节为每个字符编码:,1,个字节编码,128,个,US-ASCII,字符。,2,个字节编码,带有附加符号的拉丁文、希腊文、西里尔字母,等。,3,个字节编码,其他大部分常用字。,4,个字节编码,其他极少使用的辅助平面的字符。,CHAR,CHAR(n),,长度固定,最大,2000,字节。,赋值小于长度时,右边补空格;超出时,,Oracle,返回错误!,性能稍好,适合固定长度的编号等。,1,个,CHAR,可以是,1,至,4,个,BYTE,,具体与数据库字符集有关。,缺省用字符串在数据库字符集中的数值编码进行比较。空格小于任意字符。,当字符集不匹配时,可以用语言学比较。要求,NLS_SORT,的设置不是,BINARY,,,NLS_COMP,设置为,LINGUISTIC,。按,NLS_SORT,进行排序。,补全空格后比较:将短字符串后面补空格使其与长字符串等长,逐字符进行比较。,VARCHAR2,VARCHAR2(n),,长度可变,最大,4000,字节。,赋值小于长度时,右边不补空格;超出时,,Oracle,返回错误!,节约存储,不补空格比较:从左至右逐字符比较,若到达短字符串末尾时仍全相等,则长字符串大。,CHAR,VARCHAR2,列数据长度基本一致,例如长度差别不超过,50,字节。,列数据长度差异较大,或常为空值。,列数据更新多,查询少。,列数据更新少,查询多。,列长度不发生变化,列长度可能发生变化,表,CHAR,和,VARCHAR2,适合情况比较,日期型,DATE,世纪、年、月、天、小时、分钟、秒,公元前,4712,到公元后,9999,精度为秒,适合记录一般时间。,缺省:年、月由,SYSDATE,决定,日是,1,,时、分、秒都是,0,。,晚的时间大于早的时间。,TIMESTAMP(,n,),n,为秒分量的小数位数,从,0,到,9,,最大精度为微秒。,可以支持时区,WITH TIME ZONE,:带时区偏差,即本地时间与,UTC,(,Coordinated Universal Time-formerly Greenwich Mean Time,)时间的差。,WITH LOCAL TIME ZONE,:不带时区偏差,按,DB,的时区设置存储,当检索时按,Client,本地时区返回。,INTERVAL,时间间隔,这是一个差值,而不是绝对时间。,INTERVAL YEAR(,year_precision,)TO MONTH,year_precision,是年的有效位数,缺省为,2,。,INTERVAL DAY(,day_precision,)TO SECOND(,fractional_seconds_precision,),day_precision,:日有效位数,缺省是,2,。,fractional_seconds_precision,:秒后精度,,0,至,9,,缺省,6,位。,日期格式问题,默认日期格式,在,英文环境,下,使用美国式日期格式表示法,即,DD-MON-YY,,并且没有时间信息,如,12-Apr-08,。,在中文环境下,格式如,12-,四月,-08,。,自定义日期格式,查看当前,oracle,时间的格式,select*from nls_session_parameters where parameter=NLS_DATE_FORMAT;,修改当前,session,的,format,alter session set NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS;,大对象类型,BLOB,二进制大对象,与字符集无关的位流。,可存放大量文本、二进制数据(图像、音频、可执行程序等等)、文件等。,CLOB,字符数据大对象,支持单,/,多字节字符数据,定,/,变长字符集,使用数据库字符集。,NCLOB,Unicode,数据大对象,支持定,/,变长字符集,使用国家字符集,(national character set),。,最大字节数:,在标准块大小的表空间为,(2,32,-1)*,数据库数据块大小。,在,4000,字节内,时,,可指定存储在表内。超过时,应在表外单独存储,此时表中,LOB,列存放,LOB locators,,可用,DBMS_LOB,包装载。,参与事务,BFILE,最大,2,64,-1,字节,,但同时也受操作系统限制。,函数,BFILENAME,可用来修改文件名和路径。,DBMS_LOB,包访问文件内容,只读,不可修改和复制。不参与事务机制,不可恢复。,ROWID,伪列,用于标识数据库中唯一的一行。,64,位,包含字符,A-Z,,,a-z,,,0-9,,,+,和,/,。,数据对象编号,数据库文件,数据块,数据块中的行。其中,数据对象编号是每个数据库段的唯一编号,可在数据字典视图,USER_OBJECTS,、,DBA_OBJECTS,和,ALL_OBJECTS,中查到。,不能直接访问,可通过,DBMS_ROWID,包访问。,2.1.2,基本算术运算,数值型,对于数值型,通常的,+-*/,等算术运算符都可以使用。,字符型,字符型的连接运算符是,|,,可以连接两个字符串。,日期型,两个,DATE,类型的数据可以作减法,结果是一个浮点小数,表示时间相差的天数。,一个时间也可以加减一个浮点数,表示在此时间点向后或向前推若干天。,DATE,TIMESTAMP,INTERVAL,NUMERIC,DATE,-NUMBER,-INTERVAL,+DATE,-DATE,+DATE(,单位,:,天,),-DATE,TIMESTAMP,-INTERVAL,-INTERVAL,+TIMESTAMP,-TIMESTAMP,+DATE,-DATE,INTERVAL,+DATE,+TIMESTAMP,+INTERVAL,-INTERVAL,*INTERVAL,/INTERVAL,NUMERIC,+DATE,+DATE,*INTERVAL,表 日期型的运算,优先级,由高到,低,DATE/INTERVAL,NUMBER,CHAR/VARCHAR2,2.1.3,常用函数,常用数值函数,常见的各种数学函数,如,sin,cos,等,符号,函数,sign,舍入函数,ceil(x),floor(x),r,ound(x),trunc(x),举例,x,CEIL,FLOOR,ROUND,TRUNC,2.3,3,2,2,2,2.6,3,2,3,2,-2.3,-2,-3,-2,-2,-2.6,-2,-3,-3,-2,常用字符型函数,长度,length,计算,字符串的,长度,lengthb,计算,BYTE,长度,大,小写转换,upper,将所有,小写字母转换为大写字母,lower,将所有,大写字母转换为小写字母,initcap,将,字符串中每个单词的首字母,大写,子串,运算,substr,(str,pos,len,),,从字符串,str,的,pos,位置开始取长度为,len,的子串。,instr,(,str,sub,pos,ocr,),,从字符串,str,的,pos,位置开始查找字符串,sub,第,ocr,次出现的位置。,replace(,str,sch,rp,l),,将字符串,str,中的,rpl,子串替换,sch,。,常用日期函数,sysdate,返回系统当前时间(此函数没有参数),add_months(,dat,int,),返回日期,dat,添加,int,个,月所对应的日期,。,months_between(,dat1,dat2,),返回两个日期之间相差的,月份,。,next_day(,dat,day_str,),返回日期,dat,后的第一个,dat_str,对应,的,日期,。,如,,select,next_day(to_date(2012-9-26,yyyy-mm-dd),Friday)from,dual,last_day(,dat,),返回,dat,所在,月份的最后一天的,日期,。,round(,dat,fmt,),返回,日期,dat,按,fmt,四舍五入,的时间。,trunc(,dat,fmt,),返回日期,dat,按,fmt,截断,的,时间,。,如,,select trunc(SYSDATE,YY)from dual;,返回,2013-1-1,。,类型转换,隐式类型转换,Oracle,是弱类型语言,各类型之间可以直接相互运算,系统自动转换为合适的类型。,Oracle,不建议!,显式的类型转换函数,to_date,、,to_char,、,to_number,通用类型转换函数,convert,,,Oracle,不建议!,类型转换,隐式类型转换,Oracle,是弱类型语言,各类型之间可以直接相互运算,系统自动转换为合适的类型。,Oracle,不建议!,隐,式转换规律,比较时,字符型,转换为数值型,字符型转换为日期,型,算术运算,时,一般把字符型转换为数值型,字符型转换为日期,型,,如,123+5=128,连接,时,(|),,一般是把数值型转换为,字符型,,,日期,型转换为,字符型,,如,123|5=1235,赋值,、调用函数时,以定义的变量类型为准。,建议不要依赖于,Oracle,提供的隐式类型转换,而采用显示类型转换。原因是:,在,SQL,语句中显示类型转换函数更容易理解。,隐式类型转换对性能有负面影响。,隐式类型转换依赖于上下文,因此每次使用时可能会不一致。,隐式类型转换可能会随着,Oracle,软件版本的不会有所变化,。,类型转换,显式的类型转换函数,to_date,、,to_char,、,to_number,通用类型转换函数,convert,,,Oracle,不建议!,以字符为核心的类型转换,VARCHAR2,NUMBER,DATE,to_number,to_date,to_char,to_char,decode,函数,相当于一组条件语句,(switch,),。,decode(,input_value,value,result,value,result,default_result,);,它将输入,数值,input_value,与,函数中的参数,列表,value,相比较,,根据输入值返回一个对应,值,result,。,函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式,以及一个默认的返回,值,default_result,。,例如,decode(,test_flag,Y,Yes,N,No,NULL,None,Invalid,);,2.1.4,空值,空,值,NULL,用,来,表示未知,(Unknown),或,不适用,(Inapplicable),的情况,。,空值,的,特点,等价,于没有任何,值,与,0,、空字符串或空格,不同,逻辑运算方法不同,单独,排序,不参与统计,不能,被,索引,空值算术运算,NULL,参与,算术,运算,的规,则,针对,数值型和日期型数据,若有一个为,NULL,,则返回,NULL,。,NULL,参与字符串(拼接)运算,按空字符串对待,。,一般函数,若其中某个参数为空,结果为空。,nvl(,exp,ret,),函数,如果,exp,不为空,返回,exp,;否则,返回,ret,。,NULL,参与,逻辑运算,NULL,参与比较运算,结果为,Unknown,;整个逻辑运算的最终结果为,Unknown,时,作为,False,对待。,Unknown,参与逻辑运算时,遵循三值逻辑:,AND,T,F,U,True,T,F,U,False,F,F,F,Unknown,U,F,U,OR,T,F,U,T,T,T,T,F,T,F,U,U,T,U,U,NOT,T,F,U,F,T,U,NULL,参与,逻辑运算,NULL,参与比较运算,结果为,Unknown,;整个逻辑运算的最终结果为,Unknown,时,作为,False,对待。,Unknown,参与逻辑运算时,遵循三值逻辑:,AND,T,F,U,True,T,F,U,False,F,F,F,Unknown,U,F,U,OR,T,F,U,T,T,T,T,F,T,F,U,U,T,U,U,NOT,T,F,U,F,T,U,NULL,和,NULL,的比较结果也是,Unknown,。,不能直接,和,NULL,进行,比较,需要使用,IS NULL,和,IS NOT NULL,。,2.2,关系型,数据库中的,表,2.2.1,表,所谓关系型数据库,是指采用了关系模型来组织数据的数据库,。,简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。,普通词汇,关系模型术语,数据库词汇,二维表,关系,(Relation),表,(Table),行,(Row),元组,(Tuple),记录,(Record),列,(Column),属性,(Attribute),字段,(Column),域,(Field),数据类型,(Data Type),2.2.2,主键,表的主键是,能够唯一标识表中一行数据的字段或者最小字段组合。,由,数据库设计者,制定。,主键必须唯一的识别每一记录。,一个记录的主键不能为空。,当生成记录时,主键的值必须存在。,对于,RDBMS,本身来说,主键并不是必须的,但对于应用程序员,表中必须有主键。,这是一个基本的商业销售数据库,包括以下信息:,Locations,:地点,Products,:货物,Salers,:销售员,Customers,:顾客,Orders,:订单,Stock_in_out,:入库出库记录,2.2.3,示例数据库介绍,这是一个基本的商业销售数据库,包括以下信息:,Locations,:地点,Products,:货物,Salers,:销售员,Customers,:顾客,Orders,:订单,Stock_in_out,:入库出库记录,2.2.3,示例数据库介绍,示例数据库详细内容,字段名,数据类型,约束,描述,lid,(主键),CHAR(4,),NOT NULL,地点编码,city,VARCHAR2(20),NOT NULL,城市,address,VARCHAR2(,10,0),NULL,地址,postcode,CHAR(6),NULL,邮政编码,1,、,Locations:,地点信息,字段名,数据类型,约束,描述,cid,(主键),CHAR(4,),NOT NULL,顾客编码,cname,VAR,CHAR2(20),NOT NULL,顾客姓名,city,VARCHAR2(,2,0),NULL,城市,discnt,NUMBER(4,2),NOT NULL,折扣,address,VARCHAR2(100),NULL,地址,2,、,Customers:,顾客信息,字段名,数据类型,约束,描述,s,id,(主键),CHAR(4,),NOT NULL,销售员编码,sname,VARCHAR2(20),NOT NULL,销售员姓名,lid,CHAR(4,),NULL,工作地点编码,percent,NUMBER(3,1),NOT NULL,提成比例,salary,NUMBER(7,2),NULL,工资,manager,CHAR(4,),NULL,上级销售员,3,、,Salers:,销售员信息,字段名,数据类型,约束,描述,pid,(主键),CHAR(4,),NOT NULL,货物编码,pname,VARCHAR2(20),NOT NULL,货物名称,lid,CHAR(4,),NOT NULL,所在地点编码,quantity,NUMBER(8,2),NOT NULL,数量,price,NUMBER(8,2),NOT NULL,价格,4,、,Products:,货物信息,字段名,数据类型,约束,描述,oid,(主键),NUMBER(6),NOT NULL,订单编码,buy_date,DATE,NOT NULL,购买日期,cid,CHAR(4,),NOT NULL,顾客编码,sid,CHAR(4,),NOT NULL,销售员编码,pid,CHAR(4,),NOT NULL,货物编码,qty,NUMBER(6,2),NOT NULL,购买数量,dollars,NUMBER(8,2),NOT NULL,购买金额,5,、,Orders,:订单信息,字段名,数据类型,约束,描述,sio_id,(,主键),NUMBER(6),NOT NULL,入库出库单编码,pid,CHAR(4),NOT NULL,货物编码,seq_no,NUMBER(4),NOT NULL,序列号,qty_in_out,NUMBER(8,2),NOT NULL,进出数量,入库为正数,出库为负数,date_happen,DATE,NOT NULL,发生时间,6,、,Stock_in_out,:入库出库记录,数据,类型,存储,123.89,NUMBER(4,1),123.9,NUMBER(4,0),124,NUMBER(4,-1),120,NUMBER(4,5),出错,超精度,NUMBER(3,1),出错,超精度,0.003456,NUMBER(4,5),0.00346,0.034567,NUMBER(4,5),0.03457,0.003456,NUMBER(4,-1),0,NUMBER(3,3),0.003,0.0567,NUMBER(4,1),0.1,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服