《数据库培训ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据库培训ppt课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、数据库,第2页,1、安装2、基本概念数据数据库数据库管理系统数据库系统数据模型数据模型的三要素关系模型3、事务,数据库,一数据库基本知识,数据库,数据定义语言(DDL Data Definition Language)例如:CREATE、DROP、ALTER等语句。数据操作语言(DML Data Manipulation Language)例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。数据查询语言(DQL Data Query Language)例如:SELECT语句。数据控制语言(DCL Data Control Language)例如:GRANT、REVOKE
2、、COMMIT、ROLLBACK等语句。,第3页,二.SQL,数据库,数据库安装文档Sql Plus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。从开始程序运行:sqlplus,是图形版的sqlplus.http:/localhost:5560/isqlplusPlSql Developer 用法(重点),数据库导入导出,pdmalter user scott account unlock;解锁scott 密码为tiger,第4页,安装,第5页,数据库基本知识基本概念,描述事物的符号,数字、文字、图表、图像、声音等都是数据。数据的形式本身并不能完全表达其内容,需要经过
3、语义解释,数据与其语义是不可分的,数据(Data),数据库(DB即Database),数据库是长期存储在计算机内有结构的大量的共享的数据集合。它可以供各种用户共享、具有最小冗余度和较高的数据独立性,第6页,数据库基本知识基本概念,数据库管理系统(DBMS)Database Management System,是位于用户与操作系统之间的数据管理软件。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复数据库系统(DBS)Database System,狭义地讲是由数据库、数据库管理系统和用户构成,广义地讲是由计算机、硬件、操
4、作系统、数据库管理系统以及在它支持下建立起来的数据库应用程序、用户和维护人员组成的一个整体,第7页,数据库基本知识基本概念,数据模型,数据(Data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。数据模型通常都由数据结构,数据操作和完整性三个要素组成。数据库模型的三要素 1.数据结构 2.数据操作 3.完整性约束,第8页,数据库基本知识基本概念,数据模型的三要素,数据结构:用于描述系统的静态特性,研究与数据类型、内容、性质有关的对象,例如关系模型中的域、属性、关系等。数据操作:数据库主要有检索和更新(包括插入
5、、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据的约束条件:数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。,第9页,数据库基本知识基本概念,数据模型按不同的应用层次分类:,概念数据模型 Lodical Data Model 数据模型,是面向数据库用户的现实世界的模型。ER模型逻辑数据模型 数据模型,用户从数据库中所看到的模型。是具体的DBMS所支持的数据模型。层次数据模型(Hierarchica
6、l Data Model 树形图)网状数据模型(Network Data Model)关系模型物理数据模型 Physical Data Model 物理模型,是面向计算机的物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。,第10页,数据库基本知识基本概念,第11页,数据库基本知识基本概念,关系数据模型,数据结构:一个关系模型的逻辑结构是一张二维表,它由行和列组成。表中的一行即为一个元组;表中的一列即为一个属性。操纵及完整性约束:关系数据模型的操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系模型中的数据操
7、作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”,不必详细说明“怎么干”,从而大大地提高了数据的独立性。关系数据库标准操作语言是SQL语言。存储结构:关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,每一个表通常对应一种文件结构。,第12页,数据库基本知识事务,事务(Transaction),概念是访问并可能更新数据库中各种数据项的一个程序执行单元(unit);在关系数据库中,一个事物可以是一条SQL语句,一组SQL语句或者整个程序;分类隐式事务:又称自动提交事务;如果运行一条 I N S
8、 E RT语句,SQL Server将把它包装到事务中,如果此I N S E RT语句失败,SQL Server将回滚 或取消这个事务.每条S Q L语句均被视为一个自身的事务.显式事务:在显示事务中事务的开始与结束语句必须成对出现,否则会出现错误。是一种由你自己指定的事务.这种事务允许你自己决定哪批工作必须成功完成,否则所有部分都不完成.为了给自己的事务定界,可以使用关键字BEGIN TRANSACTION和 ROLLBACK TRANSACTION或COMMIT TRANSACTION.引入原因当我们对表中数据进行修改时,当需要同时完成对多个表的数据修改时,即,一个表成功,另外表也成功,一
9、个不成功,均不成功,则需要引入事务的概念,主要是解决数据的一致性。两种事务处理Commit(提交)Rollback(回滚),第13页,数据库基本知识事务,事务的四个属性(ACID),原子性(atomicity)一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency)事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation)一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。持久性(durability)持续性也称永久
10、性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。,第14页,第14页,数据库基本知识SQL,SQL Structured Query Language,Sql结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。SQL语言包含4个部分:数据定义语言(DDL),提供定义关系模式、删除关系以及修改关系模式的命令。例如:CREATE、DROP、ALTER等语句。数据操作语言(DML),包括基于关系代数和元祖关系演算的查询语言,还包括在数据库中插
11、入、删除、修改元祖的命令。例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。数据查询语言(DQL),例如:SELECT语句。数据控制语言(DCL),用于控制对数据库对象操作的权限,它使用GRANT和REVOKE语句对用户或用户组授予或回收数据库对象的权限。例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。,第15页,DDL基本概念,DDL(数据定义语言),Data Definition Language用于定义SQL模式、基本表、视图和索引的创建和撤消操作表名:1-30个字符类型:varchar2、number、date、blob 修改一个表的缺省
12、值时只能影响后插入到表中的数据,不影响原有的数据大表删除一个字段时需要较长的时间,可以先给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),AAA03
13、5 NUMBER(5,4),AAE041 VARCHAR2(6)not 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 co
14、lumns comment on column AA14.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/Recreat
15、e primary key constraintsalter 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_AA
16、14_AA141 foreign key(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);
17、,第21页,DDL索引,通过对表的某一个或某一些字段添加索引能加快对数据库的查询速度。创建索引的优点通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性可以大大加快数据的检索速度,这也是创建索引的最主要的原因可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能创建索引的缺点创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的
18、空间就会更大当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。,第22页,DDL索引,索引是建立在数据库表中的某些列上的适合创建索引的列在经常需要搜索的列上,可以加快搜索的速度在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。不适合创建立索引的列对于那
19、些在查询中很少使用或者参考的列不应该创建索引对于那些只有很少数据值的列也不应该增加索引对于那些定义为text,image和bit数据类型的列不应该增加索引当修改性能远远大于检索性能时,不应该创建索引,第23页,DDL索引,创建索引的语法创建索引的标准语法:CREATE INDEX 索引名 ON 表名(列名)TABLESPACE 表空间名;创建唯一索引:CREATE unique INDEX 索引名 ON 表名(列名)TABLESPACE 表空间名;创建组合索引:CREATE INDEX 索引名 ON 表名(列名1,列名2)TABLESPACE 表空间名;,第24页,DML基本概念,DML(数据
20、操作语言),概念 Data Manipulation Language,使用户能够操作已有数据库中数据的计算机语言。分类INSERT语句UPDATE语句DELETE语句,第25页,DMLINSERT语句,INSERT语句 可以向数据库表中插入记录INSERT完整语法,INSERT INTO TABLE_NAME|VIEW_NAME(COLUMN_LIST)VALUES(VALUES_LIST)|SELECT_STATEMENT,一次一行出现空值的情况:不明确写出列名,则默认插入空值,除非有默认值明确写出列名,values(NULL)给定空值,第26页,DMLUPDATE语句,UPDATE语句
21、更新数据库中的数据UPDATE完整语法,UPDATE TABLE_NAME|VIEW_NAME SET TABLE_NAME|VIEW_NAME COLUMN_LIST|VARIABLE_LIST=expressionWHERE,第27页,DMLDELETE语句,DELETE语句 删除数据库中的记录DELETE完整语法,DELETE FROM TABLE_NAME WHERE SEARCH_CONDITIONS,当删除主表记录时,如果子表有对应的记录,可能会报错,第28页,第28页,DQL基本概念,DQL(数据查询语言),概念 Data Query Language,使用户能够查询已有数据库中
22、数据的计算机语言。分类SELECT语句 select*from dual;,第29页,DMLSELECT语句,SELECT语句 SQL语言中的查询语句,是SQL语言最主要、最核心的语句SELECT完整语法,SELECTALL|DISTINCT*|table.*|table.field1ASalias1,table.field2ASalias2,FROMtableexpression,WHEREGROUPBYHAVINGORDERBY,第30页,DMLSELECT语句,1.语句中的关键字、字段、表名不区分大小写2.取出的字段可以用+-*/进行运算Select 1*2 from dual;3.可以
23、用distinct过滤重复记录Select distinct 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,正式用户,已
24、冻结)sm from jc_gysxx,第32页,DMLSELECT语句,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_dmn
25、r where fid=0048;select 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语句 需求:现在想求,求每个机构
26、类型平均注册奖金.select 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中的字段,如果没出现在组函数中,必须出现在
27、Group 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.colum
28、n1=table2.column2 and 例如:select gys.*,lxr.*from jc_gysxx gys,jc_gyslxr lxr where gys.id=lxr.gysbh;,第37页,DML表连接,内连接(非等),非等条件:=between,第38页,DML表连接,外连接(使用+),(+)只能放置在号一边,紧跟在没有匹配列的列名后显示(+)对端表的全部信息(左连接(等号的右边)、右连接(等号的左边))delete jc_gyslxr where gysbh=(select id from jc_gysxx where gsmc=深圳市网安计算机安全检测技术有限公司;se
29、lect 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 R2WHERE 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、not in、exists、not exists,Oracle 导入导出,exp user/pwdsid filc=c:xx.dmp owner=userimpuser/pwdsid file=c:xx.dmp ignore=y;,第42页,第43页,没有了,
链接地址:https://www.31ppt.com/p-2157257.html