您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > ORACLE数据库简介
ORACLE数据库简介当前主流数据库及其简介ORACLESYSBASEINFORMIXSQLSERVERDB2关系数据库概念简介ORACLE数据库结构关系数据库简介•关系数据库元素•实体和联系•键(key)•数据完整性•SQL语言关系数据库逻辑结构数据库数学模型日常数据处理表(TABLE)关系(Relation)文件(File)行(ROW)元组(Tuple)记录(Record)列(COLUMN)属性(Attribue)字段(Field)实体和联系•实体(Entity):客观存在的并可相互区分的“事物”–实体通常成为表,表由行和列组成,每一行描述实体的一个示例,每一列描述实体的一个特征–实体在逻辑数据库设计时被确定•联系(Relation):实体之间存在的对应或连接关系–一对一关系(1:1):表中的一行与相关表中的零行或多行相关–一对多关系(1:n):表中的一行与相关表中的零行或多行相关–多对多关系(n:m):表中的多行与相关表中的零行或多行相关–联系的实现:在关系数据库设计中,联系通常利用逻辑键来实现。数据完整性(DataIntergrity)•实体完整性–关系中的元组在组成主键的属性上不能有空值,也不能有重复值,否则就不能起到唯一标识元组的作用•域完整性–关系中的属性取值的正确性限制,包括数据类型、精度、取值范围、是否允许空值等•参照完整性–反映了实体之间存在的某种约束条件。要求外键的值不允许参照不存在的主键的值,它使主键和外键之间的值保持一致或相容,来维护数据库数据的一致性或相容性•业务规则–一般包括数据完整性、参照完整性、遵循组织的任一其他需求,以便保证业务的正确运行键(key)•主键–超键(SuperKey):在一个关系中能唯一表示元组的属性集–侯选键(CandidateKey):一个属性集能唯一标识元组而又不含多余的属性–主键(PrimaryKey):被选用的侯选键•外键–公共键(CommonKey):两个关系中具有相容(或相同)的属性或属性组–外键(ForeignKey):如果公共键是其中一个关系的主键,那么这个公共键在另一个关系中称为外键•组合键–组合键(CompositKey):由两个或两个以上属性(列)组成的键数据完整性(DataIntergrity)数据库对象对象描述Table表,存储数据的基本单元,由行、列组成。View视图,虚拟表,由基于一个表或多个数据库表的一个查询定义。Sequence序列,序列生成器给表中的记录生成序列数字。Index索引,使用指针加快记录访问速度。Synonym同义名,给数据库对象起另一个名字,以方便参照。SQL语言(StructureQueryLanguage)•数据操纵语言(DML)–SELECT–DELETE–INSERT–UPDATE•数据定义语言(DDL)–CREATE定义数据库实体结构–ALTER修改数据库实体结构–DROP删除数据库实体–GRANT/REVOKE数据库对象的权限管理•数据控制语言(DCL)–COMMIT/ROLLBACK–SAVEPOINTSELECT:作用:根据WHERE条件从表,视图,SNAPSHOT中获取数据。语法:selectdistinct(alldefault)column_name(expt,*)fromtable(view,snapshot,subquery[selectlist])@dblinkwhere(startwithcondition)(connectbycondition)groupbyexpr(havingcondition)union(unionall,minus,intersect)orderby(expr,position,c_alias)asc(desc)forupdateof(table,viewsnapshot)columnnowaitUPDATE:作用:该语句用于修改表或基表的VIEW中的已存在的数据,如果要执行该语句必须拥有UPDATEPRIVILEGE。语法:updatetable(view,snapshot)@dblinkt_aliasset(column_arraay)=subquery2orcolumn=valueor=subquery3whereconditionINSERT:作用:该语句用于插入单条或一组记录到相应的表和基于单表的VIEW,如果要执行该语句必须拥有INSERTPRIVILEGE。语法:insertintoschema.table(vieworsubquery1)@dblink(column_name)values(column_values)(orsubquery2)(asselect……from……)DELETE:作用:该命令用于从表或基于单表的VIEW中删除一些记录,如果要执行该语句必须拥有DELETEPRIVELEGE。语法:delete[from]table(view)@dblinkaliaswhereconditionCOMMIT:ROLLBACK:一、Sql命令基础(数据操纵语言(DML))1、SQL命令基础-基本的SELECT命令SELECT{*,cloumn[alias],…}FROMtables;SELECT识别什么列FROM识别哪个表算术表达式对NUMBER和DATE型数据可用算术运算创建表达式*乘法/除法+加法-减法使用列的别名Selectenameasname,salsalaryfromemp;连结操作将列或字符与其它列连结用双竖条表示(||)产生的结果列是一个字符表达式重记录缺省条件下查询显示所有行,包括重行Selectserv_idfromservwhereacc_nbr=‘3069097’;删除重行使用DISTINCT关键字可删除重行Selectdistinctserv_idfromservwhereacc_nbr=‘3069097’;显示表结构DESCRIBEtablename;2、限定和排序数据限定所选择的数据使用where子句限定返回的记录SELECTcolumnFROMtablenameWherecondition(s);Where子句在from子句后字符串和日期-字符串和日期要用单引号扩起来-字符串是大小写敏感的,日期值是格式敏感的-缺省的日期格式是‘DD-MON-YY’比较运算符=等于大于=大于等于小于=小于等于不等于其它的比较运算符BETWEENAND两值之间(包含)IN(list)匹配列出的值LIKE匹配一个字符模式%表示零或多个字符_表示一个字符ISNULL是空值逻辑运算符AND如果组合条件是TRUE,返回TRUEOR如果组合的条件之一是TRUE,返回TRUENOT如果下面的条件是FALSE,返回TRUE优先级规则1所有比较运算符2NOT3AND4OR使用括号提高优先级ORDERBY子句Orderby子句将记录排序ASC:升序(缺省)DESC:降序ORDERBY子句在SELECT指令的最后使用别名的列排序多个列排序常用SQL函数字符函数:大小写转换函数LOWER:将字符转换成小写UPPER:将字符转换成大写INITCAP:将每个单词的第一个字母转换成大写,其它小写。字符处理函数CONCAT(‘Good’,’String’结果GoodStringSUBSTR(‘String”,1,3)结果StrLENGTH(‘String’)结果6INSTR(‘String’,’r’)结果3LTRIM:把某一CHAR型数据的左边空格删除RTRIM:把某一CHAR型数据的右边空格删除数字函数ROUND4舍5入round(45.926,2)45.93TRUNC截断trunc(45.926,245.92MOD取余数mod(1600,300)100转换函数:TO_CHAR:把某一数据类型转换成CHAR型TO_DATE:把某一数据类型转换成DATE型,须考虑特定的数据格式TO_NUMBER:把某一数据类型转换成NUMBER型3、从多个表中显示数据使用等值连接selecta.serv_id,b.name,a.chargefromacct_itema,acct_item_typebwherea.acct_item_type_id=b.acct_item_type_idanda.serv_idin(selectserv_idfromservwhereacc_nbr='3061818'andstate='F0A')anda.billing_cycle_id=161使用别名简化连接多个表selectc.acc_nbr,b.name,a.chargefromacct_itema,acct_item_typeb,servcwherea.acct_item_type_id=b.acct_item_type_idanda.serv_id=c.serv_idandc.acc_nbr='3061818'andc.state='F0A'anda.billing_cycle_id=1614、使用组函数合计数据什么是分组函数分组函数运算每一组记录,每一组返回一个结果。这些组可能是整表,也可能是由一个表分成的多个组。分组函数类型AVGCOUNTSUMMAXMIN产生数据组GROUPBY子句Selectcount(*),substr(ktzr_hm,1,3)fromktzrWheresubstr(ktzr_hm,1,1)=‘2’Groupbysubstr(ktzr_hm,1,3);限定组的结果HAVING子句-记录被分组-应用组函数-匹配HAVING子名的组被显示Selectcount(*),substr(ktzr_hm,1,3)fromktzrWheresubstr(ktzr_hm,1,1)=‘2’Groupbysubstr(ktzr_hm,1,3)Havingcount(*)10000;5、使用子查询子查询:在一个select中嵌入另一个查询语句Selectserv_id,acc_nbrfromservWheresubstr(acc_nbr,1,1)='2'andserv_idin(selectserv_idfromacct_itemwhereacct_item_type_id=212andbilling_cycle_id=161);6、操作数据-DML语句-INSERT,UPDATE,DELETE命令操作数据-控制事务INSERTINTOtable[cloumn,…]VALUES(value,…)从其他表中拷贝数据:INSERTINTOtable1(cloumn,…ASselectcloumn,…fromtable2where…;UPDATE语句UPDATEtableSETcolumn=value[,column=value][WHEREcondition];DELETE语句DELETEFROMtable[WHEREcondition];数据库的事务COMMIT;ROLLBACK;二、数据定义语言(DDL)SQL语句CREATETABLE:CREATETABLE(COLUMNNAME)CREATETABLEASSELECTCOLUMNNAME(*)FROMTABLE_NAMECOPYFROMTOREPLACE(CREATE)ALTERTABLE:DROPTABLE:CREATE(ALTER/DROP)INDEX:
本文标题:ORACLE数据库简介
链接地址:https://www.777doc.com/doc-12544 .html