数据库培训课件_第1页
数据库培训课件_第2页
数据库培训课件_第3页
数据库培训课件_第4页
数据库培训课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库数据库第2页1、安装2、基本概念数据数据库数据库管理系统数据库系统数据模型数据模型的三要素关系模型3、事务数据库一.数据库基本知识第2页1、安装数据库一.数据库基本知识数据库数据定义语言(DDLDataDefinitionLanguage)

例如:CREATE、DROP、ALTER等语句。数据操作语言(DMLDataManipulationLanguage)

例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。数据查询语言(DQLDataQueryLanguage)

例如:SELECT语句。数据控制语言(DCLDataControlLanguage)

例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。第3页二.SQL数据库数据定义语言(DDLDataDefiniti数据库数据库安装文档SqlPlus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。从开始程序运行:sqlplus,是图形版的sqlplus.http://localhost:5560/isqlplusPlSqlDeveloper用法(重点),数据库导入导出,pdmalteruserscottaccountunlock;解锁scott密码为tiger第4页安装数据库数据库安装文档第4页安装第5页数据库基本知识——基本概念

描述事物的符号,数字、文字、图表、图像、声音等都是数据。数据的形式本身并不能完全表达其内容,需要经过语义解释,数据与其语义是不可分的数据(Data)数据库(DB即Database)数据库是长期存储在计算机内有结构的大量的共享的数据集合。它可以供各种用户共享、具有最小冗余度和较高的数据独立性第5页数据库基本知识——基本概念描述事物的符号第6页数据库基本知识——基本概念数据库管理系统(DBMS)

DatabaseManagementSystem,是位于用户与操作系统之间的数据管理软件。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复数据库系统(DBS)

DatabaseSystem,狭义地讲是由数据库、数据库管理系统和用户构成,广义地讲是由计算机、硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库应用程序、用户和维护人员组成的一个整体第6页数据库基本知识——基本概念数据库管理系统(DBMS)第7页数据库基本知识——基本概念数据模型数据(Data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(DataModel)也是一种模型,它是现实世界数据特征的抽象。数据模型通常都由数据结构,数据操作和完整性三个要素组成。数据库模型的三要素1.数据结构2.数据操作3.完整性约束

第7页数据库基本知识——基本概念数据模型数据(Data)是描第8页数据库基本知识——基本概念数据模型的三要素数据结构:用于描述系统的静态特性,研究与数据类型、内容、性质有关的对象,例如关系模型中的域、属性、关系等。数据操作:数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据的约束条件:数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。第8页数据库基本知识——基本概念数据模型的三要素数据结构:第9页数据库基本知识——基本概念数据模型按不同的应用层次分类:概念数据模型LodicalDataModel

数据模型,是面向数据库用户的现实世界的模型。E—R模型逻辑数据模型

数据模型,用户从数据库中所看到的模型。是具体的DBMS所支持的数据模型。

层次数据模型(HierarchicalDataModel树形图)网状数据模型(NetworkDataModel)

关系模型物理数据模型PhysicalDataModel

物理模型,是面向计算机的物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。第9页数据库基本知识——基本概念数据模型按不同的应用层次分类第10页数据库基本知识——基本概念层次模型网状模型关系模型层次模型网状模型关系模型特点它的特点是将数据组织成一对多关系的结构用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式为非结构化的结构,用单一的二维表的结构表示实体及实体之间的联系。优点存取方便且速度快结构清晰,容易理解数据修改和数据库扩展容易实现检索关键属性十分方便能明确而方便地表示数据间的复杂关系数据冗余小结构特别灵活,满足所有布尔逻辑运算和数学运算规则形成的查询要求能搜索、组合和比较不同类型的数据增加和删除数据非常方便缺点结构呆板,缺乏灵活性同一属性数据要存储多次,数据冗余大(如公共边)不适合于拓扑空间数据的组织网状结构的复杂,增加了用户查询和定位的困难。需要存储数据间联系的指针,使得数据量增大数据的修改不方便(指针必须修改)数据库大时,查找满足特定关系的数据费时对空间关系无法满足第10页数据库基本知识——基本概念层次模型网状模型关系模型层第11页数据库基本知识——基本概念关系数据模型数据结构:一个关系模型的逻辑结构是一张二维表,它由行和列组成。表中的一行即为一个元组;表中的一列即为一个属性。操纵及完整性约束:关系数据模型的操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”,不必详细说明“怎么干”,从而大大地提高了数据的独立性。关系数据库标准操作语言是SQL语言。存储结构:关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,每一个表通常对应一种文件结构。第11页数据库基本知识——基本概念关系数据模型数据结构:一第12页数据库基本知识——事务事务(Transaction)概念

是访问并可能更新数据库中各种数据项的一个程序执行单元(unit);

在关系数据库中,一个事物可以是一条SQL语句,一组SQL语句或者整个程序;

分类

隐式事务:又称自动提交事务;如果运行一条INSERT语句,SQLServer将把它包装到事务中,如果此INSERT语句失败,SQLServer将回滚或取消这个事务.每条SQL语句均被视为一个自身的事务.

显式事务:在显示事务中事务的开始与结束语句必须成对出现,否则会出现错误。是一种由你自己指定的事务.这种事务允许你自己决定哪批工作必须成功完成,否则所有部分都不完成.为了给自己的事务定界,可以使用关键字BEGINTRANSACTION和ROLLBACKTRANSACTION或COMMITTRANSACTION.引入原因

当我们对表中数据进行修改时,当需要同时完成对多个表的数据修改时,即,一个表成功,另外表也成功,一个不成功,均不成功,则需要引入事务的概念,主要是解决数据的一致性。两种事务处理

Commit(提交) Rollback(回滚)第12页数据库基本知识——事务事务(Transaction)第13页数据库基本知识——事务事务的四个属性(ACID)原子性(atomicity)

一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency)

事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation)

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。持久性(durability)

持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。第13页数据库基本知识——事务事务的四个属性(ACID)原子第14页第14页数据库基本知识——SQLSQLStructuredQueryLanguageSql

结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。SQL语言包含4个部分:数据定义语言(DDL),提供定义关系模式、删除关系以及修改关系模式的命令。

例如:CREATE、DROP、ALTER等语句。数据操作语言(DML),包括基于关系代数和元祖关系演算的查询语言,还包括在数据库中插入、删除、修改元祖的命令。

例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。数据查询语言(DQL),

例如:SELECT语句。数据控制语言(DCL),用于控制对数据库对象操作的权限,它使用GRANT和REVOKE语句对用户或用户组授予或回收数据库对象的权限。

例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。第14页第14页数据库基本知识——SQLSQLStruct第15页DDL——基本概念DDL(数据定义语言)DataDefinitionLanguage用于定义SQL模式、基本表、视图和索引的创建和撤消操作表名:1-30个字符类型:varchar2、number、date、blob修改一个表的缺省值时只能影响后插入到表中的数据,不影响原有的数据大表删除一个字段时需要较长的时间,可以先给unused后再进行删除比如:altertable表名setunusedcolumn字段--将字段设为不可用

Altertable表名dropunusedcolumns--删除不可用字段truncatetable表名–删除表所有记录回收表空间注释: Commentontable表名is‘’第15页DDL——基本概念DDL(数据定义语言)DataD第16页DDL——创建表--Createtable

create

tableAA14

(

AAB001VARCHAR2(14)not

null,

AAB321VARCHAR2(6),

AAA035NUMBER(5,4),

AAE041VARCHAR2(6)not

null,

AAE042VARCHAR2(6),

AAE011VARCHAR2(20),

AAE036DATE

)

tablespaceUSERS

pctfree10

initrans1

maxtrans255

storage

(

initial64K

minextents1

maxextents

unlimited

);

第16页DDL——创建表--Createtable

cr第17页DDL——添加注释--AddcommentstothetablecommentontableAA14is'工伤保险单位浮动费率表';--AddcommentstothecolumnscommentoncolumnAA14.AAB001is'单位编号';commentoncolumnAA14.AAB321is'行业风险类型';commentoncolumnAA14.AAA035is'浮动费率';commentoncolumnAA14.AAE041is'开始年月';commentoncolumnAA14.AAE042is'终止年月';commentoncolumnAA14.AAE011is'经办人';commentoncolumnAA14.AAE036is'经办日期';第17页DDL——添加注释--Addcommentst第18页DDL——主键--Create/RecreateprimarykeyconstraintsaltertableAA14addconstraintPK_AA14primarykey(AAB001,AAE041)usingindextablespaceUSERSpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);第18页DDL——主键--Create/Recreate第19页DDL——外键--Create/RecreateforeignkeyconstraintsaltertableAA14addconstraintFK_AA14_AA141foreignkey(AAB001)referencesAA141(AAB001);第19页DDL——外键--Create/Recreate第20页DDL——唯一约束--Create/RecreateuniquekeyconstraintsaltertableSEC_USERaddconstraintUQ_SEC_USER_USERNAME_unique(USERNAME_)usingindextablespaceUSERSpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);第20页DDL——唯一约束--Create/Recreat第21页DDL——索引通过对表的某一个或某一些字段添加索引能加快对数据库的查询速度。创建索引的优点通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性可以大大加快数据的检索速度,这也是创建索引的最主要的原因可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能创建索引的缺点创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

第21页DDL——索引通过对表的某一个或某一些字段添加索引能第22页DDL——索引索引是建立在数据库表中的某些列上的适合创建索引的列在经常需要搜索的列上,可以加快搜索的速度在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。不适合创建立索引的列对于那些在查询中很少使用或者参考的列不应该创建索引对于那些只有很少数据值的列也不应该增加索引对于那些定义为text,image和bit数据类型的列不应该增加索引当修改性能远远大于检索性能时,不应该创建索引

第22页DDL——索引索引是建立在数据库表中的某些列上的第23页DDL——索引创建索引的语法创建索引的标准语法: CREATEINDEX索引名ON表名(列名) TABLESPACE表空间名;创建唯一索引: CREATEuniqueINDEX索引名ON表名(列名) TABLESPACE表空间名;创建组合索引: CREATEINDEX索引名ON表名(列名1,列名2) TABLESPACE表空间名;

第23页DDL——索引创建索引的语法第24页DML——基本概念DML(数据操作语言)概念

DataManipulationLanguage,使用户能够操作已有数据库中数据的计算机语言。分类 INSERT语句 UPDATE语句 DELETE语句第24页DML——基本概念DML(数据操作语言)概念第25页DML——INSERT语句INSERT语句

可以向数据库表中插入记录INSERT完整语法INSERT[INTO]{TABLE_NAME|VIEW_NAME}[(COLUMN_LIST)]{VALUES(VALUES_LIST)|SELECT_STATEMENT}一次一行出现空值的情况: 不明确写出列名,则默认插入空值,除非有默认值 明确写出列名,values(NULL)给定空值第25页DML——INSERT语句INSERT语句INSER第26页DML——UPDATE语句UPDATE语句

更新数据库中的数据UPDATE完整语法UPDATE{TABLE_NAME|VIEW_NAME}SET[{TABLE_NAME|VIEW_NAME}]{COLUMN_LIST|VARIABLE_LIST}=expression[WHERE…]第26页DML——UPDATE语句UPDATE语句UPDAT第27页DML——DELETE语句DELETE语句

删除数据库中的记录DELETE完整语法DELETE[FROM]TABLE_NAMEWHERESEARCH_CONDITIONS当删除主表记录时,如果子表有对应的记录,可能会报错第27页DML——DELETE语句DELETE语句DELET第28页第28页DQL——基本概念DQL(数据查询语言)概念

DataQueryLanguage,使用户能够查询已有数据库中数据的计算机语言。分类 SELECT语句select*fromdual;

第28页第28页DQL——基本概念DQL(数据查询语言)概念第29页DML——SELECT语句SELECT语句SQL语言中的查询语句,是SQL语言最主要、最核心的语句SELECT完整语法SELECT[ALL|DISTINCT]{*|table.*|[table.]field1[AS

alias1][,[table.]field2[AS

alias2][,…]]}FROM

tableexpression[,…][WHERE…]

[GROUP

BY…]

[HAVING…]

[ORDER

BY…]第29页DML——SELECT语句SELECT语句SELEC第30页DML——SELECT语句1.语句中的关键字、字段、表名不区分大小写2.取出的字段可以用+-*/进行运算Select1*2fromdual;3.可以用distinct过滤重复记录Selectdistinctdmmcfromgg_dmnr;4.语句后用分号作结束符5.可以跨行写,但是关键字不能跨行6.null和0及空格的区别 null:没有存储任何内容,有null参与的运算,其结果仍为null 0及空格:分配存储空间7.查询空值时用isnull非空isnotnull;8.rownum,rowid9.%第30页DML——SELECT语句1.语句中的关键字、字段、第31页DML——SELECT语句nvl,decodeselectnvl(gsjc,'aa'),gsjcfromjc_gysxx;selectsybz,decode(sybz,-1,'新注册',1,'待审批',2,'正式用户','已冻结')smfromjc_gysxx第31页DML——SELECT语句nvl,decode第32页DML——SELECT语句to_date,to_char,substr

--字符串转换成dateselectto_date('20141018101111','yyyy-MM-ddHH24:mi:ss')fromdual;selectto_char(sysdate,'YYYYMMDDHH24MISS')fromdualselectsubstr(‘abcde’,2,3)fromdual;从第二字符截,一共截三个字符.第32页DML——SELECT语句to_date,to_第33页DML——SELECT语句max,min,avg,count,sum函数

selectmax(sxh)fromgg_dmnrwherefid='0048';

selectcount(*)fromgg_dmnrwherefid='0048';selectcount(dmmc)fromgg_dmnr;count某个字段,如果这个字段不为空就算一个.selectcount(distinctdmmc)fromgg_dmnr;selectsum(scjg)fromfa_business_orderdetailt;selectround(avg(scjg),2)fromfa_business_orderdetailt;第33页DML——SELECT语句max,min,avg,第34页DML——SELECT语句Groupby语句需求:现在想求,求每个机构类型平均注册奖金.selectavg(zczj)fromjc_gysxxgroupbyjglx;selectavg(zczj),jglxfromjc_gysxxgroupbyjglx

求注册奖金最高的公司.selectgsmc,max(zczj)fromjc_gysxx;出错,因为max只有一个值,但等于max值的人可能好几个,不能匹配.

应如下求:selectgsmcfromjc_gysxxwherezczj=(selectmax(zczj)fromjc_gysxx;Groupby语句应注意,

出现在select中的字段,如果没出现在组函数中,必须出现在Groupby语句中.第34页DML——SELECT语句Groupby语句第35页DML——表连接表连接

通过表连接运算符可以实现多表查询。表连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志关联多表提取数据分为:内连接(相等及不等连接)、外连接(显示不满足条件的记录),交叉连接如果不加where条件,将出现T1(allrow)×T2(allrow),笛卡尔乘积,一般情况下是没有实际意义当n个表连接时,需要n-1个连接条件第35页DML——表连接表连接关联多表提取数据第36页DML——表连接内连接(相等)语法:

selecttable1.column,table2.columnfromtable1,table2wheretable1.column1=table2.column2and…例如:selectgys.*,lxr.*fromjc_gysxxgys,jc_gyslxrlxrwheregys.id=lxr.gysbh;第36页DML——表连接内连接(相等)语法:第37页DML——表连接内连接(非等)非等条件:>=><=<between第37页DML——表连接内连接(非等)非等条件:>=><第38页DML——表连接外连接(使用+)(+)只能放置在=号一边,紧跟在没有匹配列的列名后显示(+)对端表的全部信息(左连接(等号的右边)、右连接(等号的左边))deletejc_gyslxrwheregysbh=(selectidfromjc_gysxxwheregsmc='深圳市网安计算机安全检测技术有限公司‘;selectgys.gsmc,lxr.mcfromjc_gysxxgys,jc_gyslxrlxrwheregys.id=lxr.gysbh(+)orderbymcdesc;第38页DML——表连接外连接(使用+)(+)只能放置在=号第39页DML——表连接自连接SELECT*FROMrouteR1,routeR2

WHERER1.num=R2.numANDR1.company=R2.companyselectd1.*fromgg_dmnrd1,gg_dmnrd2whered1.fid=d2.idandd2.dmmc=‘河南‘--d1相当于子表

第39页DML——表连接自连接SELECT*FROMr第40页DML——子查询子查询一个查询依赖于另一个查询的结果,分为单行子查询和多行子查询select*fromjc_gyslxrwheregysbh=(selectidfromjc_gysxxwheregsmc='神州数码(中国)有限公司')第40页DML——子查询子查询一个查询依赖于另一个查询的结果第41页DML——子查询in、notin、exists、notexists第41页DML——子查询in、notin、existOracle导入导出

expuser/pwd@sidfilc=c:\xx.dmpowner=userimp

user/pwd@sidfile=c:\xx.dmpignore=y;第42页Oracle导入导出

expuser/pwd@sidf第43页没有了第43页没有了数据库数据库第45页1、安装2、基本概念数据数据库数据库管理系统数据库系统数据模型数据模型的三要素关系模型3、事务数据库一.数据库基本知识第2页1、安装数据库一.数据库基本知识数据库数据定义语言(DDLDataDefinitionLanguage)

例如:CREATE、DROP、ALTER等语句。数据操作语言(DMLDataManipulationLanguage)

例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。数据查询语言(DQLDataQueryLanguage)

例如:SELECT语句。数据控制语言(DCLDataControlLanguage)

例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。第46页二.SQL数据库数据定义语言(DDLDataDefiniti数据库数据库安装文档SqlPlus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。从开始程序运行:sqlplus,是图形版的sqlplus.http://localhost:5560/isqlplusPlSqlDeveloper用法(重点),数据库导入导出,pdmalteruserscottaccountunlock;解锁scott密码为tiger第47页安装数据库数据库安装文档第4页安装第48页数据库基本知识——基本概念

描述事物的符号,数字、文字、图表、图像、声音等都是数据。数据的形式本身并不能完全表达其内容,需要经过语义解释,数据与其语义是不可分的数据(Data)数据库(DB即Database)数据库是长期存储在计算机内有结构的大量的共享的数据集合。它可以供各种用户共享、具有最小冗余度和较高的数据独立性第5页数据库基本知识——基本概念描述事物的符号第49页数据库基本知识——基本概念数据库管理系统(DBMS)

DatabaseManagementSystem,是位于用户与操作系统之间的数据管理软件。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复数据库系统(DBS)

DatabaseSystem,狭义地讲是由数据库、数据库管理系统和用户构成,广义地讲是由计算机、硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库应用程序、用户和维护人员组成的一个整体第6页数据库基本知识——基本概念数据库管理系统(DBMS)第50页数据库基本知识——基本概念数据模型数据(Data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(DataModel)也是一种模型,它是现实世界数据特征的抽象。数据模型通常都由数据结构,数据操作和完整性三个要素组成。数据库模型的三要素1.数据结构2.数据操作3.完整性约束

第7页数据库基本知识——基本概念数据模型数据(Data)是描第51页数据库基本知识——基本概念数据模型的三要素数据结构:用于描述系统的静态特性,研究与数据类型、内容、性质有关的对象,例如关系模型中的域、属性、关系等。数据操作:数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据的约束条件:数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。第8页数据库基本知识——基本概念数据模型的三要素数据结构:第52页数据库基本知识——基本概念数据模型按不同的应用层次分类:概念数据模型LodicalDataModel

数据模型,是面向数据库用户的现实世界的模型。E—R模型逻辑数据模型

数据模型,用户从数据库中所看到的模型。是具体的DBMS所支持的数据模型。

层次数据模型(HierarchicalDataModel树形图)网状数据模型(NetworkDataModel)

关系模型物理数据模型PhysicalDataModel

物理模型,是面向计算机的物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。第9页数据库基本知识——基本概念数据模型按不同的应用层次分类第53页数据库基本知识——基本概念层次模型网状模型关系模型层次模型网状模型关系模型特点它的特点是将数据组织成一对多关系的结构用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式为非结构化的结构,用单一的二维表的结构表示实体及实体之间的联系。优点存取方便且速度快结构清晰,容易理解数据修改和数据库扩展容易实现检索关键属性十分方便能明确而方便地表示数据间的复杂关系数据冗余小结构特别灵活,满足所有布尔逻辑运算和数学运算规则形成的查询要求能搜索、组合和比较不同类型的数据增加和删除数据非常方便缺点结构呆板,缺乏灵活性同一属性数据要存储多次,数据冗余大(如公共边)不适合于拓扑空间数据的组织网状结构的复杂,增加了用户查询和定位的困难。需要存储数据间联系的指针,使得数据量增大数据的修改不方便(指针必须修改)数据库大时,查找满足特定关系的数据费时对空间关系无法满足第10页数据库基本知识——基本概念层次模型网状模型关系模型层第54页数据库基本知识——基本概念关系数据模型数据结构:一个关系模型的逻辑结构是一张二维表,它由行和列组成。表中的一行即为一个元组;表中的一列即为一个属性。操纵及完整性约束:关系数据模型的操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”,不必详细说明“怎么干”,从而大大地提高了数据的独立性。关系数据库标准操作语言是SQL语言。存储结构:关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,每一个表通常对应一种文件结构。第11页数据库基本知识——基本概念关系数据模型数据结构:一第55页数据库基本知识——事务事务(Transaction)概念

是访问并可能更新数据库中各种数据项的一个程序执行单元(unit);

在关系数据库中,一个事物可以是一条SQL语句,一组SQL语句或者整个程序;

分类

隐式事务:又称自动提交事务;如果运行一条INSERT语句,SQLServer将把它包装到事务中,如果此INSERT语句失败,SQLServer将回滚或取消这个事务.每条SQL语句均被视为一个自身的事务.

显式事务:在显示事务中事务的开始与结束语句必须成对出现,否则会出现错误。是一种由你自己指定的事务.这种事务允许你自己决定哪批工作必须成功完成,否则所有部分都不完成.为了给自己的事务定界,可以使用关键字BEGINTRANSACTION和ROLLBACKTRANSACTION或COMMITTRANSACTION.引入原因

当我们对表中数据进行修改时,当需要同时完成对多个表的数据修改时,即,一个表成功,另外表也成功,一个不成功,均不成功,则需要引入事务的概念,主要是解决数据的一致性。两种事务处理

Commit(提交) Rollback(回滚)第12页数据库基本知识——事务事务(Transaction)第56页数据库基本知识——事务事务的四个属性(ACID)原子性(atomicity)

一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency)

事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation)

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。持久性(durability)

持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。第13页数据库基本知识——事务事务的四个属性(ACID)原子第57页第57页数据库基本知识——SQLSQLStructuredQueryLanguageSql

结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。SQL语言包含4个部分:数据定义语言(DDL),提供定义关系模式、删除关系以及修改关系模式的命令。

例如:CREATE、DROP、ALTER等语句。数据操作语言(DML),包括基于关系代数和元祖关系演算的查询语言,还包括在数据库中插入、删除、修改元祖的命令。

例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。数据查询语言(DQL),

例如:SELECT语句。数据控制语言(DCL),用于控制对数据库对象操作的权限,它使用GRANT和REVOKE语句对用户或用户组授予或回收数据库对象的权限。

例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。第14页第14页数据库基本知识——SQLSQLStruct第58页DDL——基本概念DDL(数据定义语言)DataDefinitionLanguage用于定义SQL模式、基本表、视图和索引的创建和撤消操作表名:1-30个字符类型:varchar2、number、date、blob修改一个表的缺省值时只能影响后插入到表中的数据,不影响原有的数据大表删除一个字段时需要较长的时间,可以先给unused后再进行删除比如:altertable表名setunusedcolumn字段--将字段设为不可用

Altertable表名dropunusedcolumns--删除不可用字段truncatetable表名–删除表所有记录回收表空间注释: Commentontable表名is‘’第15页DDL——基本概念DDL(数据定义语言)DataD第59页DDL——创建表--Createtable

create

tableAA14

(

AAB001VARCHAR2(14)not

null,

AAB321VARCHAR2(6),

AAA035NUMBER(5,4),

AAE041VARCHAR2(6)not

null,

AAE042VARCHAR2(6),

AAE011VARCHAR2(20),

AAE036DATE

)

tablespaceUSERS

pctfree10

initrans1

maxtrans255

storage

(

initial64K

minextents1

maxextents

unlimited

);

第16页DDL——创建表--Createtable

cr第60页DDL——添加注释--AddcommentstothetablecommentontableAA14is'工伤保险单位浮动费率表';--AddcommentstothecolumnscommentoncolumnAA14.AAB001is'单位编号';commentoncolumnAA14.AAB321is'行业风险类型';commentoncolumnAA14.AAA035is'浮动费率';commentoncolumnAA14.AAE041is'开始年月';commentoncolumnAA14.AAE042is'终止年月';commentoncolumnAA14.AAE011is'经办人';commentoncolumnAA14.AAE036is'经办日期';第17页DDL——添加注释--Addcommentst第61页DDL——主键--Create/RecreateprimarykeyconstraintsaltertableAA14addconstraintPK_AA14primarykey(AAB001,AAE041)usingindextablespaceUSERSpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);第18页DDL——主键--Create/Recreate第62页DDL——外键--Create/RecreateforeignkeyconstraintsaltertableAA14addconstraintFK_AA14_AA141foreignkey(AAB001)referencesAA141(AAB001);第19页DDL——外键--Create/Recreate第63页DDL——唯一约束--Create/RecreateuniquekeyconstraintsaltertableSEC_USERaddconstraintUQ_SEC_USER_USERNAME_unique(USERNAME_)usingindextablespaceUSERSpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);第20页DDL——唯一约束--Create/Recreat第64页DDL——索引通过对表的某一个或某一些字段添加索引能加快对数据库的查询速度。创建索引的优点通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性可以大大加快数据的检索速度,这也是创建索引的最主要的原因可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能创建索引的缺点创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

第21页DDL——索引通过对表的某一个或某一些字段添加索引能第65页DDL——索引索引是建立在数据库表中的某些列上的适合创建索引的列在经常需要搜索的列上,可以加快搜索的速度在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。不适合创建立索引的列对于那些在查询中很少使用或者参考的列不应该创建索引对于那些只有很少数据值的列也不应该增加索引对于那些定义为text,image和bit数据类型的列不应该增加索引当修改性能远远大于检索性能时,不应该创建索引

第22页DDL——索引索引是建立在数据库表中的某些列上的第66页DDL——索引创建索引的语法创建索引的标准语法: CREATEINDEX索引名ON表名(列名) TABLESPACE表空间名;创建唯一索引: CREATEuniqueINDEX索引名ON表名(列名) TABLESPACE表空间名;创建组合索引: CREATEINDEX索引名ON表名(列名1,列名2) TABLESPACE表空间名;

第23页DDL——索引创建索引的语法第67页DML——基本概念DML(数据操作语言)概念

DataManipulationLanguage,使用户能够操作已有数据库中数据的计算机语言。分类 INSERT语句 UPDATE语句 DELETE语句第24页DML——基本概念DML(数据操作语言)概念第68页DML——INSERT语句INSERT语句

可以向数据库表中插入记录INSERT完整语法INSERT[INTO]{TABLE_NAME|VIEW_NAME}[(COLUMN_LIST)]{VALUES(VALUES_LIST)|SELECT_STATEMENT}一次一行出现空值的情况: 不明确写出列名,则默认插入空值,除非有默认值 明确写出列名,values(NULL)给定空值第25页DML——INSERT语句INSERT语句INSER第69页DML——UPDATE语句UPDATE语句

更新数据库中的数据UPDATE完整语法UPDATE{TABLE_NAME|VIEW_NAME}SET[{TABLE_NAME|VIEW_NAME}]{COLUMN_LIST|VARIABLE_LIST}=expression[WHERE…]第26页DML——UPDATE语句UPDATE语句UPDAT第70页DML——DELETE语句DELETE语句

删除数据库中的记录DELETE完整语法DELETE[FROM]TABLE_NAMEWHERESEARCH_CONDITIONS当删除主表记录时,如果子表有对应的记录,可能会报错第27页DML——DELETE语句DELETE语句DELET第71页第71页DQL——基本概念DQL(数据查询语言)概念

DataQueryLanguage,使用户能够查询已有数据库中数据的计算机语言。分类 SELECT语句select*fromdual;

第28页第28页DQL——基本概念DQL(数据查询语言)概念第72页DML——SELECT语句SELECT语句SQL语言中的查询语句,是SQL语言最主要、最核心的语句SELECT完整语法SELECT[ALL|DISTINCT]{*|table.*|[table.]field1[AS

alias1][,[table.]field2[AS

alias2][,…]]}FROM

tableexpression[,…][WHERE…]

[GROUP

BY…]

[HAVING…]

[ORDER

BY…]第29页DML——SELECT语句SELECT语句SELEC第73页DML——SELECT语句1.语句中的关键字、字段、表名不区分大小写2.取出的字段可以用+-*/进行运算Select1*2fromdual;3.可以用distinct过滤重复记录Selectdistinctdmmcfromgg_dmnr;4.语句后用分号作结束符5.可以跨行写,但是关键字不能跨行6.null和0及空格的区别 null:没有存储任何内容,有null参与的运算,其结果仍为null 0及空格:分配存储空间7.查询空值时用isnull非空isnotnull;8.rownum,rowid9.%第30页DML——SELECT语句1.语句中的关键字、字段、第74页DML——SELECT语句nvl,decodeselectnvl(gsjc,'aa'),gsjcfromjc_gysxx;selectsybz,decode(sybz,-1,'新注册',1,'待审批',2,'正式用户','已冻结')smfromjc_gysxx第31页DML——SELECT语句nvl,decode第75页DML——SELECT语句to_date,to_char,substr

--字符串转换成dateselectto_date('20141018101111','yyyy-MM-ddHH24:mi:ss')fromdual;selectto_char(sysdate,'YYYYMMDDHH24MISS')fromdualselectsubstr(‘abcde’,2,3)fromdual;从第二字符截,一共截三个字符.第32页DML——SELECT语句to_date,to_第76页DML——SELECT语句max,min,avg,count,sum函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论