您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 15Linux下Oracle的使用入门
Oracle数据库设计入门第十章本章目标理解数据库设计的基本方法掌握创建用户分配权限掌握序列掌握oracle常用函数数据库范式概念设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式数据库的范式第一范式第一范式(1NF)是指数据库表的每一列是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性例如:张三这个实体不能在性别这个属性上存在可男可女的情况.第二范式第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,要求数据库表中的每个实例或行必须可以被惟一地区分例如:张三这个实体必须有被唯一标识可用的属性(学号或者身份证号).第三范式满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息例如:张三的性别值没有必要在多个表重复出现.(可以允许主外键关联)一般设计只要求满足到3NF就可以了PowerDesigner的使用PowerDesigner主要包括以下几个功能部分:DataArchitect这是一个强大的数据库设计工具。ProcessAnalyst这部分用于创建功能模型和数据流图,创建处理层次关系。AppModeler为客户/服务器应用程序创建应用模型。ODBCAdministrator此部分用来管理系统的各种数据源。PowerDesigner的界面数据库的ER模型数据库的物理模型正向工程直接地从PDM产生一个数据库,或产生一个能在你的数据库管理系统环境中运行的数据库脚本,这是正向工程。步骤:1选择Database-GenerateDatabase。数据库生成对话框出现。它显示生成叁数。默认叁数已经被选择。2SQL的文件名称框中键入PDM_TUTORIAL。3在目录框中,输入一条路径。4选择生成脚本的按钮。5选择仅仅生成一个文件。6点击Selection定位键。7点击底部表定位键。表页列出模型中选择可用的所有数据库表。8全部点击选择工具。这选择所有的表复选框。9切换Views和Domains选择需要的视图和域。10点击确定。逆向工程2-1将已存在的数据库进新的PDM之内。数据来源可能是从脚本文件或一个开放数据库连接数据来源,这是逆向工程。一般要先定义一个数据库对象ODBC,然后再生成新的PDM。逆向工程来自一个脚本文件的数据库对象步骤:1选择File-ReverseEngineer-Database显示新的物理数据模型的对话框。2点击部份Radio按钮。3选择下拉列表框的一个数据库管理系统。4点击确定。数据库逆向工程对话框出现。5点击使用脚本文件的Radio按钮。6浏览适当的目录选择脚本文件。7点击选项定位键显示选项页。8选择逆向工程选项。9点击确定。逆向工程2-2逆向工程一个ODBC到新的PDM步骤:1选择File-ReverseEngineer-Database显示新的物理数据模型的对话框。2点击Share单选框。3选择下拉列表框的一个数据库管理系统。4点击确定。数据库逆向工程对话框出现。。5点击使用一个ODBC单选框,选择一个ODBC。6点击选项定位键显示选项页。7选择逆向工程选项。8点击确定。ODBC逆向工程对话框出现。9在上面部份对话框的下拉列表框中选择限定词和拥有者。10点击一个对象类型定位键。11点击确定。DDL概述DDL为数据定义语言以下为部分内容创建数据库创建用户创建表空间建表建视图建索引建过程函数包等。。。。建作业Linux下启动oracle首先在shell环境下输入sqlplus“/assysdba”以管理员身份进入在sql提示符下敲入startup命令启动数据库启动oracle监听器lsnrctlstartWinndow下访问linuxoracle首先windows下安装oracle客户端工具修改tnsname.ora文件,添加linux下oralce的ip地址等信息利用plsqldevpment工具连接到liunx中Oracle逻辑结构图创建表空间创建表空间的语法是:createtablespacetablespacenamedatafile‘filename’[sizeinteger[K|M]][autoextend[OFF|ON]];数据库用户概念数据库系统安全需要控制和存储以下内容用户名口令的组合用户是否授权可连接数据库用户创建实体集的可用的磁盘空间的大小用户资源的限制,是否启动了数据库审记功能用户可进行那些操作创建用户的时候系统自动对该用户建立一个相应的模式,模式名和用户名相同,用户仅与一个同名的模式对应和用户相关的还包含用户默认表空间用户临时表空间用户资源文件PROFILE建用户语法createuser用户名identifiedby“密码”defaulttablespace默认表空间名temporarytablespace临时表空名profileDEFAULT资源文件QUOTAINTEGEK[M][UNLIMITED]ONposdata;建用户CREATEUSER“POS”IDENTIFIEDBY“pos”DEFAULTTABLESPACEposdataTEMPORARYTABLESPACEpostmpPROFILEDEFAULTQUOTA100mONposdata说明POS用户密码是pos默认表空间是posdata,临时表空间是postmp此用户只能使用posdata上的100M空间数据库权限概述数据库系统通过安全措施防止非法用户对数据进行存储,以保证数据库安全运行,Oracle的安全机制主要是通过权限进行设置的,通过权限设置防止非权限的数据库存取,非权限的对模式实体的存取,只有通过权限的人证才可以存取数据库中数据。ORACLE根据系统管理方式不同,可以将权限分为两类系统权限实体权限。权限管理系统权限系统权限是执行某一类或者在某一用户中执行某种操作的权限,每一种系统权限允许用户执行一种特殊的数据库操作或者某一类数据库操作。比如建表空间建用户修改数据库结构修改用户权限修改数据库结构修改任何用户的实体,创建基表,视图,同义,创建数据库链路等权限。实体权限实体权限是指某一用户对其他用户的表,视图,序列,存储过程,函数,包的操作权限,不同类型的实体具有不同的实体权限。对于某些模式实体,比如聚簇,索引,触发器,数据库链路等没有相应的实体权限,这些权限由系统权限进行管理。分配/回收权限语法分配权限GRANT权限TO回收权限用户名角色名publicRevoke权限FROM用户名角色名public分配/回收系统权限授权SQLGRANTcreatesession,createtabletoJAME,JACKSQLGRANTcreatesession,createtabletoJAME,JACKWITHADMINOPTION回收权限SQLREVOKEcreatesession,createtableFROMJAME,JACK说明:权限回收并没有回收由回收者已经分配出去的权限,这点和SQLSERVER的revoke权限fromusercascade不同分配/回收实体权限授权SQLGRANTSELECT,UPDATE,DELETEONordersTOJACK回收权限SQLREVOKESELECT,UPDATEONordersFROMJACK创建表创建表语句:Createtabletablename(filednametype[notnull,default],..)[Tablespacetablespace_name];对表加注释:commentontabletablenameis‘…’;对表字段加注释:commentoncolumnT_USER.SUSERis‘…‘;Oracle数据类型创建表时,必须为各个列指定数据类型以下是Oracle数据类型的类别:数据类型字符数值日期时间RAW/LONGRAWLOBOracle数据类型(字符)当需要固定长度的字符串时,使用CHAR数据类型。CHAR数据类型存储字母数字值。CHAR数据类型的列长度可以是1到2000个字节。VARCHAR2数据类型支持可变长度字符串VARCHAR2数据类型存储字母数字值VARCHAR2数据类型的大小在1至4000个字节范围内LONG数据类型存储可变长度字符数据LONG数据类型最多能存储2GB字符数据类型CHARVARCHAR2LONG数据型日期型数值数据类型可以存储整数、浮点数和实数最高精度为38位数值数据类型的声明语法:NUMBER[(p[,s])]P表示小数点前的位数,S表示小数点的位数日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒主要的日期时间类型有:DATE-存储日期和时间部分,精确到整个的秒TIMESTAMP-存储日期、时间和时区信息,秒值精确到小数点后6位序列Sequence•为所有的用户生成统一的序列号,也可以给某些主键列自动生成编号值•语法格式:CREATESEQUENCE[schema.]sequence[INCREMENTBYinteger][STARTWITHinteger][MAXVALUEinteger|NOMAXVALUE][MINVALUEinteger|NOMINVALUE][CYCLE|NOCYCLE][CACHEinteger|NOCACHE]示例-序列创建和使用1、创建序列createsequenceseq_snoincrementby1startwith1maxvalue99999nocycle;2、删除序列dropsequenceseq_sno;3、取序列对象中的当前值selectseq_sno.currvalfromdual;4、取序列对象中的下一个值selectseq_sno.nextvalfromdual;--此时对象中当前序列值自动增长了“虚”列rownumrownum是一个虚列,在表中并不存在,oracle为每个查询后的结果集的记录分别编号,该编号就是rownum1)限制返回的结果集只能是10行select*fromtab_studentwhererownum102)将编号保存到实际的列中updatetab_studentsetcol_num=rownum;3)不能用rownum对比更大的数select*fromtab_studentwhererownum10--该条件返回falseORACLE中常见系统函数字符串函数算术函数日期函数其他函数字符串函数函数返回值ASCII(char)字符串首字符的ASC码值TO_CHAR(S,F)ASC码值为需要转化的字符F为格式INITCAP(char)将字符串中每个单词的首字母大写INSTR(char1,char2[,m[,n]])给出字符串char1中从起始位置m开始第n次出现子串char2的位置LENGTH(char)计算字符串的长度LOWER(char)、UPPER(char)将字符串中所有的大写字母变为小(大)写LPAD(char1,n[,char2])从左侧用字符串char2补齐字符串char1至长度nLTRIM(char[,SET])把char中最左侧的若干个字符去掉,以使其首字符不在SET中RPAD(char1,n[,char2])从右侧用char2补齐char1至长度n.RTRIM(char[,SET])把char中最右侧的若干个字符去掉,以使其尾字符不在SET中TO_DATE(char[,fmt])将字符型的日期转换为日期型TO_NUMBER(char[,fmt])将字符串转换为数字算术函数函数返回值AB
本文标题:15Linux下Oracle的使用入门
链接地址:https://www.777doc.com/doc-7733 .html