《专题资料(2021-2022年)03创建和管理数据表.ppt》由会员分享,可在线阅读,更多相关《专题资料(2021-2022年)03创建和管理数据表.ppt(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、模块三:创建和管理数据表模块三:创建和管理数据表主讲:马建霞主讲:马建霞TEL:15989087795QQ:48189407使用 Oracle 数据库的开发流程服务器端安装Oracle服务器软件创建数据库(安装时自动创建)配置监听器(安装时自动配置)启动Oracle实例(自动启动服务)安装Oracle客户端软件配置网络服务名以新用户登录Oracle提交SQL查询创建新用户并授权创建用户表空间客户端目 标 任 务:任务一:创建与管理表空间任务二:创建与管理用户任务三:创建数据表任务四:管理数据表任务一:创建与管理表空间任务一:创建与管理表空间q表空间(表空间(tablespacetablespa
2、ce)是)是OracleOracle数据库中最大的逻辑结构,它是数据数据库中最大的逻辑结构,它是数据库的逻辑划分,库的逻辑划分,OracleOracle数据库就是由一个或多个表空间组成的,一个数据库就是由一个或多个表空间组成的,一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。所有的数据库对象都存放在指定的表空间中。但主要存放的是空间。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,表,所以称作表空间,默认情况下系统会自己创建一个所以称作表空间,默认情况下系统会自己创建一个SystemSystem的表空的
3、表空间。间。数据库表空间1表空间2数据文件1数据文件2段1段2块 块 块 扩展区1数据库的几个概念与写字楼中的概念的对应关系:数据库的几个概念与写字楼中的概念的对应关系:写字楼中的概念写字楼中的概念数据库中的概念数据库中的概念概念概念虚、实虚、实概念概念逻辑、物理逻辑、物理大楼实的数据库物理的公司虚的表空间逻辑的占用的房间实的数据文件物理的子任务子任务1-1:创建表空间:创建表空间ORACLE可以创建的表空间大致有三种类型可以创建的表空间大致有三种类型:(1)TEMPORARY:临时表空间临时表空间,用于临时数据的存放用于临时数据的存放;创建临时表空间的语法如下创建临时表空间的语法如下:CRE
4、ATE TEMPORARY TABLESPACE SAMPLE.(2)UNDO:还原表空间还原表空间.用于存入重做日志文件用于存入重做日志文件.创建还原表空间的语法如下创建还原表空间的语法如下:CREATE UNDO TABLESPACE SAMPLE.(3)用户表空间用户表空间:最重要最重要,也是用于存放用户数据的表空间也是用于存放用户数据的表空间可以直接写成可以直接写成:CREATE TABLESPACE SAMPLETEMPORARY 和和 UNDO 表空间是表空间是ORACLE 管理的特殊的表空间管理的特殊的表空间.只只用于存放系统相关数据用于存放系统相关数据.子任务子任务1-1:创建
5、表空间(续):创建表空间(续)利用利用CREATE TABLESPACE命令创建和管理表空间命令创建和管理表空间,语法语法格式:格式:CREATE UNDO|TEMPORARY TABLESPACE tablespace_nameDATAFILE|TEMPFILE path/filename SIZE integer K M REUSE AUTOEXTEND OFF ON NEXT integer K M MAXSIZE UNLIMITED integer K M MINIMUM EXTENT integer K|M DEFAULT STORAGE storage_clause ONLINE
6、OFFLINE LOGGING NOLOGGING PERMANENT TEMPORARY EXTENT MANAGEMENT DICTIONARY LOCAL AUTOALLOCATE UNIFORM SIZE integer K M ;子任务1-1:练习n1、创建大小为创建大小为50M的表空间的表空间student,禁止自动扩展数据文,禁止自动扩展数据文件。件。n2、创建一个临时表空间、创建一个临时表空间temp,文件的存放路径自定,空间的文件的存放路径自定,空间的初始大小为初始大小为10M,指定允许分配给数据文件的最大磁盘空间,指定允许分配给数据文件的最大磁盘空间为为200M。n注意:注
7、意:可以用下面的语句查看表空间的信息Select*fromdba_tablespaces;子任务1-1:练习n下面两段创建表空间语句:下面两段创建表空间语句:1、CREATETEMPORARYTABLESPACEtemp2TEMPFILEF:oracletemp01.ORASIZE32MREUSEAUTOEXTENDONNEXT640K;2、CREATETABLESPACEdata LOGGING DATAFILEF:oracledata.dbfSIZE50MREUSEAUTOEXTENDONNEXT10MMAXSIZE200MDEFAULTSTORAGE(INITIAL16KNEXT32KM
8、INEXTENTS1);n请分别说出两条语名的含义。请分别说出两条语名的含义。n3、nCREATETABLESPACEIMAGEDATALOGGINGDATAFILEnE:ORACLEORADATADATA_01.DBFSIZE2000MREUSEAUTOEXTENDONNEXT51200KMAXSIZE3900M,E:ORACLEORADATAXLDATA_02.DBFSIZE2000MREUSEAUTOEXTENDONNEXT51200KMAXSIZE3900M,E:ORACLEORADATAXLDATA_03.DBFSIZE2000MREUSEAUTOEXTENDONNEXT51200K
9、MAXSIZE3900M,E:ORACLEORADATAXLDATA_04.DBFSIZE2000MREUSEAUTOEXTENDONNEXT51200KMAXSIZE3900MnEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO子任务子任务1-2:修改表空间:修改表空间语法格式:语法格式:ALTER TABLESPACE tablespace_name ADD DATAFILE TEMPFILE path/filename SIZE integer K M REUSE AUTOEXTEND OFF ON NEXT integer K M MAXSI
10、ZE UNLIMITED integer K M RENAME DATAFILE pathfilename,n TO pathre_filename,n DEFAULT STORAGE storage_clause ONLINE OFFLINE NORMAL TEMPORARY IMMEDIATE LOGGING NOLOGGING READ ONLY WRITE PERMANENT TEMPORARY 子任务1-2:修改表空间(续)修改表空间(续)n练习练习1、增加表空间的容量、增加表空间的容量任务要求:任务要求:通过ALTERTABLESPACE命令把一个新的数据文件添加到student表
11、空间(文件名为student1,路径自定),并指定AUTOEXTENDON和MAXSIZE300M。注意:注意:尽管可以设置MAXSIZEUNLIMITED,但应总是规定一个文件的最大尺寸值。子任务1-2:修改表空间(续)修改表空间(续)n2、修改原有文件的大小增加表空间的容量、修改原有文件的大小增加表空间的容量任务要求:任务要求:修改Student表空间,设置每次以2M的大小自动扩展表空间。注意注意:修改表空间的容量需要用修改表空间的容量需要用Alter database命令。命令。n3、修改表空间的属性、修改表空间的属性 任务要求:任务要求:修改Student表空间的属性,指定其将来的表、
12、索引等不需要进行日志处理。提示:用提示:用alter tablespace 命令可能直接修改表空间的属性。命令可能直接修改表空间的属性。子任务1-2:修改表空间(续)修改表空间(续)4、修改表空间的名称、修改表空间的名称任务要求:任务要求:将student表空间的名称改为student_jrg.再改回为Student.语法格式:ALTERTABLESPACEold_nameRENAMETOnew_name 5、设置数据库的默认表空间、设置数据库的默认表空间 通常情况下,数据库的默认表空间为通常情况下,数据库的默认表空间为SYSTEM或或USERS表空间。表空间。提示:提示:可以用以下的语句查看
13、用户的默认表空间Selectusername,default_tablespacefromdba_users;任务要求:任务要求:将Student表空间设置为数据库的默认表空间。语法格式:ALTER DATABASE DEFAULT TABLESAPCE tablespace_name子任务1-3:删除表空间删除表空间n1、删除表空间删除表空间test,但不删除其文件,但不删除其文件ndrop tablespace test;n2、.删除表空间删除表空间data同时删除表空间的同时删除表空间的 内容内容(了解了解)ndrop tablespace data including contents
14、;n3、删除表空间、删除表空间data及其包含的内容以及数据文件及其包含的内容以及数据文件ndrop tablespace data including contents and datafiles;使用OEM创建表空间:n以sys用户,sysdba连接身份登录OEM,出现”数据库“页,单击“存储”,点击“表空间”,如下图:使用OEM创建表空间:n在客户端的OEM中可以查看表空间信息,如下图:任务二:创建与管理用户Oracle 默认用户默认用户q只有用合法的用户帐号才能访问Oracle数据库qOracle有几个默认的数据库用户Oracle默认用户SYSSYSTEMSCOTT数据库中所有数据字典
15、表和视图都存储在SYS模式中。SYS用户主要用来维护系统信息和管理实例。SYSTEM是默认的系统管理员,该用户拥有Oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理数据库用户、权限和存储等SCOTT用户是Oracle数据库的一个示范帐户,在数据库安装时创建子任务2-1:创建新用户q要连接到Oracle数据库,就需要创建一个用户帐户q每个用户都有一个默认表空间和一个临时表空间qCREATEUSER命令用于创建新用户,语法格式如下:CREATE USER username IDENTIFIED BY passwordOR IDENTIFIED BY EXETERNALLYDEFA
16、ULT TABLESPACE tablespaceTEMPORARY TABLESPACE temptablespaceQUOTA integer KM UNLIMITED ON tablespace,QUOTA integer KM UNLIMITED ON tablespacePROFILES profile_namePASSWORD EXPIREACCOUNT LOCK or ACCOUNT UNLOCK子任务子任务2-1:练习:练习n1、创建用户byxy,密码为baiyun.n2、创建一个以自己的名字命名(用拼英命名,如果有英文名的可用英文名)的用户,密码自定,设置默认表空间为stud
17、ent,临时表空间为temp。n请用记事本写出相应的代码,并在SQL*Plus中运行。子任务子任务2-1:练习(续):练习(续)n3、在SQL*Plus中创建一个user1的用户,设置密码为123456,看能否正常运行?n4、在SQL*Plus中依次执行如下的语句:createusermyuseridentifiedbywelcomedefaulttablespacestudenttemporarytablespacetemppasswordexpire;n创建完成后,以myuser用户身份连接到数据库,会出现什么情况?说明什么?子任务子任务2-2:给用户授予权限:给用户授予权限q权限指的是执
18、行特定命令或访问数据库对象的权利qOracle中存在两种权限系统权限(SYSTEMPRIVILEGE):允许用户在数据库中执行指定的行为,一般可以理解成比较通用的一类权限。对象权限(OBJECTPRIVILEGE):允许用户访问和操作一个指定的对象,该对象是一个确切存储在数据库中的命名对象。系统权限noracle包含100多种系统权限,其主要作用:q执行系统端的操作,比如CREATESESSION是登陆的权限,CREATETABLESPACE创建表空间的权限q管理某类对象,比如CREATETABLE是用户建表的权限q管理任何对象,比如CREATEANYTABLE,ANY关键字表明该权限“权力”
19、比较大,可以管理任何用户下的表,所以一般只有DBA来使用该权限,普通用户是不应该拥有该类权限的。表的系统权限nCREATETABLE(建表)nCREATEANYTABLE(在任何用户下建表)nALTERANYTABLE(修改任何用户的表的定义)nDROPANYTABLE(删除任何用户的表)nSELECTANYTABLE(从任何用户的表中查询数据)nUPDATEANYTABLE(更改任何用户表的数据)nDELETEANYTABLE(删除任何用户的表的记录)。索引及会话系统权限n索引:qCREATEANYINDEX(在任何用户下创建索引)qALTERANYINDEX(修改任何用户的索引定义)qDR
20、OPANYINDEX(删除任何用户的索引)n会话:(SESSION)qCREATESESSION(创建会话,登陆权限)qALTERSESSION(修改会话)表空间系统权限n表空间qCREATETABLESPACE(创建表空间)qALTERTABLESPACE(修改表空间)qDROPTABLESPACE(删除表空间)qUNLIMITEDTABLESPACE(不限制任何表空间的配额)n注意:表空间的所有权限都不应该分配给普通用户。系统特权n系统特权权限SYSDBA和SYSOPERqSYSOPER的权限:启动停止数据库,恢复数据库等qSYSDBA的权限:所有SYSOPER功能的管理权限;创建数据库等
21、权限。n注意:以系统特权权限登陆的用户一般都是特权用户,或称为超级用户。以SYSDBA身份登陆的用户在ORACLE中是权限最大的用户,可以执行数据库的所有操作。这些特权权限是不应该随便赋予给普通用户的。对象权限对象权限n对象权限 是在指定的表、视图、序列或过程上执行指定动作的权限或权利。n每个对象都有一个特殊的可授予的权限集。n对象权限的种类不是很多,但数量较大,因为具体对象的数量很多。n对象权限的分类权限分类对象类型表(Table)视图(View)序列(Sequence)存储(Procedure)SELECT(选择)INSERT(插入)UPDATE(更改)DELETE(删除)ALTER(修改
22、)INDEX(索引)REFERENCE(引用)EXECUTE(执行)子任务子任务2-2:给用户授予权限(续):给用户授予权限(续)qGRANT命令可用于为用户分配权限或角色GRANTCONNECTTO用户名;CONNECT角色允许用户连接至数据库,并创建数据库对象GRANTRESOURCETO用户名;RESOURCE角色允许用户使用数据库中的存储空间GRANTCREATESEQUENCETO用户名;此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中子任务子任务2-2:给用户授予权限(续):给用户授予权限(续)q授予用户MARTIN操作TEST表对象的权限GRANTSELE
23、CTONTESTTOMARTIN;允许用户查询TEST表的记录GRANTUPDATEONTESTTOMARTIN;允许用户更新TEST表中的记录GRANTALLONTESTTOMARTIN;允许用户插入、删除、更新和查询TEST表中的记录子任务子任务2-2:练习:练习n1、给用户给用户“majianxia”(自己创建的用户名)设置权限,(自己创建的用户名)设置权限,允许该用户连接(允许该用户连接(connect或者或者create session)至数据)至数据库,并创建数据库对象库,并创建数据库对象(例如:例如:create table,create view)。n再试着以再试着以majia
24、nxia(自己创建的用户名)连接到数据库。(自己创建的用户名)连接到数据库。q区分区分connect 权限和权限和create session权限。权限。n2、给用户给用户“majianxia”设置权限,允许该用户插入、删设置权限,允许该用户插入、删除、更新和查询除、更新和查询Scott.emp表中的记录表中的记录.子任务子任务2-3:管理用户:管理用户n1、修改用户密码n语法nDBA可以修改任何普通用户的密码,而不需要知道用户的旧密码。n在sqlplus下执行password命令来修改登陆用户自己的密码,提示会输入旧密码和新密码。ALTERUSERuserIDENTIFIEDBY新密码;子任
25、务子任务2-3:管理用户(续):管理用户(续)n2、用户状态:OPEN、EXPIRED、LOCKED。qOPEN表正常状态,为用户帐号初始创建后状态。qEXPIRED表示密码过期,用户下次登陆的时候需要修改密码;qLOCKED表示该帐户已被锁定,不能执行任何Oracle相关操作(即使拥有相关的权限)。n状态管理语句:ALTERUSERuserPASSWORDEXPIRE;-密码过期ALTERUSERuserACCOUNTLOCKUNLOCK;-帐户锁定/解锁子任务子任务2-3:管理用户(续):管理用户(续)n3、删除用户语法nCASCADE表示系统先自动删除该用户下的所有对象,然后再删除该用户
26、的定义。n已经登陆的用户是不允许被删除的。DROPUSERuserCASCADE回收对象权限n回收对象权限语法:n对象的权限会级联回收。n权限的查询qDBA_SYS_PRIVS:查询所有的系统权限的授权情况。qSESSION_PRIVS:能够查询出当前会话已经激活的所有系统权限。qDBA_TAB_PRIVS:查询出表的对象权限的授权情况。REVOKE对象权限种类ON对象名FROMuser子任务子任务2-3:练习:练习n1、修改“user1”用户的密码为“byxy2011”;并用连接的方式验证密码修改是否成功;n2、以majianxia用户的身份连接到数据库,再删除“user1”用户,看看会出现
27、什么结果?分析原因并解决问题,并删除user1用户。n3、回收user1用户的权限。了解角色:n角色(ROLE)的目的就是为了简化权限的管理。权限权限用户用户单独授予权限使用角色授予权限role子任务二综合练习:子任务二综合练习:n1.建立新用户建立新用户user_neu n2.给用户给用户user_neu授权授权,使其能够登陆到数据库,能够查询使其能够登陆到数据库,能够查询scott下的下的emp表表;n3.查询用户查询用户user_neu的权限的权限;n4.回收用户回收用户user_neu的登陆权限的登陆权限;n5.回收用户回收用户user_neu的所有对象权限的所有对象权限;n6.建立角
28、色建立角色role_neu;n7.给角色给角色role_neu授权授权,使其能够登陆到数据库(可选)使其能够登陆到数据库(可选);n8.赋角色赋角色role_neu给用户给用户user_neu(可选)(可选);n9.删除角色删除角色role_neu(可选)(可选);n10.删除用户删除用户user_neu(可选)(可选);子任务二综合练习:子任务二综合练习:n1.建立新用户建立新用户user_neu n create user user_neu identified by mjx default tablespace users;n2.给用户给用户user_neu授权授权,使其能够登陆到数据库
29、,能够查询使其能够登陆到数据库,能够查询scott下的下的emp表表;ngrant connect to user_neu;ngrant select on scott.emp to user_neu;n3.查询用户查询用户user_neu的权限的权限;nselect*from dba_sys_privs where grantee=MJX;nSelect*from session_privs;nselect*from dba_tab_privs where grantee=USER_NEU;n4.回收用户回收用户user_neu的登陆权限的登陆权限;nrevoke create sessio
30、n from user_neu;n5.回收用户回收用户user_neu的所有对象权限的所有对象权限;nrevoke all on scott.emp from user_neu;n6.建立角色建立角色role_neu;nCreate role user_neu;n7.给角色给角色role_neu授权授权,使其能够登陆到数据库(可选)使其能够登陆到数据库(可选);ngrant connect to role_neu;n8.赋角色赋角色role_neu给用户给用户user_neu(可选)(可选);ngrant role_neu to user_neu;n9.删除角色删除角色role_neu(可选)
31、(可选);ndrop role role_neu;n10.删除用户删除用户user_neu(可选)(可选);nDrop user user_neu;任务三:创建数据表分成两个子任务来完成:分成两个子任务来完成:子任务子任务3-1:创建数据表:创建数据表 子任务子任务2:创建临时表:创建临时表子任务3-1:创建数据表任务要求:任务要求:在数据库中创建如下的在数据库中创建如下的teacher数据表,请用数据表,请用记事本写出记事本写出SQL代码,并在代码,并在SQL*Plus以你自己的名以你自己的名字命名的用户登录并执行。字命名的用户登录并执行。表表1:教:教师师档案表(档案表(teacher)教
32、师编号姓名性别工作时间政治面貌学历职称系别1张三男1969-11-10群众大学本科副教授经济2郭新女1979-6-25党员大学本科讲师计算机任务三:创建数据表1、方案:、方案:所谓方案,就是一系列数据库对象的集合,是数据库中存储数据所谓方案,就是一系列数据库对象的集合,是数据库中存储数据的一个逻辑表示或描述。的一个逻辑表示或描述。Oracle 10g数据库中并不是所有的数据库对数据库中并不是所有的数据库对象都是方案对象,方案对象有表、索引、触发器、数据库链接、象都是方案对象,方案对象有表、索引、触发器、数据库链接、PL/SQL包、序列、同义词、视图、存储过程、存储函数等,非方案对包、序列、同义
33、词、视图、存储过程、存储函数等,非方案对象有表空间、用户、角色、概要文件等。象有表空间、用户、角色、概要文件等。在在Oracle 10g数据库中,每个用户都拥有自己的方案,创建了一个数据库中,每个用户都拥有自己的方案,创建了一个用户,就创建了一个同名的方案,方案与数据库用户是对应的。但在其用户,就创建了一个同名的方案,方案与数据库用户是对应的。但在其他关系型数据库中两者却没有这种对应关系,所以方案和用户是两个完他关系型数据库中两者却没有这种对应关系,所以方案和用户是两个完全不同的概念,要注意加以区分。在默认情况下,一个用户所创建的所全不同的概念,要注意加以区分。在默认情况下,一个用户所创建的所
34、有数据库对象均存储在自己的方案中。有数据库对象均存储在自己的方案中。任务三:创建数据表(续)2、表结构、表结构表是oracle数据库数据存储的基本单元,通过行和列来组织数据。字段:字段名、字段数据类型、字段长度、约束、默认值等。任务三:创建数据表(续)3、基本的数据类型、基本的数据类型(1)char(n):定长字符串,n=1to2000字节,即最大长度为2K,如果不指定长度,缺省为1个字节长(一个汉字为2字节);新建一个测试表test_char.,只有一个char类型的列。长度为10SQLcreatetabletest_char(colAchar(10);(2)varchar2(n):可变长的
35、字符串,n=1to4000字节。如果数据长度没有达到最大值n,Oracle会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle会自动将其删去。varchar2(n)是最常用的数据类型。创建一个表,只有一列,类型为varchar2,长度为10SQLcreatetabletest_varchar(colvarchar2(10);任务三:创建数据表(续)3、基本的数据类型(续)、基本的数据类型(续)(3)number(m,n):m=1to38、n=-84to127,m是所有有效数字的位数,n是小数点以后的位数。如:number(5,2),但在一行数据中的这个字段输入575.316,则
36、真正保存到字段中的数值是575.32。(4)date:该数据类型用于定义日期时间数据,长度为7B。(5)raw(n):n=1to2000可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle用这种格式来保存较小的图形文件或带格式的文本文件,如MiceosoftWord文档。raw是一种较老的数据类型,将来会逐渐被blob、clob、nclob等大的对象数据类型所取代。任务三:创建数据表(续)3、基本的数据类型(续)、基本的数据类型(续)(6)存储大对象的数据类型:nblob:用于存储非结构化数据,比如二进制图像。nclob:单字节字符数据,用于存储大型的固定宽度字符数据。nnc
37、lob:用于存储大型的,固定宽度字符集数据nbfile:用于存储操作系统文件中的非结构化数据。大对象数据类型的列不能出现在where,groupby或orderby子句中。不能在SQL*Plus等环境中查询、显示大对象类型的数据,也不能通过insert语句插入大对象类型的数据常见的数据类型具体见下页表。常见的数据类型具体见下页表。任务三:创建数据表(续)创建数据表的语法格式:创建数据表的语法格式:CREATE TABLE schema.table_name(column_name datatype DEFAULT expression column_constraint,n)PCTFREE i
38、nteger PCTUSED integerINITRANS integerMAXTRANS integer TABLESPACE tablespace_name STORGE storage_clause CLUSTER cluster_name(cluster_column,n)LOGGING|NOLOGGING AS subquery 任务三:创建数据表(续)n创建表时的命名规则和注意事项1)表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#2)大小写不区分;3)不用SQL里的保留字,一定要用时可用双引号把字符串括起来;4)用和实体或属性相关的英文符号长
39、度有一定的限制。子任务3-1:练习 1、要求:、要求:在数据库中创建如下的在数据库中创建如下的teacher数据表,请用记事本数据表,请用记事本写出写出SQL代码,并在代码,并在SQL*Plus以你自己的名字命名的用户登以你自己的名字命名的用户登录并执行。录并执行。字段名称字段名称字段字段类类型型字段大小字段大小允允许许空空值值备备注注teacherno8位数字必填教师编号teachername必填姓名teachersex性别worktime工作时间political政治面貌education学历professional职称departmentno系别telephone联系电话子任务3-1:练
40、习(续)2、阅读下面的、阅读下面的SQL语句,指出该语句,指出该Create Table命令创建的表命令创建的表的特性。的特性。createtableITEM(typeidvarchar2(14)notnull,typevarchar22(10)tablespaceUSERS/ITEM这个表是在USERS表空间中创建的pctfree10/用于控制空闲空间比例,更新操作比较多时,此参数应设为较高的值initrans1/指定针对同一个块所允许的最小并发事务数目maxtrans255storage(initial64Kminextents1maxextentsunlimited);子任务3-2:创建
41、临时表n当缓存中间数据时候,需要创建一个临时表,当缓存中间数据时候,需要创建一个临时表,其实其实oracle本身在这方面就已经考虑很全了,本身在这方面就已经考虑很全了,除非有些高级应用的时候才考虑自己创建临时除非有些高级应用的时候才考虑自己创建临时表。表。nOracle的临时表创建之后基本不占用表空间,的临时表创建之后基本不占用表空间,如果你没有指定临时表(包括临时表的索引)如果你没有指定临时表(包括临时表的索引)存放的表空的时候,你插入到临时表的数据是存放的表空的时候,你插入到临时表的数据是存放在存放在ORACLE系统的临时表空间中系统的临时表空间中(TEMP)。)。建立临时表语法:n1、O
42、NCOMMITDELETEROWS定义了建立事务级临时表的方法CREATEGLOBALTEMPORARYTABLETABLE_NAME(COUMNS)ASSELECTFROMTABLE.ONCOMMITDELETEROWS;n当前session发出commit/rollback命令,则该事务周期发生的所有数据自动被Oracle删除(Oracletruncatetable)。但不影响任何其他session的数据。建立临时表语法:n2、ONCOMMITPRESERVEROWS定义了创建会话级临时表的方法CREATEGLOBALTEMPORARYTABLETABLE_NAME(COUMNS)ASSE
43、LECTFROMTABLEONCOMMITPRESERVEROWS;n当前session结束(用户正常退出/用户不正常退出/Oracle实例崩溃),Oracle对这个会话的中发生的数据进行删除(Oracletruncatetable)。但不影响任何其他session的数据。子任务3-2:练习n完成Word文档中的练习。任务四:管理数据表n子任务子任务4-1:修改数据表的结构:修改数据表的结构n子任务子任务4-2:重命名数据表:重命名数据表n子任务子任务4-3:删除数据表:删除数据表n子任务子任务4-4:截断数据表:截断数据表子任务4-1:修改数据表的结构n添加列语法:n修改列语法:n删除列语法
44、:ALTERTABLEtableDROP(columnname,columnname);ALTERTABLEtableMODIFY(columnnamedatatypeDEFAULTexpr,columnnamedatatype.);ALTERTABLEtableADD(columnnamedatatypeDEFAULTexpr,columnnamedatatype.);添加新列 n增加列原则:q可以添加或修改列q不能指定新添加列的位置,新列会成为最后一列。n如:在dossier表上增加性别字段:ALTERTABLEdossierADD(sexCHAR(1);修改已存在的列n列的修改可以修改数
45、据类型,长度,及默认值。列的修改可以修改数据类型,长度,及默认值。n修改数据类型:修改数据类型:已有的行数据必须为空。n修改长度原则:修改长度原则:数值型修改长度:当长度向小改时,已有行的数该列必须为空;当长度向大改时,可以随意修改。字符型修改长度:当长度向小改时,只要修改后的值能容纳下当前已有数据的最大值即可,当长度向大改时,可以随意修改。n修改列的默认值:修改列的默认值:-默认值的修改不会影响已经存在的行,只影响新增加的行。修改已存在的列n把dossier表性别(sex)列,修改为长度为2n添加默认值ALTERTABLEdossierMODIFY(sexDEFAULT男);ALTERTAB
46、LEdossierMODIFY(sexCHAR(2);删除列 n可以用DROP子句从表中删除列,包括列的定义和数据。n删除列原则:q列可以有也可以没有数据。q表中至少保留一列。q列被删除后,不能再恢复。q被外键引用的列,不能被删除。删除列(续)n删除列语法一n删除列语法二n删除dept10表的两个字段“last_name”和“newsalary”。ALTERTABLEdept10DROP(last_name,newsalary);ALTERTABLEempDROPCOLUMNsex;ALTERTABLEtableDROP(columnname,columnname);子任务4-2:重命名表 n
47、重命名语句语法:q必须是对象的所有者n把emp表重新命名为emplRENAMEempTOempl;RENAMEold_nameTOnew_name;子任务4-3:删除表 n删除表语法:q只有表的创建者q或具有DROPANYTABLE权限的用户才能删除表n删除表原则:q表中所有的数据和结构都被删除。q任何视图和同义词被保留但无效。q所有与其相关的约束和索引被删除。q任何未完成的事务被提交。DROPTABLEemp;DROPTABLEtable;子任务4-4:截断表 n截断表语法:q执行TRUNCATE语句的前提,必须是表的所有者q或者有DELETEANYTABLE系统权限来截断表。TRUNCATETABLEemp;TRUNCATETABLEtable;任务四:综合练习n1、在teacher表中添加demo(备注)行,数据类型自选;n2、修改teacher表中的teachersex列的数据类型为nchar(2),并设置默认值为“男”;n3、删除teacher表中的worktime列;n4、将teacher表更名为Teacher_by;n5、写出删除teacher表语法。