1、数据库数据库第2页1、安装、安装2、基本概念、基本概念 数据数据 数据库数据库 数据库管理系统数据库管理系统 数据库系统数据库系统 数据模型数据模型 数据模型的三要素数据模型的三要素 关系模型关系模型3、事务、事务数据库数据库一数据库基本知识一数据库基本知识数据库数据库n 数据定义语言(DDL Data Definition Language) 例如:CREATE、DROP、ALTER等语句。 n 数据操作语言(DML Data Manipulation Language) 例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。 n 数据查询语言(DQL Data Que
2、ry Language ) 例如:SELECT语句。 n 数据控制语言(DCL Data Control Language) 例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。第3页二二.SQL.SQL数据库数据库 数据库安装文档数据库安装文档 Sql Plus(客户端),命令行直接输入:客户端),命令行直接输入:sqlplus,然后按,然后按提示输入用户名,密码。提示输入用户名,密码。 从开始程序运行从开始程序运行:sqlplus,是图形版的,是图形版的sqlplus. http:/localhost:5560/isqlplus PlSql Developer 用法(重点
3、),数据库导入导出,用法(重点),数据库导入导出,pdm alter user scott account unlock; 解锁scott 密码为tiger第4页安装安装第5页数据库基本知识数据库基本知识基本概念基本概念 描述事物的符号,数字、文字、图表、图像、声音等都是数据。数据的形式本身并不能完全表达其内容,需要经过语义解释,数据与其语义是不可分的数据数据(Data)(Data)数据库数据库(DB(DB即即Database)Database) 数据库是长期存储在计算机内有结构的大量的共享的数据集合。它可以供各种用户共享、具有最小冗余度和较高的数据独立性第6页数据库基本知识数据库基本知识基本
4、概念基本概念数据库管理系统数据库管理系统(DBMS)(DBMS) Database Management System,是位于用户与操作系统之间的数据管理软件。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复数据库系统数据库系统(DBS)(DBS) Database System,狭义地讲是由数据库、数据库管理系统和用户构成,广义地讲是由计算机、硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库应用程序、用户和维护人员组成的一个整体第7页数据库基本知识数据库基本知识基本概念基本概念数据模型数据模型n 数据(D
5、ata)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。数据模型通常都由数据结构,数据操作和完整性三个要素组成。n 数据库模型的三要素 1.数据结构 2.数据操作 3.完整性约束第8页数据库基本知识数据库基本知识基本概念基本概念数据模型的三要素数据模型的三要素n 数据结构 :用于描述系统的静态特性,研究与数据类型、内容、性质有关的对象,例如关系模型中的域、属性、关系等。n 数据操作 :数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及
6、实现操作的语言。n 数据的约束条件 :数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 第9页数据库基本知识数据库基本知识基本概念基本概念数据模型按不同的应用层次分类:数据模型按不同的应用层次分类:n 概念数据模型 Lodical Data Model 数据模型,是面向数据库用户的现实世界的模型。 ER模型n 逻辑数据模型 数据模型,用户从数据库中所看到的模型。是具体的DBMS所支持的数据模型。 层次数据模型(Hierarchical Data Model 树形图
7、) 网状数据模型(Network Data Model) 关系模型n 物理数据模型 Physical Data Model 物理模型,是面向计算机的物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。第10页数据库基本知识数据库基本知识基本概念基本概念层次模型层次模型网状模型网状模型关系模型关系模型层次模型层次模型网状模型网状模型关系模型关系模型特点它的特点是将数据组织成一对多关系的结构用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式为非结构化的结构,用单一的二维表的结构表示实体及实体之间的联系。优点存取方便且速度
8、快 结构清晰,容易理解 数据修改和数据库扩展容易实现 检索关键属性十分方便 能明确而方便地表示数据间的复杂关系 数据冗余小 结构特别灵活,满足所有布尔逻辑运算和数学运算规则形成的查询要求 能搜索、组合和比较不同类型的数据 增加和删除数据非常方便 缺点结构呆板,缺乏灵活性 同一属性数据要存储多次,数据冗余大(如公共边) 不适合于拓扑空间数据的组织网状结构的复杂,增加了用户查询和定位的困难。 需要存储数据间联系的指针,使得数据量增大 数据的修改不方便(指针必须修改)数据库大时,查找满足特定关系的数据费时 对空间关系无法满足第11页数据库基本知识数据库基本知识基本概念基本概念关系数据模型关系数据模型
9、n 数据结构: 一个关系模型的逻辑结构是一张二维表,它由行和列组成。表中的一行即为一个元组;表中的一列即为一个属性。n 操纵及完整性约束:关系数据模型的操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。 关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”,不必详细说明“怎么干”,从而大大地提高了数据的独立性。 关系数据库标准操作语言是SQL语言。n 存储结构:关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,每一个表通常对应一种文件结构。第12
10、页数据库基本知识数据库基本知识事务事务事务事务( (TransactionTransaction) )概念概念是访问并可能更新数据库中各种数据项的一个程序执行单元(unit); 在关系数据库中,一个事物可以是一条SQL语句,一组SQL语句或者整个程序; 分类分类l隐式事务:又称自动提交事务;如果运行一条 I N S E RT语句,SQL Server将把它包装到事务中,如果此I N S E RT语句失败,SQL Server将回滚 或取消这个事务.每条S Q L语句均被视为一个自身的事务.l显式事务:在显示事务中事务的开始与结束语句必须成对出现,否则会出现错误。是一种由你自己指定的事务.这种事
11、务允许你自己决定哪批工作必须成功完成, 否则所有部分都不完成.为了给自己的事务定界,可以使用关键字BEGIN TRANSACTION和 ROLLBACK TRANSACTION或COMMIT TRANSACTION. 引入原因引入原因当我们对表中数据进行修改时,当需要同时完成对多个表的数据修改时,即,一个表成功,另外表也成功,一个不成功,均不成功,则需要引入事务的概念,主要是解决数据的一致性。两种事务处理两种事务处理Commit(提交)Rollback(回滚)第13页数据库基本知识数据库基本知识事务事务事务的四个属性事务的四个属性(ACID)(ACID)原子性原子性(atomicity)一个事
12、务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性一致性(consistency)事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性隔离性(isolation)一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。持久性持久性(durability)持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。第14页第14页数据库基本知识数据库基本知识SQLSQL Str
13、uctured Query LanguageSQL Structured Query LanguageSql结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。SQL语言包含4个部分:n数据定义语言(DDL),提供定义关系模式、删除关系以及修改关系模式的命令。 例如:CREATE、DROP、ALTER等语句。 n数据操作语言(DML),包括基于关系代数和元祖关系演算的查询语言,还包括在数据库中插入、删除、修改元祖的命令。 例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。 n数据查询语言(DQ
14、L), 例如:SELECT语句。 n数据控制语言(DCL) ,用于控制对数据库对象操作的权限,它使用GRANT和REVOKE语句对用户或用户组授予或回收数据库对象的权限。 例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。第15页DDL基本概念基本概念DDLDDL(数据定义语言)(数据定义语言)Data Definition Language用于定义SQL模式、基本表、视图和索引的创建和撤消操作表名:1-30个字符类型:varchar2、number、date、blob 修改一个表的缺省值时只能影响后插入到表中的数据,不影响原有的数据大表删除一个字段时需要较长的时间,可以先
15、给unused后再进行删除 比如:alter table 表名 set unused column 字段 -将字段设为不可用 Alter table 表名 drop unused columns -删除不可用字段truncate table 表名 删除表所有记录 回收表空间注释:Comment on table 表名 is 第16页DDL创建表创建表- Create tablecreate table AA14( AAB001 VARCHAR2(14) not null, AAB321 VARCHAR2(6), AAA035 NUMBER(5,4), AAE041 VARCHAR2(6) no
16、t null, AAE042 VARCHAR2(6), AAE011 VARCHAR2(20), AAE036 DATE)tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );第17页DDL添加注释添加注释- Add comments to the table comment on table AA14 is 工伤保险单位浮动费率表;- Add comments to the columns comment on column A
17、A14.AAB001 is 单位编号;comment on column AA14.AAB321 is 行业风险类型;comment on column AA14.AAA035 is 浮动费率;comment on column AA14.AAE041 is 开始年月;comment on column AA14.AAE042 is 终止年月;comment on column AA14.AAE011 is 经办人;comment on column AA14.AAE036 is 经办日期;第18页DDL主键主键- Create/Recreate primary key constraints
18、alter table AA14 add constraint PK_AA14 primary key (AAB001, AAE041) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );第19页DDL外键外键- Create/Recreate foreign key constraints alter table AA14 add constraint FK_AA14_AA141 foreign ke
19、y (AAB001) references AA141(AAB001);第20页DDL唯一约束唯一约束- Create/Recreate unique key constraintsalter table SEC_USER add constraint UQ_SEC_USER_USERNAME_ unique (USERNAME_) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );第21页DDL索引索
20、引通过对表的某一个或某一些字段添加索引能加快对数据库的查询速度。通过对表的某一个或某一些字段添加索引能加快对数据库的查询速度。创建索引的优点创建索引的优点 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性 可以大大加快数据的检索速度,这也是创建索引的最主要的原因 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能创建索引的缺点创建索引的缺点 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 索引需要占物理空间,除了数
21、据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 第22页DDL索引索引索引是建立在数据库表中的某些列上的索引是建立在数据库表中的某些列上的适合创建索引的列适合创建索引的列 在经常需要搜索的列上,可以加快搜索的速度 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的 在经常需要排序的列上创建索引,因为索引已
22、经排序,这样查询可以利用索引的排序,加快排序查询时间 在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。不适合创建立索引的列不适合创建立索引的列 对于那些在查询中很少使用或者参考的列不应该创建索引 对于那些只有很少数据值的列也不应该增加索引 对于那些定义为text, image和bit数据类型的列不应该增加索引 当修改性能远远大于检索性能时,不应该创建索引 第23页DDL索引索引创建索引的语法创建索引的语法 创建索引的标准语法创建索引的标准语法:CREATE INDEX 索引名索引名 ON 表名表名 (列名列名) TABLESPACE 表空间名表空间名; 创建唯一索引创建唯一索
23、引:CREATE unique INDEX 索引名索引名 ON 表名表名 (列名列名) TABLESPACE 表空间名表空间名; 创建组合索引创建组合索引:CREATE INDEX 索引名索引名 ON 表名表名 (列名列名1,列名列名2) TABLESPACE 表空间名表空间名; 第24页DML基本概念基本概念DML(DML(数据操作语言数据操作语言) )概念概念 Data Manipulation Language,使用户能够操作已有数据库中数据的计算机语言。分类分类INSERT语句UPDATE语句DELETE语句第25页DMLINSERT语句语句INSERT语句语句 可以向数据库表中插入记
24、录可以向数据库表中插入记录INSERT完整语法完整语法INSERT INTO TABLE_NAME | VIEW_NAME(COLUMN_LIST) VALUES(VALUES_LIST) | SELECT_STATEMENT一次一行出现空值的情况:不明确写出列名,则默认插入空值,除非有默认值明确写出列名,values(NULL)给定空值第26页DMLUPDATE语句语句UPDATE语句语句 更新数据库中的数据更新数据库中的数据UPDATE完整语法完整语法UPDATE TABLE_NAME | VIEW_NAME SET TABLE_NAME | VIEW_NAME COLUMN_LIST |
25、 VARIABLE_LIST =expressionWHERE第27页DMLDELETE语句语句DELETE语句语句 删除数据库中的记录删除数据库中的记录DELETE完整语法完整语法DELETE FROM TABLE_NAME WHERE SEARCH_CONDITIONS当删除主表记录时,如果子表有对应的记录,可能会报错 第28页第28页DQL基本概念基本概念DQL( (数据查询语言数据查询语言) )概念概念 Data Query Language ,使用户能够查询已有数据库中数据的计算机语言。分类分类SELECT语句 select * from dual;第29页DMLSELECT语句语句
26、SELECTSELECT语句语句 SQL语言中的查询语句,是SQL语言最主要、最核心的语句SELECTSELECT完整语法完整语法SELECTALL|DISTINCT*|table.*|table.field1AS alias1,table.field2AS alias2,FROM tableexpression,WHEREGROUP BYHAVINGORDER BY第30页DMLSELECT语句语句1.语句中的关键字、字段、表名不区分大小写2.取出的字段可以用+ - * / 进行运算Select 1*2 from dual;3.可以用distinct过滤重复记录Select distinct
27、 dmmc from gg_dmnr;4.语句后用分号作结束符5.可以跨行写,但是关键字不能跨行6.null和0及空格的区别null:没有存储任何内容,有null参与的运算,其结果仍为null 0及空格:分配存储空间7.查询空值时用 is null 非空 is not null;8.rownum,rowid9.%第31页DMLSELECT语句语句nvl, decode select nvl(gsjc,aa), gsjc from jc_gysxx;select sybz, decode(sybz,-1,新注册,1,待审批,2,正式用户,已冻结) sm from jc_第32页DMLSELECT
28、语句语句to_date , to_char , substr -字符串转换成date select to_date(20141018101111,yyyy-MM-dd HH24:mi:ss) from dual; select to_char(sysdate,YYYYMMDDHH24MISS) from dual select substr(abcde,2,3) from dual;从第二字符截,一共截三个字符第33页DMLSELECT语句语句max,min,avg ,count,sum函数 select max(sxh) from gg_dmnr where fid=0048; select
29、 count(*) from gg_dmnr where fid=0048; select count(dmmc) from gg_dmnr; count某个字段,如果这个字段不为空就算一个. select count(distinct dmmc) from gg_dmnr; select sum(scjg) from fa_business_orderdetail t;select round(avg(scjg),2) from fa_business_orderdetail t;第34页DMLSELECT语句语句Group by语句 需求:现在想求,求每个机构类型平均注册奖金. selec
30、t avg(zczj) from jc_gysxx group by jglx; select avg(zczj),jglx from jc_gysxx group by jglx 求注册奖金最高的公司. select gsmc,max(zczj) from jc_gysxx;出错,因为max只有一个值,但等于max值的人可能好几个,不能匹配. 应如下求: select gsmc from jc_gysxx where zczj=(select max(zczj) from jc_gysxx; Group by语句应注意, 出现在select中的字段,如果没出现在组函数中,必须出现在Group
31、 by语句中第35页DML表连接表连接表连接表连接 通过表连接运算符可以实现多表查询。表连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志关联多表提取数据分为:内连接(相等及不等连接)、外连接(显示不满足条件的记录),交叉连接如果不加where条件,将出现T1(all row) T2(all row),笛卡尔乘积,一般情况下是没有实际意义当n个表连接时,需要n-1个连接条件第36页DML表连接表连接内连接(相等)内连接(相等)语法: select table1.column,table2.column from table1,table2 where table1.c
32、olumn1=table2.column2 and 例如:select gys.*,lxr.* from jc_gysxx gys,jc_gyslxr lxr where gys.id = lxr.gysbh ;第37页DML表连接表连接内连接(非等)内连接(非等)非等条件:= = 第38页DML表连接表连接外连接(使用外连接(使用+ +)(+)只能放置在号一边,紧跟在没有匹配列的列名后显示(+)对端表的全部信息(左连接(等号的右边)、右连接(等号的左边))delete jc_gyslxr where gysbh=(select id from jc_gysxx where gsmc=深圳市网
33、安计算机安全检测技术有限公司;select gys.gsmc,lxr.mc from jc_gysxx gys, jc_gyslxr lxr where gys.id = lxr.gysbh(+) order by mc desc;第39页DML表连接表连接自连接自连接SELECT * FROM route R1, route R2 WHERE R1.num=R2.num AND Rpany=Rpany select d1.* from gg_dmnr d1, gg_dmnr d2 where d1.fid = d2.id and d2.dmmc = 河南 -d1相当于子表 第40页DML子查询子查询子查询子查询一个查询依赖于另一个查询的结果,分为单行子查询和多行子查询 select * from jc_gyslxr where gysbh = (select id from jc_gysxx where gsmc = 神州数码(中国)有限公司)第41页DML子查询子查询in in 、not in not in 、 exists、not Oracle Oracle 导入导出导入导出exp user/pwdsid filc=c:xx.dmp owner=userimp user/pwdsid file=c:xx.dmp ignore=y;第42页第43页没有了
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。