实验1数据库管理一、目的和要求(1)了解Oracle数据库的逻辑结构和物理结构;(2)了解OracleEnterpriseManager的使用情况;(3)学习关闭和启动数据库实例的方法;(4)学习使用SQL语句创建数据库的方法;(5)学习使用SQL语句删除数据库的方法。二、实验准备首先要了解Oracle数据库的逻辑结构,包括方案(schema)对象、数据块(datablock)、区间(extent)、段(segment)和表空间(tablespace)等。数据库由若干个表空间组成,表空间由表组成,段由区间组成,区间则由数据块组成。Oracle数据库的物理结构由构成数据库的操作系统文件所决定。每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。这些数据库文件为数据库信息提供真正的物理存储。EnterpriseManager10g是Oracle10g提供的新的管理工具,简称EM。使用它可以完成启动、关闭数据库,创建、删除数据库等功能。只有系统管理员或拥有CREATEDATABASE权限的用户才能创建数据库。可以在EnterpriseManager中通过图形界面创建数据库,也可以使用CREATEDATABASE语句创建数据库。三、实验内容(1)练习使用不同方法启动和关闭数据库实例。(2)练习使用不同方法创建和删除数据库,要使操作的数据库为用户管理数据库UserMan。1.使用SHUTDOWN命令关闭数据库实例练习使用SHUTDOWN命令关闭数据库实例,分别按以下方式启动数据库实例。(1)正常关闭。等待当前所有已连接的用户断开与数据库的连接,然后关闭数据库。正常关闭的语句如下:SHUTDOWNNORMAL(2)立即关闭。回退活动事务处理并断开所有已连接的用户,然后关闭数据库。立即关闭的语句如下:SHUTDOWNIMMEDIATE(3)事务处理关闭。完成事务处理后断开所有已连接的用户,然后关闭数据库。事务处理关闭的语句如下:SHUTDOWNTRANSACTIONAL(4)中止关闭。中止数据库实例,立即关闭数据库。中止关闭的语句如下:SHUTDOWNABORT每次执行SHUTDOWN语句关闭数据库实例之前,请执行STARTUP命令启动数据库。2.使用STARTUP命令启动数据库实例练习使用STARTUP命令启动数据库实例,分别按以下方式启动数据库实例。(1)启动数据库实例时不装载数据库。执行此操作的命令如下:STARTUPNOMOUNT(2)启动数据库实例,装载数据库,但不打开数据库。通常在数据库维护时执行此操作,对应的命令如下:STARTUPMOUNT(3)启动后限制对数据库实例的访问。执行此操作的命令如下:STARTUPRESTRICT(4)强制实例启动。在遇到特殊异常的情况时,可以强制启动实例。强制启动实例的语句如下:STARTUPFORCE每次执行STARTUP语句启动数据库实例之前,请执行SHUTDOWN命令关闭数据库。3.使用ORACLEEnterpriseManager关闭数据库实例按照下面的步骤关闭数据库实例。(1)在数据库处于打开状态时,使用SYS用户以SYSDBA身份登录到EnterpriseManager。在主目录页面的“一般信息”栏目中,可以看到“关闭”按钮。(2)单击“关闭”按钮,可以打开“主机和目标数据库身份证明”页面。用户需要拥有管理员的权限才能关闭数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSDBA用户。(3)输入完成后,单击“确定”按钮,打开“确认关闭”页面。(4)单击“是”按钮,开始关闭数据库。关闭操作完成后,单击“刷新”按钮,打开“启动数据库实例”页面。4.使用ORACLEEnterpriseManager启动数据库实例按照下面的步骤启动数据库实例。(1)使用SYS用户以SYSDBA身份登录到EnterpriseManager。(2)单击“启动”按钮,打开“主机和目标数据库身份证明”页面。用户需要拥有管理员的权限才能启动数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSDBA用户。(3)输入完成后,单击“确定”按钮,打开“确认打开”页面。(4)单击“是”按钮,开始打开数据库。5.使用SQL语句创建数据库按照如下条件创建数据库UserMan。(1)设置SYS用户的密码为SYSPWD,设置SYSTEM用户的密码为SYSTEMPWD。(2)使用已有的控制文件。(3)指定日志文件组redo01.log,大小为10MB;指定日志文件组redo02.log,大小为10MB。设置最大的日志文件数量为10。(4)定义日志文件组中最大的日志文件数量为5。(5)定义最大的数据文件数量为100。(6)定义数据库中最大的实例数量为1。(7)定义存储数据的字符集为US7ASCII。(8)定义数据文件名称为SYS01.dbf,初始大小为100MB。(9)定义默认的表空间为tbs_1。(10)定义临时表空间为tempts1。(11)定义临时文件为temp01.dbf,大小为10MB。CREATEDATABASE语句如下:CREATEDATABASEOracleDBUSERSYSIDENTIFIEDBYSYSPWDUSERSYSTEMIDENTIFIEDBYSYSTEMPWDCONTROLFILEREUSELOGFILEGROUP1(‘redo01.log’)SIZE10M,GROUP2(‘redo02.log’)SIZE10M,MAXLOGFILES10MAXLOGMEMBERS5MAXDATAFILES100MAXINSTANCES1CHARACTERSETUS7ASCIIDATAFILE‘sys01.dbf’SIZE100MREUSEEXTENTMANAGEMENTLOCALDEFAULTTABLESPACEtbs_1DEFAULTTEMPORARYTABLESPACEtempts16.使用SQL语句删除数据库按照如下步骤删除数据库UserMan。(1)在删除数据库之前,需要用户以SYSDBA或SYSOPER身份登录,代码如下:CONNECTSYS/SYSPWDASSYSDBA;其中SYSPWD为SYS用户的密码,请根据实际情况输入。(2)关闭数据库,再以MOUNT模式启动数据库,代码如下:SHUTDOWNIMMEDIATE;STARTUPMOUNT;(3)删除数据库,代码如下:DROPDATABASE;实验2角色和用户管理一、实验内容1.使用SQL语句创建数据库角色语句如下:CREATEROLEUserManRoleIDENTIFIEDBYmyrollpwd;2.使用SQL语句为数据库角色授权语句如下:GRANTCONNECTTOUserManRole;GTANTRESOURCETOUserManRole;3.使用SQL语句创建数据库用户语句如下:CREATEUSERUserManAdminIDENTIFIEDBYUserPwdDEFAULTTABLESPACEUSERSTEMPORARYTABLESPACETEMP;设置系统权限GRANTUNLIMITEDTABLESPACETOUserManAdmin;4.使用SQL语句制定用户角色语句如下:GRANTUserManRoleTOUserManAdmin;实验3表和视图管理实验内容1.使用SQL语句创建表语句如下:CREATETABLEUserManAdmin.Users(UserIDNumberPrimarykey,UserNameVarchar2(40)NOTNULL,UserTypeNumber(1),UserPwdVarchar2(40));CREATETABLEUserManAdmin.LoginInfo(UserIDNumber,LoginTimeCHAR(20)NOTNULL);2.使用SQL语句向表中插入数据语句如下:INSERTINTOUserManAdmin.UsersVALUES(1,'Admin',1,'AdminPwd');INSERTINTOUserManAdmin.UsersVALUES(2,'User',2,'UserPwd');INSERTINTOUserManAdmin.UsersVALUES(3,'Liuli',3,'LiuliPwd');INSERTINTOUserManAdmin.UsersVALUES(4,'Wangfan',4,'WangfanPwd');COMMIT;INSERTINTOUserManAdmin.LoginInfoVALUES(1,'2012-03-2710:33:02');INSERTINTOUserManAdmin.LoginInfoVALUES(1,'2012-03-2808:34:13');INSERTINTOUserManAdmin.LoginInfoVALUES(1,'2012-03-2909:13:11');INSERTINTOUserManAdmin.LoginInfoVALUES(2,'2012-03-2707:35:02');INSERTINTOUserManAdmin.LoginInfoVALUES(2,'2012-03-2808:11:54');INSERTINTOUserManAdmin.LoginInfoVALUES(2,'2012-03-2909:13:11');INSERTINTOUserManAdmin.LoginInfoVALUES(3,'2012-03-2708:33:02');INSERTINTOUserManAdmin.LoginInfoVALUES(3,'2012-03-2809:34:13');INSERTINTOUserManAdmin.LoginInfoVALUES(3,'2012-03-2910:13:11');INSERTINTOUserManAdmin.LoginInfoVALUES(4,'2012-03-2711:33:02');INSERTINTOUserManAdmin.LoginInfoVALUES(4,'2012-03-2813:34:13');INSERTINTOUserManAdmin.LoginInfoVALUES(4,'2012-03-2915:13:11');COMMIT;3.练习使用SQL语句修改表中数据语句如下:UPDATEUserManAdmin.UsersSETUserPwd='AdminPassword'WHEREUserName='Admin';SELECTUserPwdFROMUserManAdmin.UsersWHEREUserName='Admin';4.练习使用SQL语句删除表中数据语句如下:DELETEFROMUserManAdmin.UsersWHEREUserName='Wangfan';SELECT*FROMUserManAdmin.Users;5.练习使用SELETE语句查询数据语句如下:SELECT*FROMUserManAdmin.Users;SELECTUserNameASX,UserPwdAS100798FROMUserManAdmin.Users;SELECT*FROMUserManAdmin.UsersWHEREUserType=2;SELECTUserPwdFROMUserManAdmin.UsersWHEREUserName='Admin';SELECT*FROMUserManAdmin.UsersORDERBYUserNameDESC;SELECTCOUNT(*)FROMUserManAdmin.Users;SELECTu.UserName,l.LoginTimeFROMUserManAdmin.UsersuINNERJOINUserManAdmin.LoginInfolONu.UserID=l.User6.练习使用SQL语句创建视图语句如下:CREATEVIEWUserLoginASSELECTu.UserName,l.L