1、大型数据库大实验(一)Oracle的安装与配置(1)Oracle 11g的安装1)将两个压缩包解压在一个文件夹之后,打开文件夹,找到setup.exe,双击即可进入安装界面。2)配置安全更新,电子邮箱不用写,取消默认的“我希望通过My Oracle Support接收安全更新(W)”单击下一步 3)安装选项,选择“创建和配置数据库”,单击下一步4)系统类:选择服务器类,单击下一步5)网络安全选项:选择单实例数据库安装,单击下一步6)安装类型:选择“高级安装”,单击下一步7)数据库版本选择:企业版,单击下一步8)配置类型:选择“一般用途/事务处理”,单击下一步9)数据库标识符,填写数据库名和标识
2、,如下图所示,单击下一步10)方案口令,选择使用相同口令。11)完成配置后,单击完成就可以正式安装了,如下图所示(2)利用DBCA创建数据库1)欢迎界面,点击下一步 2)选择创建数据库,单击下一步3)数据库模板,选择一般用途或事务处理4)数据库标识为自己名字的首字母5)管理选项6)数据库身份证明7)恢复配置8)链接模式设置为共享9)数据库存储10)创建选项11)创建数据库12)创建数据库概要(二)用户与权限管理(1)表空间的创建我在D,E盘创建了。SQL create tablespace MYTBS logging datafile D:MYTBS1.DBF size 300m;表空间已创建
3、。SQL alter tablespace MYTBS add datafile E:MYTBS2.DBF size 200m;表空间已更改。(2)创建配置文件的创建SQL create profile userprofile limit 2 password_life_time 10 3 failed_login_attempts 3 4 password_lock_time 1;配置文件已创建查看该配置文件中的资源配置结果,dba_profiles数据字典表(3)创建用户新建一个用户ls,设置默认表空间为MYTBS用户ls的配置文件为userprofile查看新建的用户默认表空间,dba_
4、users数据字典表(4)分配权限为ls用户授权:赋予创建任何表、创建任何索引的权限,将DBA的角色给新建用户;查看对应的用户获得的权限和角色用数据字典表user_sys_privs,user_tab_privs,user_role_等SQL grant connect,resource to ls;授权成功。SQL grant create any table,create any index to ls;授权成功。SQL grant dba to ls;授权成功。SQL conn ls/1615925195;已连接。SQL select * from user_sys_privs;SQL
5、select * from user_tab_privs;SQL select * from user_role_privs; (5)用新建的帐号登录。并执行show user命令,显示当前登录用户(三)Oracle对象的创建与管理此系统为图书馆管理系统(一)需求分析:一:普通用户查看个人信息已经更改个人信息,查询书籍,借书操作,还书操作二:管理员用户可以添加书籍,更新书籍信息,为用户借书,还书操作。(二)数据库设计1)概念设计:用户表(卡号,密码,身份类别)用户信息(卡号,性别,已借,可借)已借书目录(卡号,书号)书籍目录(书号,书名,是否借出)书籍信息(书号,书名,作者,主题)2)逻辑结构
6、 ls_user(CardNum,PassWord,Identity)用户表 ls_usermessage(CardNum,UserName,Sex,CBorrow,NBorrow)用户信息ls_jie(CardNum,BookNum,BookName)已借书目录ls_book(BookNum, BookName,YON)书籍目录ls_bookmessage(BookNum, BookName,Author,Theme)书籍信息目录3)创建代码的实现 1:创建用户表,ls_user(CardNum ,PassWord ,Identity )CardNum为主键SQL create table
7、ls_user( 2 CardNum char(11) not null, 3 PassWord varchar(11) not null, 4 Identity char(1) default P, 5 constraint f_Identity_ck check(Identity in(U,P), 6 constraint PK_user primary key(CardNum) 7 );表已创建。 2:创建用户信息表ls_usermessage(CardNum,UserName,Sex,CBorrow,NBorrow)用户信息CardNum为外键,依赖ls_user表中的CardNum,
8、性别默认为男,约束只能选男、女SQL create table ls_usermessage( 2 CardNum char(11) not null, 3 UserName varchar(8) not null, 4 Sex char(4) default 男, 5 CBorrow number default 6, 6 NBorrow number default 0, 7 constraint f_Sex check(Sex in(男,女), 8 constraint FK_user foreign key(CardNum) 9 references ls_user(CardNum)
9、10 );表已创建。ls_book(BookNum, BookName,YON)书籍目录SQL create table ls_book( 2 BookNum char(11) not null, 3 BookName varchar(20) not null, 4 YON char(1) default N, 5 constraint f_YON check(YON in(Y,N), 6 constraint PK_Book primary key(BookNum) 7 );表已创建。ls_jie(CardNum,BookNum,BookName)已借书目录SQL create table
10、ls_jie( 2 CardNum char(11) not null, 3 BookNum char(11) not null, 4 constraint Fk_CardNum foreign key(CardNum) 5 references ls_user(CardNum), 6 constraint FK_BookNum foreign key(BookNum) 7 references ls_book(BookNum) 8 );表已创建。ls_bookmessage(BookNum, BookName,Author,Theme)书籍信息目录SQL create table ls_bo
11、okmessage( 2 BookNum char(11) not null, 3 BookName varchar(20) not null, 4 Author varchar(10) not null, 5 Theme varchar(10) not null, 6 constraint FK_book foreign key(BookNum) 7 references ls_book(BookNum) 8 );表已创建。3:创建索引和视图:为ls_book创建索引Book_CBorrow用来查找图书时以从高到低的顺序可以先显示未借出的书籍。SQL create index Book_CB
12、orrow on ls_book(YON desc);索引已创建。视图1:查看借书的详细信息SQL create or replace view show_Borrow as 2 select * from ls_bookmessage where BookNum=( 3 select BookNum from ls_jie);视图已创建。视图二:查看未借出的书籍信息SQL create or replace view show_book as 2 select * from ls_bookmessage where BookNum=( 3 select BookNum from ls_boo
13、k where YON=N);视图已创建。视图三:查询借被书的详细信息:SQL create or replace view show_personbook as 2 select ls_jie.CardNum,ls_bookmessage.* from ls_jie,ls_bookmessage where 3 ls_jie.BookNum = ls_bookmessage.BookNum;视图已创建。(四)PL/SQL编程函数:返回该用户已经借阅书的数量SQL create or replace function Get_BookNums(ID char) 2 return number
14、is 3 nums number; 4 begin 5 select count(*) into nums from ls_jie where CardNum=ID; 6 return nums; 7 end Get_BookNums; 8 /函数已创建。创建触发器:当添加书籍信息成功后触发SQL create trigger AddBook 2 after insert on ls_book 3 for each row 4 begin 5 dbms_output.put_line(添加书籍成功); 6 end; 7 /触发器已创建登录存储过程SQL create or replace pr
15、ocedure login( 2 p_id in ls_user.CardNum%TYPE, 3 p_password in ls_user.PassWord%TYPE) 4 as 5 v_password ls_user.PassWord%TYPE; 6 begin 7 select PassWord into v_password from ls_user 8 where CardNum=p_id; 9 if v_password=p_password then 10 dbms_output.put_line(登录成功); 11 else dbms_output.put_line(密码错误
16、); 12 end if; 13 exception 14 when no_data_found then 15 dbms_output.put_line(没有此用户); 16 end login; 17 /过程已创建。过程二:借阅书籍SQL create or replace procedure jieshu( 2 id in ls_jie.CardNum%TYPE, 3 bookid in ls_jie.BookName%TYPE, 4 bookname in ls_jie.BookName%TYPE) 5 as 6 Iden ls_book.YON%TYPE; 7 begin 8 Ide
17、n:=Y; 9 insert into ls_jie values(id,bookid,bookname); 10 update ls_book set YON=Iden where BookNum=bookid; 11 dbms_output.put_line(借书成功); 12 end jieshu; 13 /过程已创建。(五)Oracle备份与导出1、设置归档模式检查数据库是否处于归档模式SQL archive log list;结果不是就要改为归档,关闭运行的数据库实例SQL shutdown immediate;启动数据库实例到mount状态,但不要打开SQL startup mou
18、nt;切换数据库日志模式SQL alter database archivelog;查看是否归档SQL archive log list;是的那就把数据库打开SQL alter database open;2、归档当前日志显示归档日志信息SQL select name,log_mode from v$database;3数据库完全备份及实现查询数据文件datafile的所在目录: SELECT name FROM v$datafile;查询控制文件controlfile的所在目录: SELECT name FROM v$controlfile;查询重做日志文件的所在目录: SELECT member FROM v$logfile;关闭数据库 shutdown immediate
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1