《oracle数据库软件的使用》由会员分享,可在线阅读,更多相关《oracle数据库软件的使用(4页珍藏版)》请在金锄头文库上搜索。
1、Oracle数据库软件的使用序言:在进行Oracle数据库创建时,需要使用PowerDesigner软件创建E-R实体关系模型图,在今后的工作中,只要E-R实体关系模型图创建好后,就可以写出相应的代码以及使用PL/SQL软件创建数据库信息表。一、 创建E-R实体关系模型图使用PowerDesigner软件;创建数据库使用Toad软件或者PL/SQL软件,两者均可以创建数据库。(一)使用Toad软件1.创建数据库 登陆信息: 用户名SYS,密码为tiger Direct中Host: localhost ; Post: 1521; SID: orcl ; Connect: SYSDBA2.在Tab
2、lespaces里创建默认表空间和临时表空间 (1)创建默认表空间 Contents中选择Permanent 然后点DataFiles后,点ADD,填写name(如j2y03) ,size(如10MB),Auto Extend(如10MB)(2)创建临时表空间Contents中选择Temporary 然后点DataFiles后,点ADD,填写name(如temp_j2y03) ,size(如10MB),Auto Extend(如10MB)3.在Users里创建用户:(1)在User Info栏里Username(如j2y03);Password(如j2y03);(2)在Tablespace栏里
3、选择定义的默认表空间名和临时表空间名。(3)在Roles栏里给用户分配权限,找到DBA和RESOURCE,将后面三个框勾上。以上3部可以在toad里完成,也可以在PL/SQL中完成,这里以Toad为例。(二) 使用PowerDesigner创建E-R实体关系模型图1. 使用方法:A. 打开软件,点击新建模型,选择model types-physical date model-physical diagram 下面栏中选择ORACLE Version 10g 确定并进入,创建Table。B. 创建Table后双击:(1)在General中填写Name信息,该信息是作为tableName表名显示在
4、表上的(中英文均可);Code信息应填写对应Name信息的英文代码。(2)在Columns中Name列中第一行为该表的主键(英文),code列中填写主键的类型(一般为number类型包含int、long、double),主键的这一行必须标注P(PK代表主键)。(3)当遇到单选框或者复选框时,应双击Columns中的序列数栏,进入Column Properties中,进入备注信息,如: 1.01代表学生 2.02代表老师 3.03代表管理员 使用代号是节省字节数并便于管理统计,该备注是提醒在为数据库输入信息确认。 2. 数据库第三范式(定理范式)(1) 一对一的关系(2) 一对多的关系(3) 多
5、对多的关系对于多对多的关系中,拥有个定理范式:进行子查询时,需要添加n-1个条件, n的个数由表的数量决定。(条件:主表的主键 = 子表的外键)注:1.在模型图中,从多的一方指向单一的一方。2.单一一方的主键拿到多的一方里就形成了外键,外键用fk表示(三)使用PL/SQL软件根据E-R实体关系模型图创建数据库的Tables 1. 使用方法 (1)进入软件后,将ALL Object修改为My Object (2)在下拉文件中,寻找Tables文件夹和Sequence文件夹 A. Tables文件夹是根据E-R实体关系模型图建立对应的数据库表,并用于输入相应的数据信息。 B. Sequence文件
6、夹是创建主键序列(保证检验主键名的命名不重复) 命名规范:seq_tableName_PKname (seq_表名_主键名) 2. 具体操作步骤(关于Tables文件夹) (1)在tables文件中,新建,根据E-R实体模型图中的表信息,在PL/SQL软件中创建对应的表头信息。 A. 一般栏中填写的名称为tableName(即ER模型图中的General中的Code英文信息) B列栏中填写的名称为table_PKname,类型为Number(可以抄写ER模型图的信息),主键不能为空,外键也不能为空(如果存在外键的,外键信息也必须输入到表格中。 C . 键栏中只填写的名称为中文的主键说明,类型为
7、Primary(代表主键),列为主键的英文名称。在键栏里只能填写主键的信息,不能填写外键以及其他的信息。 3. 编辑数据库信息,采用SQL语句 在创建完表头信息后,在对表内信息进行信息更新时,最常用四句SQL语句(增、删、改、查)A. 增加 语法:insert into tableName values(seq_tableName_PKname.nextval, , )如:insert into tbuser values(seq_tbuser_userid.nextval , 毕珂 , 2006a133 ,27)B. 删除 语法:delete tableName where 如: delet
8、e tbuser where userid = 3 (where后面标注哪一个行需要删除,一般使用主键来表示具体哪一行,因为主键是不会重复的。)C. 修改 语法:update tableName set 修改的地方要修改为. where 如: update tbuser set username = 毕姥爷 where userid = 3D. 查看 语法:select * from tableName 如: select * from tbuser 4. 子查询(在子表中进行的查询为子查询) 如:select s.stuname , c.coursename , sc.score from
9、student s , course c , screference sc where s.stuid = sc.stuid and c.courseid = sc.courseid and s.stuname=毕珂 and c.coursename=oracleA. Select 与from之间的内容为需要显示的表头内容(相互间的内容用逗号分隔)B. From与where之间的内容为表名定义单一对象(相互间的内容用逗号分隔)C. Where后内容为n-1个条件即 主表的主键=子表的外键(相互间的内容用and分隔)D. 如果想需要查的更加详细,则在where后继续添加想要查询的条件。 注:1.
10、执行SQL语句用F8 2.提交SQL语句用F10 3.shift + home 光标在SQL语句的尾部,使用该组合按键后,会全选这一整句。 4.shift + end光标在SQL语句的头部,使用该组合按键后,会全选这一整句。二、SQL语句(一)查询(emp雇员表) 1、简单查询语法: (1) select * |具体的列 别名from 表名称;如:select * from emp ; (2) select distinct * |具体的列 别名 from 表名称 ;如:select distinct job from emp ; (distinct的作用是剔除掉job工作中的重复内容) 2、
11、限定查询语法: (1) select distinct *|具体的列 别名 from 表名称 where 条件(s)如:a.(简单条件限定)如: select * from emp where sal 1500 b. (不为空的表示 is not null) 如:Select * from emp where comm. Is not null c. (使用and操作符来表示必须两个条件都满足) 如:Select * from emp where sal 1500 and comm is not null d. (使用or操作符来表示两个条件有一个满足即可) 如:Select * from e
12、mp where sal 1500 or comm is not null e.(使用not相当于让整体的条件取反)如:Select * from emp where not (sal 1500 and comm is not null)f.(使用Between .and.满足1500x3000的要求,并包含了其中的等于功能;并支持时间查询功能)如:select * from emp where sal between 1500 and 3000 如:select * from emp where hiredate between 1-1月-81 and 31-12月-81 (2)在Oracl
13、e中是对大小写敏感的,所以在查询具体信息时必须以录入信息时采用的大小写的形式进行条件的编写(这里是采用大写记录的,所以使用大写) 如: select * from emp where ename=SMITH (3)如果要查询同列但是不同的内容信息时,则设置条件时要用or操作符连接 如:select * from emp where empno=001 or empno=002 or empno=003 (4)如果指定了查询范围,如果在范围内,可以使用in操作符完成 如果现在要求查询的内容不在范围内,可以使用not in完成( in操作符可以适用于数字查询、字符串查询) 如: select * from emp where empno in(001,002,003) (5)模糊查询(使用like操作符完成)(”%”:可以匹配任意长度的内容,”_”:可以匹配一个长度的内容;)如: select * from emp where ename like _M%