版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上第一部分 案例描述 案例目的学习Oracle数据库的基本概念、建库、建表、基本增删改查,复杂查询(条件、关联、复合),同时学习数据库对象:视图、索引的使用,还有oralce独有的两个数据库对象:序列和同义词的使用方法和场合,培养学生关于数据库的设计能力与数据的操作能力。案例覆盖技能点1、 Oracle数据库基本概念2、 建库、建表、建约束3、 实现基本增删改查等数据的操作1) 对数据库进行增加2) 删除3) 修改4、 根据业务的需要建视图、索引、序列和同义词1) 建视图2)
2、 建索引3) 建序列4) 建同义词5、 高级查询技术1) 会使用 group by、关键字2) 会使用CASEWHENTHEN3) 会使用关联查询 4) 会使用子查询 第二部分 需求和开发环境使用技术和开发环境Oracle10g聊天系统最终要实现的功能与QQ大致相同,主要包括聊天(支持文本、语音和视频)、传送文件和远程协助等功能。在此,只实现其最基本功能以文本形式进行聊天。*/*1. 注册用户管理包括用户的注册、用户基本信息的修改(包括修改密码)、用户的删除、用户的登录验证,以及用户信息
3、的查看和查找等。2. 管理员管理包括管理员的添加、修改、删除、登录验证和查询等。3. 好友管理包括申请添加好友、对添加好友的验证信息进行处理、删除好友(从好友列表中删除)等。4. 聊天信息管理包括发出聊天信息、显示聊天信息等。1)用户表表名 t_user(用户表)列名 描述 数据类型(精度范围) 空/非空 约束条件Userid 用户编号 NUMBER(38) 非空 主键(自增),初始值10001Pwd 密码 NVARCHAR2(100) 非空
4、0;Nickname 昵称 NVARCHAR2(10) 非空 Sex 性别 NUMBER(1) CHECKBirthday 出生日期 DATE Currstate 当前状态 NUMBER(1) 默认值0,外键friendshippolicy 交友策略 NUMBER(1) 外键2)用户状态表表名 t_onlinestate(用户在线状态表)
5、列名 描述 数据类型(精度范围) 空/非空 约束条件Stateid 状态编号 NUMBER(1) 非空 主键Statedesc 状态描述 NVARCHAR2(10) 非空 唯一用户状态表里的数据如下:编号 用户在线状态1 在线2 离线3 隐身4 忙碌3)交友策略表表名 t_friendshippolicy(交友策略表)列名 描述 数据类型(精度范围)
6、60;空/非空 约束条件Polid 编号 NUMBER(1) 非空 主键Policy 交友策略 NVARCHAR2(20) 非空 唯一交友策略表数据如下:编号 交友策略1 允许任何人加我为好友2 不允许任何人加我为好友3 经过验证才允许别人加我为好友4)好友表表名 t_friend(好友表)列名 描述 数据类型(精度范围) 空/非空 约束条件Ufid 编号
7、NUMBER(38) 非空 主键(自增)Userid 用户编号 NUMBER(38) 非空 外键Friendid 好友编号 NUMBER(38) 非空 外键4)聊天信息表表名 t_message(聊天消息表)列名 描述 数据类型(精度范围) 空/非空 约束条件Messageid 编号 NUMBER(38) 非空 主键(自增)Fromuserid 信息发出者
8、 NUMBER(38) 非空 外键Touserid 信息接收者 NUMBER(38) 非空 外键Content 信息内容 NVARCHAR2(50) messagetype 信息类型 NUMBER(1) CHECKState 是否已读 NUMBER(1) 默认值,CHECKSendtime 发出时间 DATE 默认值
9、5)管理员表表名 t_admin(管理员表)列名 描述 数据类型(精度范围) 空/非空 约束条件Adminid 编号 NUMBER(10) 非空 主键(自增)adminname 管理员名称 NVARCHAR2(20) 非空 唯一Adminpwd 密码 NVARCHAR2(100) 非空 第三部分 问题分析和推荐步骤1. 创建数据库和相应的表1) 创建数据库Ø
10、 利用现有的数据库,利用示例用户scott的身份登录。在scott模式下准备新建表(本来应该新建数据库,为新数据库创建用户并为新用户授权,以新的新用户登录来创建数据表)Ø 利用命令创建数据库比较繁琐,可以不要求使用2) 创建数据表Ø 创建以上5个数据表1)用户表create or replace table t_user(-(用户表)-列名 描述 数据类型(精度范围) 空/非空 约束条件 Userid NUMBER(38) primary key not
11、null,- 非空 主键(自增),初始值10001 Pwd NVARCHAR2(100) not null,- 非空 Nickname NVARCHAR2(10) not null,- 非空 Sex NUMBER(1) CHECK( Sex in (0,1), Birthday DATE, Currstate NUMBER(1) default 0 r
12、eferences t_onlinestate(Stateid),- 默认值0,外键 friendshippolicy NUMBER(1) references t_friendshippolicy(Polid)- 外键);insert into t_user(Pwd,Nickname,Sex,Birthday,Currstate,friendshippolicy) values ('shihua','shihua',0
13、,sysdate,1,1);select * from t_user;drop sequence seq_user;create sequence seq_user increment by 1 start with 10001 maxvalue nocycle cache 10;create or replace trigger tir_user before insert on t_user for each rowbegin selec
14、t seq_user.nextval into :new.Userid from dual;end;2)用户状态表create table t_onlinestate(-(用户在线状态表)-列名 描述 数据类型(精度范围) 空/非空 约束条件 Stateid NUMBER(1) primary key not null,- 非空 主键 Statedesc NVARCHAR2(10) unique not n
15、ull- 非空 唯一);insert into t_onlinestate values (1,'在线');insert into t_onlinestate values (2,'离线');insert into t_onlinestate values (3,'隐身');insert into t_onlinestate values (4,'忙碌');select * from t_onlinestate;/*用户状态表里的数据如下:编号 用户在线状态1 在线2 离
16、线3 隐身4 忙碌*/3)交友策略表create table t_friendshippolicy(-(交友策略表)-列名 描述 数据类型(精度范围) 空/非空 约束条件 Polid NUMBER(1) primary key not null,- 非空 主键 Policy NVARCHAR2(20) unique not null- 非空 唯一);insert into t_friendshippolicy values
17、(1,'允许任何人加我为好友');insert into t_friendshippolicy values (2,'不允许任何人加我为好友');insert into t_friendshippolicy values (3,'经过验证才允许别人加我为好友');select * from t_friendshippolicy;/*交友策略表数据如下:编号 交友策略1 允许任何人加我为好友2 不允许任何人加我为好友3 经过验证才允许别人加我为好友*/4)好友表create table t_frien
18、d(-(好友表)-列名 描述 数据类型(精度范围) 空/非空 约束条件 Ufid NUMBER(38) primary key not null,- 非空 主键(自增) Userid NUMBER(38) not null references t_user(Userid),- 非空 外键 Friendid NUMBER(38) not null references t_user(Userid) - 非空 外键);insert in
19、to t_friend(userid,friendid) values (10004,10005);insert into t_friend(userid,friendid) values (10004,10006);insert into t_friend(userid,friendid) values (10005,10004);insert into t_friend(userid,friendid) values (10005,10006);select * from t_friend;create sequence seq_friend; create or replace
20、 trigger tir_friend before insert on t_friend for each rowbegin select seq_friend.nextval into :new.Ufid from dual;end;4)聊天信息表create table t_message(-(聊天消息表)-列名 描述 数据类型(精度范围) 空/非空 约束条件 Messageid NUMBER(38) primary
21、 key not null,- 非空 主键(自增) Fromuserid NUMBER(38) not null references t_user(Userid),- 非空 外键 Touserid NUMBER(38) not null references t_user(Userid),- 非空 外键 Content1 VARCHAR2(50), messagetype NUM
22、BER(1) CHECK(messagetype in (0,1), State NUMBER(1) default 0 CHECK(State in (0,1), Sendtime DATE default sysdate- 默认值);insert into t_message(fromuserid,touserid,content1,messagetype) values (10004,10005,'相聚离开 都有时候',0);insert in
23、to t_message(fromuserid,touserid,content1,messagetype) values (10007,10008,'相聚离开 都有时候',0);select * from t_message;create sequence seq_message; create or replace trigger tir_messaged before insert on t_message for each rowbegin select seq_message.next
24、val into :new.Messageid from dual;end;5)管理员表create table t_admin(-(管理员表)-列名 描述 数据类型(精度范围) 空/非空 约束条件 Adminid NUMBER(10) primary key not null,- 非空 主键(自增) adminname NVARCHAR2(20) unique not null,-
25、;非空 唯一 Adminpwd NVARCHAR2(100) not null- 非空 );insert into t_admin(adminname,adminpwd) values ('shihua','shihua');select * from t_admin;create sequence seq_admin; create or replace trigger tir_admin before insert on t_admin for each rowbegin
26、60; select seq_admin.nextval into :new.Adminid from dual;end;3) 创建表主键的约束Ø 按照设计要求建立主键和其他约束2. 增加数据表的数据1) 增加表数据2) 交友策略表和在线状态表一定按要求添加相应的数据3创建视图、序列1) 用序列实现自增主键。用户编号使用序列实现自动增长以保证唯一。所有保证唯一的都可以使用该序列2) 创建视图:查询某个好友的聊天记录drop view v
27、_message;create view v_message asselect fromuserid,touserid,Content1,sendtime from t_message;select * from v_message where fromuserid = &fromuserid and touserid = &touserid;3) 创建视图:查询某个用户的所有好友。create view v_friend asselect userid,friendid from t_friend;select * from v_friend where user
28、id = &userid;4数据的查询1) 注册会员的过程,其实就是将用户提供的一些基本信息输入到用户表的过程,用一条INSERT语句就可以解决问题,考虑到可能会有大量的用户进行注册,为提高系统性能,将此功能设计成一个存储过程。-insert into t_user(Pwd,Nickname,Sex,Birthday,Currstate,friendshippolicy) values ('shihua','shihua',0,sysdate,1,1);insert into t
29、_user(Pwd,Nickname,Sex,Birthday,Currstate,friendshippolicy) values ('&密码','&真实姓名',&性别0或1,sysdate,&当前状态请输入1,&交友状态请输入1);-create or replace procedure register_proc( pwd varchar2, nickname varchar2, sex number, b
30、irthday date, currstate number, friendshippolicy number)isbegin insert into t_user values(userid_seq.nextval,pwd,nickname,sex,birthday,currstate,friendshippolicy);end;set serveroutput on;exec register_proc('123','曹操',1,'01-1月-1995',3,3);2) 从需求来看,不管是基本查
31、询,还是高级查询,都需要根据用户输入的不同而返回不同的结果集,因此,这种情况下可以使用存储过程来完成3) 查询每个用户的所有好友select userid,friendid from v_friend group by friendid,userid;-create or replace procedure all_friend_procis cursor all_friend_cur is select t_friend.userid from t_friend ; v_userid t_friend.userid%type;&
32、#160; v_friendid t_friend.friendid%type; v_nickname t_user.nickname%type;begin for fd in all_friend_cur loop select t_friend.userid,t_friend.friendid,t_user.nickname into v_userid,v_friendid,v_nickname from t_friend,t_user where t_friend.userid = t_user.userid and t_friend.userid = fd.userid; dbms_output.put_line(v_userid|' '|v_friendid|' '|v_nickname); end loop;end;-4) 查询每个用户和不同好友的所有聊天记录select f.userid,f.friendid,m.cont
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年郑州工业应用技术学院高职单招职业适应性测试备考试题及答案详细解析
- 2026四川德阳市东林路小学校临聘教师招聘1人笔试备考题库及答案解析
- 2026云南昭通市商务局招聘公益性岗位人员2人笔试备考题库及答案解析
- 2026年春季洛阳市瀍河回族区公益性岗位招聘38人笔试备考试题及答案解析
- 2026四川宜宾市高县面向社会招录民兵专职教练员2人笔试备考试题及答案解析
- 2026年安徽中科庚玖医院人才引进71名笔试备考题库及答案解析
- 2026云南丽江市水利发展有限责任公司招聘17人笔试备考题库及答案解析
- 2026福建临汕能源科技有限公司直聘人员招聘7人笔试备考题库及答案解析
- 2026广东河源市东源县公证处招聘1人笔试备考题库及答案解析
- 2026安义县龙津中心保健医生招聘1人笔试备考题库及答案解析
- 工业区位与区域协同发展:基于大单元整合的地理中考复习教学设计
- 2025年中国葡萄酒行业发展研究报告
- 物业管理5S管理培训
- 燃气锅炉燃烧过程智能控制系统设计
- 2025年新疆中考化学试卷真题(含答案解析)
- 2025年物流运输安全考试试题及答案
- 柴油发动机维护与故障排查手册
- 探究“教学评”一体化在小学数学教学中的应用与策略
- 诊断学基础重点【完全版】
- 2025年电力机车司机职业技能竞赛理论考试题库(含答案)
- TSHXCL 0021-2024 温差电致冷组件用晶棒
评论
0/150
提交评论