资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,#,Oracle,数据库技术基础,1,数据库技术基础,数据库应用系统的构成,硬件,服务器:专用计算机,配置高端,CPU,、内存条、磁盘,客户端:,PC,机,手机,软件,操作系统:,Unix,,,Linux,,,Windows,DBMS,:,Oracle,,,DB2,,,SQL Server,,,Access,客户端,人员,系统分析人员,数据库设计人员,应用程序开发人员,数据库管理员,终端用户,1-,3,Oracle,数据库系统原理,-,第,1,章 数据库技术基础,2,关系模型理论的发展及主要产品,数据处理的历史,1940s,科学与工程计算,只能处理数字,没有大容量存储器,1950s,字符发生器,高速磁带机,磁盘存储器,文件管理系统,1960s,数据库技术,2-,5,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,数据模型,的三个要素,数据结构,对所处理的数据经过抽象后,呈现给用户的逻辑形式,数据操作,对数据模型中的对象可执行操作的集合,约束条件,完整性规则的集合,2-,6,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,数据模型概念的提出,E.F.Codd,,,Data Models in Database Management,,,1980,2-,7,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,网状模型和层次模型的提出,网状模型,1964,,通用电气公司,(GE,,即,General Electric),Charles Bachman,IDS(Integrated Data Store),Bachman,因对网状模型的贡献,获得,1973,年度图灵奖,层次模型,1961,,阿波罗登月计划,1968,,,IBM,,,ICS,,用于管理数目庞大的零部件,1969,,,ICS,更名为,IMS/360,2-,8,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Charles Bachman,1924.12.11,,生于,Manhattan,Kansas,1944.31946.2,,任防空炮兵,(,澳大利亚,菲律宾,),19461948,,,Michigan State College(1964,年,改为,MSU),,,BS,,机械工程,19491950,,,University of Pennsylvania,,,MS,,机械工程,,MBA,1960,,加入,GE,1963,,开发出,IDS,1973,,获得,Turing Award,2-,9,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Charles Bachman,2-,10,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,层次模型和网状模型的贡献,和缺陷,贡献,IDS,是第一个具备通用功能的数据库产品,开创了数据处理的数据库时代。提出了数据库的三层模式、,DML,与,DDL,语言等概念。,IMS,第一个提出了程序与数据分离的思想,使得数据独立性有了很大提高。,缺陷,数据结构复杂,数据独立性存在一定问题,2-,11,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,数据独立性,数据的物理独立性,存储数据的文件位置发生改变,应用程序不需要修改。,数据的逻辑独立性,增加属性,扩充功能,应用程序不需要修改。,2-,12,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Codd,的建议,用一种简单的结构存储数据。,用一种更高层次的、面向集合的语言访问数据。,不需要说明数据的物理存储方式。,2-,13,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,关系模型理论的提出,1970,年,,Codd,,,A Relational Model of Data for Large Shared Data Banks,因为对关系模型理论的贡献,,Codd,获得,1981,年度图灵奖,2-,14,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,E.F.Codd,1923.8.19,,生于英格兰,在,Oxford,学习数学和化学,二次大战中,,Royal Air Force,飞行员,1948,,去纽约加入,IBM,1965,CS PhD,Univ.of Michigan,Ann Arbor,1970,,提出关系数据模型理论,1981,,获得,Turing Award,2003.4.18,,在佛罗里达家中因心脏病去世,2-,15,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,IBMS,的,System R,项目,19731979,由,System R,演化而来的产品,1979,,,Oracle 2.0,1981,,,SQL/Data,1983,,,DB2,James Gray,,项目成员,因对数据库系统和事务处理的贡献,获得,1998,年度图灵,2-,16,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,UCB,的,Ingres,项目,19731985,Michael Stonebraker,与,Eugene Wong,由,Ingres,演化而来的产品,1984,,,Ingres,主要开发者,Robert Epstein,创立,Sybase,。,1987.5,,发布,Sybase,系统。,1993,,微软购买,Sybase,源代码的许可,即,SQL Server,。,1996.8,,,PostgreSQL,2-,17,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Michael Stonebraker(1943-),1965,,,Princeton,,,BS,1967,,,MS,,,University of Michigan,1971,,,PhD,,,University of Michigan,19712001,,,UCB,任教,2001,,,MIT,任教,2015.3,,因为对现代数据库系统的实践和基础理论贡献,获得,2014,年度图灵奖,2-,18,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Michael Stonebraker,学生:,Robert Epstein(founder and former VP of Engineering ofSybase),Diane Greene(co-founder and former CEO ofVMWare),Paula Hawthorn(founder of Britton-Lee,formerly VP of Engineering ofInformix),2-,19,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,关系定义,关系是元组的集合,元组是由若干列构成的行,2-,20,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,关系模型的三要素,数据结构:关系,即表,操作方式:关系代数,选择,映射,并,差,连接,约束,实体完整性约束,引用完整性约束,2-,21,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,几个术语的不同叫法,2-,22,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,关系和表的区别,关系是集合,是数学概念,行之间无顺序,列之间也无顺序。,表中的行一般会为了方便查看,以某个列排序,列也会按照习惯排序。,2-,23,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,关系模型的特点,严格的理论基础,简单的逻辑结构,面向集合的操作语言,与此相对的是面向过程语言,2-,24,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,面向过程的数据处理方式,也称为,imperative language,以,C,语言读取文件为例,(,写入文件代码参考本页备注,),fp=fopen(e:law.dat,rb);,fread(s,sizeof(struct stu),1,fp);,printf(,输入要查询的号码:,n);,fflush(stdin);,scanf(%d,while(!feof(fp),if(sn=s-sno),printf(%d,%s,%d,%dn,s-sno,s-sname,s-age,s-wgt);,fclose(fp);,2-,25,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,面向集合语言,也称为,declarative language,select*from emp where deptno=10,2-,26,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,关系型数据库产品分类,根据应用的规模使用方式分为,PC,数据库,大型数据库,根据是否开源分为,开源数据,非开源数据库,2-,27,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,PC,数据库的特点,本质上是文件管理系统,不支持的高级功能,C/S,结构,并发操作,事务处理,实时备份恢复,用户和权限管理,价低、易用、少维护,一般用于小数据量、单用户系统,2-,28,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,非开源关系型数据库的典型产品,PC,数据库,Access,FoxPro,大型数据库,Oracle,:中国各电信公司计费系统,SQL Server,DB2,Sybase,:铁路售票系统,农行,广州银行,Informix,2-,29,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,开源关系型数据库的典型产品,PC,数据库,SQLite,:嵌入式数据库,可以置于手机内,中型数据库,MySQL,:用于论坛,微博等非关键领域,PostgreSQL,2-,30,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Oracle,公司的早期创立者,2-,31,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Ed Oates,Bruce Scott,Bob Miner,Larry Ellison,公司成立一周年,Larry Ellison,1944.8.17,,生于纽约,成长于芝加哥,University of Illinois at Urbana-Champaign,,,University of Chicago(,均中途退学,),1977,,,founded SDL with two partners and an investment of$2000;$1200 was his.,1979,,开发出,Oracle,数据库,2014,,,Forbes,,,3,rd,-wealthiest man in US,,,5,th,-wealthiest person in the world,$56.2 billion.,2-,32,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,Bob Miner,1941.12.23,,生于伊利诺伊州,1963,年,毕业于,UIUC,,数学,一直担任,Oracle,公司主管技术的副总裁,1994.11.11,,在加州旧金山因肺癌去世,2014,,,Forbes,,美国最富有家庭,,170,位。,2-,33,Oracle,数据库系统原理,-,第,2,章,关系,模型理论的发展及主要产品,3,ER,模型,数据库设计,在需求分析的基础上顺序进行的三个步骤,概念设计,逻辑设计,物理设计,3-,35,Oracle,数据库系统原理,-,第,3,章,ER,模型,需求分析的主要任务,通过对客户的调查,得到数据库应用的下面内容,要保存的数据,要完成的功能,3-,36,Oracle,数据库系统原理,-,第,3,章,ER,模型,数据库设计的任务,概念设计,由需求分析结果抽象出应用的实体及联系,得到,ER,图。,逻辑设计,把,ER,图转化为表的结构。,物理设计,在具体的,DBMS,上把表实现,并包括创建合适的索引。,3-,37,Oracle,数据库系统原理,-,第,3,章,ER,模型,ER,图的概念,ER,表示,Entity Relationship,,即实体联系。,是一种可以应用于关系型数据库,(,但不限于关系型,),概念设计的建模方法。,最早由陈品山,(Peter Pin-Shan Chen),在,1976,年提出,是数据库概念设计的主要方法。,3-,38,Oracle,数据库系统原理,-,第,3,章,ER,模型,陈品山,1947,,生于台中市,1968,,毕业于台湾大学,,BS,,,EE,1973,,,Harvard,,,PhD,1976,,,发表,The EntityRelationship Model Toward A Unified View of Data,曾在,IBM,,,Honeywell,,,DEC,短暂工作,19741978,,,Assistant Professor,,,MIT,19781983,,,Associate Professor,,,UCLA,19832011,,,Professor,,,Louisiana State University,当前,,CMU,3-,39,Oracle,数据库系统原理,-,第,3,章,ER,模型,ER,模型的目的,甲乙方以一种非技术的模型,交流对数据的理解,保证数据库设计反映了企业对数据的使用方式。,以直观的形式开始数据库设计过程。,3-,40,Oracle,数据库系统原理,-,第,3,章,ER,模型,实体,-,联系的概念,实体是现实世界中可区别于其他对象的一个“事件”或一个“物体”。,现实世界是由一系列的实体以及这些实体间的联系构成的。,3-,41,Oracle,数据库系统原理,-,第,3,章,ER,模型,ER,图的画法,陈方法,Crows Feet,UML,3-,42,Oracle,数据库系统原理,-,第,3,章,ER,模型,UML,画法,用矩形表示实体,把矩形分为上下两部分,上半部分是实体名称,下半部分填入实体的属性,存在联系的两个实体用直线连接起来,把联系名称放在直线上面,联系一般是有方向的,在其名称左侧或右侧放置一个箭头符号表示联系的方向,3-,43,Oracle,数据库系统原理,-,第,3,章,ER,模型,ER,图示例,3-,44,Oracle,数据库系统原理,-,第,3,章,ER,模型,联系的映射约束,映射约束是指一个实体集中的实体通过联系可以同另一个实体集中相联系的实体数量。,3-,45,Oracle,数据库系统原理,-,第,3,章,ER,模型,映射约束的种类,一对一,一对多,多对多,3-,46,Oracle,数据库系统原理,-,第,3,章,ER,模型,ER,图转化为表,实体名称即表名,实体属性即列名,根据联系的映射约束情况把联系转化为表,3-,47,Oracle,数据库系统原理,-,第,3,章,ER,模型,一对一联系转化为表,把两个实体及联系的属性合并为一个表,两个实体的主键都可以选作新表的主键。,3-,48,Oracle,数据库系统原理,-,第,3,章,ER,模型,一对多联系转化为表,把处在“一”的一方的实体的主键及联系的属性合并到“多”的一方。,也可以把联系转化为一个独立的表,这个新表由两个实体的主键及联系的属性构成,多的一端的主键作为这个新表的主键。,3-,49,Oracle,数据库系统原理,-,第,3,章,ER,模型,多对多联系,把联系转化为一个独立的表,这个表由联系的属性及两个实体的主键构成,这两个实体的主键作为新表的外键各自指向由两个实体转化而成的两个表的主键,3-,50,Oracle,数据库系统原理,-,第,3,章,ER,模型,4,规范化理论,范式,即,Normal Form,,数据规范形式,目的是减少数据冗余和避免数据异常,4-,52,Oracle,数据库系统原理,-,第,4,章 规范化理论,emp,和,dept,表合并产生的问题,空间浪费,产生异常,4-,53,Oracle,数据库系统原理,-,第,4,章 规范化理论,Insert,异常,新添加员工的,dept,部分的细节要跟其他已有的记录完全一致,否则会造成表中的数据彼此不一致。,若一个新部门还没有员工,则此部门的信息不能添加到表中去,此表中就查不到这些部门的信息。,4-,54,Oracle,数据库系统原理,-,第,4,章 规范化理论,Deletion,异常,如果一个部门的员工都辞职或调到其他部门,其对应员工的记录都会被删除,这个部门的信息在表中也就不存在了。,4-,55,Oracle,数据库系统原理,-,第,4,章 规范化理论,Update,异常,若一个部门有多个员工,而其部门名称发生改变,则必须更新这个部门的所有记录的部门名称字段,如果遗漏一个,会造成表中数据的彼此不一致。,4-,56,Oracle,数据库系统原理,-,第,4,章 规范化理论,第一范式,如果一个表没有多值字段,则我们说这个表是满足第一范式的,(1NF),下面表中的,author,列有两个值,不满足,1NF,4-,57,Oracle,数据库系统原理,-,第,4,章 规范化理论,ISBN,TITLE,PUBDATE,RETAIL,CATEGORY,PUBLISHER,AUTHOR,7-04-007494-X,数据库系统概论,2002-1-1,25.10,计算机,高等教育出版社,萨师煊,王珊,如何转化为第一范式,把多值列移出,与原表主键一起构成一个新表,4-,58,Oracle,数据库系统原理,-,第,4,章 规范化理论,ISBN,TITLE,PUBDATE,RETAIL,CATEGORY,PUBLISHER,7-04-007494-X,数据库系统概论,2002-1-1,25.10,计算机,高等教育出版社,ISBN,AUTHOR,7-04-007494-X,萨师煊,7-04-007494-X,王珊,第二范式,如果一个表为第一范式,而且非主键字段完全依赖于主键,则此表称为满足第二范式。,下面表的主键由,ISBN,和,author,列构成,,title,等列只依赖于,ISBN,,不满足第二范式。,4-,59,Oracle,数据库系统原理,-,第,4,章 规范化理论,ISBN,TITLE,PUBDATE,RETAIL,CATEGORY,PUBLISHER,CONTACT,AUTHOR,7-04-007494-X,数据库系统概论,2002-1-1,25.10,计算机,高等教育出版社,李军,萨师煊,7-04-007494-X,数据库系统概论,2002-1-1,25.10,计算机,高等教育出版社,李军,王珊,如何转化为第二范式,把部分依赖的非主键字段移出,与原表所依赖的部分主键构成一个新表,4-,60,Oracle,数据库系统原理,-,第,4,章 规范化理论,ISBN,TITLE,PUBDATE,RETAIL,CATEGORY,PUBLISHER,CONTACT,7-04-007494-X,数据库系统概论,2002-1-1,25.10,计算机,高等教育出版社,李军,ISBN,AUTHOR,7-04-007494-X,萨师煊,7-04-007494-X,王珊,第三范式,如果一个表满足第二方式,并且没有非主键字段传递依赖于主键字段,则我们称这个表满足第三范式,出版社的联系人字段,CONTACT,显然依赖于,PUBLISHER,字段,而,PUBLISHER,字段的值又依赖于,ISBN,,我们称,CONTACT,字段传递依赖于,ISBN,4-,61,Oracle,数据库系统原理,-,第,4,章 规范化理论,如何转化为第三范式,把存在传递依赖的字段从原表移出,与其依赖的字段构成一个新表,4-,62,Oracle,数据库系统原理,-,第,4,章 规范化理论,ISBN,TITLE,PUBDATE,RETAIL,CATEGORY,PUBLISHER,7-04-007494-X,数据库系统概论,2002-1-1,25.10,计算机,高等教育出版社,PUBLISHER,CONTACT,高等教育出版社,李军,7,配置和使用,SQL*Plus,SQL*PLus,是什么,Oracle,提供的、用于执行,SQL,命令的工具,字符界面,只能输入命令,前身是,Oracle 4.0,的,UFI,1985,,,Oracle 5.0,,改称为,SQL*Plus,7-,64,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,Oracle,提供的,GUI,客户端工具,SQL Developer,2006-3,出品,可用于多种常见数据库产品,Oracle Enterprise Manager,2001,,,Oracle9i,加入,使用,B/S,结构,7-,65,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,第三方,GUI,客户端工具,PL/SQL Developer,1998,,,Allround Automations,公司,(,荷兰,),主要用于开发,PL/SQL,程序,toad,Tool for Oracle Application Developers,1995,,,Jim McDaniel,1998-10,,被,Quest,公司收购,2012-09,,,Quest,公司被,Dell,公司收购,支持常见数据库产品,7-,66,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,SQL*Plus,执行的命令种类,SQL statements,PL/SQL blocks,SQL*Plus internal commands,environment control commands such as SET,environment monitoring commands such as SHOW,Comments,External commands prefixed by the!char,7-,67,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,开始使用,SQL*Plus,启动,/,关闭数据库服务,C:net start oracleservicelaw12,C:net stop oracleservicelaw12,连接到数据库,C:sqlplus scott/tiger,执行,SQL,命令,(,行尾加分号,或换行后输入,/),SQL select*from dept;,SQL select*from dep,2 /,7-,68,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,可用数据库用户,系统用户,sys,:权限最高,具备,sysdba,权限,可以启动关闭数据库,口令在建库时指定,system,:在数据库内权限最高,具备,dba,角色,口令在建库时指定,测试用户,scott/tiger,:用于学习和测试数据库功能,可以删除,可以执行?,RDBMSADMIN scott.sql,创建,(,或,utlsampl.sql),,执行此脚本,会同时创建模拟人力资源管理的四张表:,emp,,,dept,,,salgrade,,,bonus,7-,69,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,获得,SQL*Plus,帮助信息,获得,SQL*Plus,帮助,SQL help,获得,SQL*Plus,帮助主题,SQL help index,获得指定主题的帮助,SQL help show,7-,70,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,常用,SQL,*,Plus,命令,查看当前用户,SQL show user,查看当前用户下的表,SQL select*from tab;,修改执行过的,SQL,命令,SQL edit,查看指定表的结构,SQL describe dept,执行脚本文件,SQL start c:test.sql,7-,71,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,设置,SQL*Plus,环境,设置每行的最大字符数,SQL set linesize 300,设置每页的最大行数,SQL set pagesize 300,设置指定列的宽度,SQL column filename format a50,环境设置永久化,把环境设置命令存入,glogin.sql,文件,7-,72,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,给用户解锁和设置口令,给,scott,用户解锁,SQL connect system/oracle,已连接。,SQL alter user scott account unlock;,修改,scott,用户的口令为,tiger,SQL connect system/oracle,已连接。,SQL alter user scott identified by tiger;,7-,73,Oracle,数据库系统原理,-,第,7,章 配置和使用,SQL*Plus,8,SQL,查询语句,SQL,历史,1970,,,Codd,提出关系模型,1973,,,IBM,启动,System R,项目,Donald Chamberlin,和,Ray Boyce,负责操作工具,1974,,,DML,与,DDL,成形,称为,SEQUEL(Structured English Query Language),1980,,重命名为,SQL,SEQUEL,已被英国飞机公司,Hawker Siddeley,用作商标,.,SQL,Structured Query Language,,结构化查询语言,8-,75,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,Chamberlin(1944-),1966,BS,Engineering,Harvey Mudd College,1967,MS,EE,Stanford University,1971,PhD,EE,Stanford University,8-,76,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,SQL,语言基本类型,DML,select,,,Update,,,Insert,,,delete,DDL,create,,,drop,,,alter,,,truncate table,DCL,grant,,,revoke,8-,77,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,Oracle,对,SQL,语言的分类,DDL,语句,DML,语句,事务控制语句,会话控制语句,系统控制语句,嵌入式,SQL,语句,8-,78,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,select,语句基本结构,select,指定要查询的列名,from,指定要查询的表名,where,指定查询条件,group by,指定要分组列,having,指定过滤分组的条件,order by,指定排序列,8-,79,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,查询示例,8-,80,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,三种常用数据类型,数值,number(p,s),:,p,为有效数字位数,,s,为精度,字符串,日期时间,date,:包括年、月、日、小时、分钟、秒,8-,81,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,字符集,ASCII,码,即,American Standard Code for Information Interchange,。,由早期电报编码发展而来,使用,7,位编码。,主要用于处理英文字母。,包括,33,个不可打印的控制字符和,95,个包括空格在内的可打印字符。,1963,,,ASCII,码标准由,ASA(American Standards Association,,即后来的,ANSI),发布。,8-,82,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,EBCDIC,编码,即,Extended Binary Coded Decimal Interchange Code,使用,8,位编码,设计于,1963,至,1964,年,主要用于,IBM,大型机,System/360,。,8-,83,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,不同语言的字符集,不同国家和地区编制了适合存储其语言的字符集。,中文一般使用,ZHS16GBK,字符集。,unicode,字符集,试图把世界上使用所有字符统一到一个字符集中。,8-,84,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,unicode,编码方式,UTF-8,字符编码单位一个字节。,UTF-8,编码方式中前,128,个字符为,ASCII,字符,且其编码与,ASCII,码相同。,UTF-16,字符编码单位为两个字节。,8-,85,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,Oracle,支持四种,unicode,字符集,AL32UTF8,用于,ASCII,平台。,一个字符使用,13,个字节,增补字符使用,4,个字节。,UTF8,用于,ASCII,平台。,一个字符使用,13,个字节,增补字符使用,6,个字节。,UTFE,用于,EBCDIC,平台。,一个字符使用,14,个字节,增补字符使用,8,个字节。,AL16UTF16,使用双字节编码,增补字符使用,4,个字节。,8-,86,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,数据库字符集,用于存储下面数据,CHAR,、,VARCHAR2,、,CLOB,及,LONG,的列值。,表名、列名以及,PL/SQL,程序变量的标识符。,SQL,语句和,PL/SQL,程序代码。,中文简体,Windows,系统,默认,ZHS16GBK,字符集。,推荐使用,Unicode,编码方式,优先选用,AL32UTF8,。,某些关键字只能使用单字节字符,,AL16UTF16,不能,用作,数据库字符集。,8-,87,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,国家字符集,为什么要使用国家字符集,数据库字符集未使用,Unicode,,数据库中存在不属于数据库字符集中的字符,可以用国家字符集以,Unicode,编码方式存储这些特殊字符。,如何使用国家字符集存储字符,把列的类型指定为,nchar(n),或,nvarchar(n),。,如何设置字符集,数据库和国家字符集在建库时指定。,Oracle,国家字符集支持的编码方式,AL16UTF16(,默认,),,,UTF8,8-,88,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,验证数据库字符集和国家字符集,SQL select property_name,property_value,2 from database_properties,3 where property_name like%CHARACTERSET,4 /,PROPERTY_NAME PROPERTY_VALUE,-,NLS_CHARACTERSET ZHS16GBK,NLS_NCHAR_CHARACTERSET AL16UTF16,8-,89,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,字符串类型,-char(n),和,varchar2(n),char(n),定长,若实际长度小于,n,,则用空格填满,n,的最大值为,2000,单位默认为字节,也可以用,char(n char),或,char(n byte),指定单位,varchar2(n),可变长度,所占空间与实际长度相同,n,的最大值为,4000,单位默认为字节,也可以使用,varchar2(n char),或,varchar2(n byte),指定单位,8-,90,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,字符串类型,-nchar(n),与,nvarchar2(n),nchar(n),n,的最大值与国家字符集有关,单位为字符,占用空间不能超过,2000,字节,nvarchar2(n),n,的最大值与国家字符集有关,单位为字符,占用空间不超过,4000,字节,8-,91,Oracle,数据库系统原理,-,第,8,章,SQL,查询语句,简单查询,只指定表名,select*from emp;,指定列名,select ename,sal from emp,使用列别名,select ename as emp
展开阅读全文