您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 畜牧/养殖 > Oracle表的管理3.
数据库开发与实现本章知识点表的管理完整性管理数据更新5.1表的管理数据类型创建表修改表删除表插入数据修改数据删除数据表约束5.5.1数据类型1.字符型2.数值型3.日期/时间型4.大对象(LOB)型5.Rowid型1.字符型数据类型最大长度说明CHAR(size)2000字节固定长度字符串,size表示存储的字符数量NCHAR(size)2000字节固定长度的NLS(NationalLanguangeSupport,国家语言支持)字符串,size表示存储的字符串数量。NLS字符串的作用是用本国语言和格式来存储、处理和检索数据NVARCHAR2(size)4000字节可变长度的NLS字符串,size表示存储的字符数量VARCHAR2(size)4000字节可变长度字符串,size表示存储的字符数量LONG2GB可变长度字符串,只为提供向后兼容而保留,不建议使用RAW2000字节可变长度二进制字符串LONGRAW2GB可变长度二进制字符串,只为提供向后兼容而保留,不建议使用2.数值型数据类型说明NUMBER(p,s)包含小数位的数值类型。参数p表示精度,参数s表示小数点后的位数。例如number(10,2)表示小数点之前最多可以有8位数字,小数位有两位数字NUMERIC(p,s)与number(p,s)相同FLOAT浮点数类型。属于近似数据类型,它并不存储为多数数字指定的精确值,只储存这些值的最近似值。DEC(p,s)与number(p,s)相同DECIMAL(p,s)与number(p,s)相同INTEGER整数类型INT同integerSMALLINT短整类型REAL实数类型,与float一样,属于近似数据类型DOUBLE双精度类型3.日期/时间型数据类型说明DATE日期类型TIMESTAMP(微秒的精确范围)与date数据类型相比,timestamp类型可以精确到微秒,微秒的精确范围为0~9,默认为6TIMESTAMP(微秒的精确范围)WITHTIMEZONE带时区偏移量的timestamp数据类型TIMESTAMP(微秒的精确范围)WITHLOCALTIMEZONE带本地时区偏移量的timestamp数据类型INTERVALYEAR(年份精度)TOMONTH使用year和month日期时间字段存储一个时段。年份精度指定表示年份的数字的位数,默认为2INTERVALDAY(日精度)TOSECOND(微秒的精确范围)用于按照日、小时、分钟和秒来存储一个时段。日精度表示day字段的位数,默认为2;微秒的精确范围为0~9,默认为64.大对象(LOB)型数据类型说明BFILE指向服务器文件系统上的二进制文件的文件定位器,该二进制文件保存在数据库之外BLOB保存非结构化的二进制大对象数据CLOB保存单字节或多字节字符数据NCLOB保存unicode编码字符数据5.Rowid型数据类型说明ROWID64位基本编号系统(64basenumbersystem),表示行在表中的唯一地址UROWID(size)通用的rowid类型,即可以保存物理rowid,也可以保存逻辑rowid5.5.2创建表表Users的结构编号字段名称数据结构说明1UserIdNUMBER用户编号2UserNameVARCHAR240用户名3UserTypeNUMBER1用户类型(1表示管理用户,2表示普通用户)4UserPwdVARCHAR240密码1.在OracleEnterpriseManager中使用表管理器创建表【例5.1】以sys用户登录OracleEnterpriseManager,使用表管理器创建表Users。(1)使用sys用户登录OracleEnterpriseManager。(2)打开“方案”页面,可以在/“数据库对象”栏目中找到“表”超链接表管理页面单击“表”超链接,打开表管理页面选择方案单击“方案”后面的图标,可以打开选择方案的窗口,从中选择需要显示的方案选择表组织在表管理页面中单击“创建”按钮,打开“表组织”页面表管理器在“表组织”页面中选择“标准,按堆组织”,然后单击“继续”按钮,打开“创建表”页面2.使用CREATETABLE语句创建表CREATETABLE[方案名.]表名(列名1数据类型,列名2数据类型,……列名n数据类型)【例5.2】参照表5.1创建表Users的SQL语句如下:CREATETABLEUsers(UserIdNumber,UserNameVarchar2(40),UserTypeNumber(1),UserPwdVarchar2(40));注意事项各列之间要有逗号,语句结束要加分号表和列的命名规则•必须以字母开头;•长度为1–30个字符;•只能包含A–Z,a–z,0–9,_,$和#;•对于同一个用户不能使用和其他对象相同的名字•不能是Oracle的保留字•名字是不区分大小写的5.1.3修改表在OracleEnterpriseManager中,可以对表进行修改操作,包括修改表名、添加列、删除列、修改列属性等。首先搜索并选中要修改的表,单击“编辑”按钮,打开编辑表页面使用ALTERTABLE语句修改表(1)添加列。在ALTERTABLE语句中使用ADD子句可以在表中添加列。【例5.3】在表Users中添加一个列tmpcol,数据类型为NUMBER(5,2),语句如下:ALTERTABLEUsersADD(tmpcolNUMBER(5,2));(2)修改列名V在ALTERTABLE语句中使用RENAMECOLUMN…TO…子句可以修改列名。【例5.4】将表Users中tmpcol列的名称修改为tmpcol_1,语句如下:ALTERTABLEUsersRENAMECOLUMNtmpcolTOtmpcol_1;(3)删除列在ALTERTABLE语句中使用DROPCOLUMN子句可以删除列。【例7.5】将表Users中的列tmpcol_1删除,语句如下:ALTERTABLEUsersDROPCOLUMNtmpcol_1;(4)将列设置为不可用在ALTERTABLE语句中使用SETUNUSED子句可以将列设置为不可用。【例5.6】将表Users中的列tmpcol_1设置为不可用,语句如下:ALTERTABLEUsersSETUNUSED(tmpcol_1);(5)删除不可用的列在ALTERTABLE语句中使用DROPUNUSEDCOLUMNS子句可以删除不可用的列。【例5.7】删除表Users中所有的不可用列,语句如下:ALTERTABLEUsersDROPUNUSEDCOLUMNS;5.1.4删除表在OracleEnterpriseManager的表管理页面中,选中要删除的表,单击“使用选项删除”按钮,打开删除选项窗口使用DROPTABLE语句删除表【例5.8】删除表Users,可以使用下面的代码:DROPTABLEUsers;5.1.5插入数据INSERTINTO表名(列名1,列名2,…,列名n)VALUES(值1,值2,…,值n);【例5.9】向表Users中插入如表所示的数据。UserIdUserNameUserTypeUserPwd1Admin1Admin2Lee1Lee3User2Users4Zxh2Zxh【例5.9】INSERTINTOUsers(UserId,UserName,UserType,UserPwd)VALUES(1,'Admin',1,'Admin');INSERTINTOUsers(UserId,UserName,UserType,UserPwd)VALUES(2,'Lee',1,'Lee');INSERTINTOUsers(UserId,UserName,UserType,UserPwd)VALUES(3,'User',2,'Users');INSERTINTOUsers(UserId,UserName,UserType,UserPwd)VALUES(4,'Zxh',2,'Zxh');COMMIT;SELECT*FROMUsers;使用COMMIT语句可以将前面INSERT语句插入的数据真正写入到数据库中。上面语句的运行结果为:USERIDUSERNAMEUSERTYPEUSERPWD-----------------------------------------------------------1Admin1Admin2Lee1Lee3User2Users4Zxh2Zxh【例5.10】可以对上面的INSERT语句省略列名序列,代码如下:INSERTINTOUsersVALUES(1,'Admin',1,'Admin');INSERTINTOUsersVALUES(2,'Lee',1,'Lee');INSERTINTOUsersVALUES(3,'User',2,'Users');INSERTINTOUsersVALUES(4,'Zxh',2,'Zxh');5.1.6修改数据UPDATE表名SET列名1=值1,列名2=值2,…,列名n=值nWHERE更新条件表达式【例5.11】将用户Admin的密码修改为111111,可以使用下面的SQL语句:UPDATEUsersSETUserPwd='111111'WHEREUserName='Admin';COMMITWORK;SELECTUserName,UserPwdFROMUsers;运行结果为:USERNAMEUSERPWD---------------------------Admin111111LeelEEUserUsersZxhZxh5.1.7删除数据DELETE表名WHERE删除条件表达式当执行DELETE语句时,指定表中所有满足WHERE子句条件的行都将被删除。【例5.12】删除表Users中列UserName等于空('')的数据,可以使用以下SQL语句:DELETEFROMUsersWHEREUserName='';COMMITWORK;5.1.8设置DEFAULT列属性【例5.13】创建表tmpUsers,设置列UserPwd列的默认值为111111,代码如下:CREATETABLEUSERMAN.tmpUsers(UserIdNumberPrimaryKey,UserNameVarchar2(40)NOTNULLUNIQUE,UserPwdVarchar2(40)DEFAULT('111111'));然后执行下面的INSERT语句,向tmpUsers中插入一条新记录,但并没有指定UserPwd列的值。INSERTINTOUSERMAN.tmpUsers(UserId,UserName)VALUES(1,'user');再查看表Userstmp中的数据。可以看到,列UserPwd的值被默认设置为111111。5.1.9表约束表约束(Constraint)是Oracle提供的一种强制实现数据完整性的机制,它包括:主键(PRIMARYKEY)约束,主键是表中的一列或一组列,它们的值可以唯一地标识表中的每一行。非空(NOTNULL)约束,指定列的值不允许为空。唯一键(UNIQUEKEY)约束,可以保证除主键外的其他列的数据唯一性,以防止在列中输入重复的值。检查(CHECK)约束,指定表中一列或多列可以接受的数据值或格式。例如,表Users中的工资列UserPwd的值应该不为空。外键(FOREIGNKEY)约束,用于建立和加强两个表数据之间连接的一列或多列。通过将表中的主键列添加到另一个表中,可创建两个表之间的连接。这个主键列就成为第2个表的外键。外键约束可以确保添加到外键表中的任何行在主表中都存在相应的行。1.创建和验证主键约束可以在CREATETABLE语句和ALTERTABLE语句中创建约束。例如,要创建用户表USERMAN.Users1列名数据类型具体说明UserIdNUMBER记录编号,
本文标题:Oracle表的管理3.
链接地址:https://www.777doc.com/doc-2847982 .html