实验六利用SQL命令创建表

上传人:文*** 文档编号:65634581 上传时间:2022-03-24 格式:DOC 页数:9 大小:303KB
返回 下载 相关 举报
实验六利用SQL命令创建表_第1页
第1页 / 共9页
实验六利用SQL命令创建表_第2页
第2页 / 共9页
实验六利用SQL命令创建表_第3页
第3页 / 共9页
点击查看更多>>
资源描述
文档供参考,可复制、编制,期待您的好评与关注! 实验六 利用SQL命令创建表一、实验目的:1 了解基本的数据类型;2 掌握表的创建和表的完整性约束;3 修改表的定义;4 删除、重命名和清空表。二、实验内容:数据库中的数据是以表的形式存储。数据库中的每一个表都被为一个模式(或用户)所拥用,因此表是一种典型的模式对象。在创建表时,Oracle将在一个指定的表空间中为其分配存储空间。表是常见的一种组织数据的方式,一张表一般都具有多个列,或者称为字段。每个字段都具有特定的属性,包括字段名、字段数据类型、字段长度、约束、默认值等,这些属性在创建表时被确定。从用户角度来看,数据库中数据的逻辑结构是一张二维表,在表中通过行和列来组织数据。在表中的每一行存放一条信息,通常称表中的一行为一条记录。1. 创建表:创建表时需要使用CREATE TABLE语句,为了在用户自己的模式中创建一个新表,则用户必须具有CREATE TABLE系统权限。如果要在其他用户模式中创建表,则必须具有CREATE ANY TABLE的系统权限。此外,用户还必须在指定的表空间中具有一定的配额存储空间。表6-1 Oracle中常用的数据类型数据类型描述CHAR(size)定长字符数据VARCHAR2(size)可变长字符数据NUMBER(p,s)可变长数值数据Int、INTEGER、SAMLLINT整型数据DATE日期型数据LONG可变长字符数据,最大可达到2GCLOB字符数据,最大可达到4GBLOB二进制数据,最大可达到4GBFILE存储外部文件的二进制数据,最大可达到4G在创建表时可以为表指定存储空间,如果不指定,Oracle会将该表存储到默认表空间中。使用子查询创建表:为了保存原始数据以便于恢复或是得到一个与源表一样结构的表,可通过子查询创建表,创建表时候用 AS subquery 选项,将创建表和插入数据结合起来。CREATE TABLE table(column, column.)AS subquery;2. 修改表:使用 ALTER TABLE 语句修改表结构。(1) 追加新的列:ALTER TABLE tableADD (column datatype DEFAULT expr , column datatype.);(2) 修改现有的列、为新追加的列定义默认值:ALTER TABLE tableMODIFY (column datatype DEFAULT expr , column datatype.);(3) 删除一个列:ALTER TABLE table DROP (column);(4) 禁用列:ALTER TABLE table SET UNUSED (column , ) ;ALTER TABLE table SET UNUSED COLUMN column ;(5) 重命名列:ALTER TABLE tablename RENAME COLUMN old_name TO new_name;3. 重命名表:有两种语法形式,一种是使用ALTER TABLE语句,语法如下:ALTER TABLE table_name RENAME TO new_table_name;另一种是直接使用RENAME语句,语法如下:RENAME table_name TO new_table_name;4. 删除表:删除表使用DROP TABLE 语句,表的数据和结构都被删除,所有正在运行的相关事务被提交,所有相关索引被删除,DROP TABLE 语句不能回滚。清空表使用TRUNCATE TABLE 语句,删除表中所有的数据,释放表的存储空间,TRUNCATE语句不能回滚。也可以使用 DELETE 语句删除数据,DELETE 语句可以回滚。5. 添加注释:使用COMMENT 语句给表或列添加注释。COMMENT ON TABLE table IS comment;6. 定义和管理数据完整性约束:数据库不仅仅是存储数据,它也必须保证所存储数据的正确性。如果数据不准确或不一致,那么该数据的完整性可能就受了到破坏,从而给数据库本身的可靠性带来问题。为了维护数据库中数据的完整性,在创建表时常常需要定义一些约束。约束可以限制列的取值范围,强制列的取值来自合理的范围。按照约束的用途可以将表的完整性约束分为5类,如表6-2所示。表6-2 完整性约束的类型约束说明NOT NULL非空约束。指定一列不允许存储空值。这实际就是一种强制的CHECK约束PRIMARY KEY主键约束。指定表的主键。主键由一列或多列组成,唯一标识表中的一行UNIQUE唯一约束。指定一列或一组列只能存储唯一的值FOREIGN KEY外键约束。指定表的外键。外键引用另外一个表中的一列,在自引用的情况中,则引用本表中的一列CHECK检查约束。指定一列或一组列的值必须满足某种条件(1) 非空约束:非空约束就是限制必须为某个列提供值。在表中,当某些字段的值是不缺少的,那么就可以为该列定义为非空约束。这样当插入数据时,如果没有为该列提供数据,那么系统就会出现一个错误消息。(2) 主键约束:主键约束用于惟一地确定表中的每一行数据。在一个表中,最多只能有一个主键约束,主键约束即可以是一个列组成的,也可能是由两个或两个以上列组成的。对于表中的每一行数据,主键约束列都是不同的,主键约束同时也具有非空约束。(3) 唯一性约束:唯一性约束强调所在的列不允许有相同的值。但是,它的定义比主键约束弱,即它所在的列允许空值。UNIQUE约束的主要作用是在保证除主键列外、其他列值的惟一性。(4) 外键约束:外键约束是几种约束是最复杂的,外键约束可以使两个表进行关联。外键是指引用另一个表中的某个列或某几个列,或者本表中另一个列或另几个列的列。被引用的列应该具有主键约束,或者惟一性约束。(5) 检查约束:语法格式为:CREATE TABLE table_name (column_name datatype NOT NULL | NULL DEFAULT constraint_expression CONSTRAINT check_name CHECK(check_expression)PRIMARY KEY | UNIQUE FOREIGN KEY REFERENCES ref_table(ref_column),n)(6) 禁止和激活约束:为什么要禁用约束呢?这是因为约束的存在会降低插入和更改数据的效率,系统必须确认这些数据是否满足定义的约束条件。当执行一些特殊操作时,如使用SQL*Loader从外部数据源向表中导入大量数据,并且事先知道操作的数据满足了定义的约束,为提高运行效率,就可以禁用这些约束。在定义约束时,可以将约束设置为禁用状态,默认为激活状态。也可以在约束创建后,修改约束状态为禁用。创建表时禁用约束。CREATE TABLE table_name (column_name datatype constraint_type DISALBE,);或利用ALTER TABLEDISABLECASCADE禁用约束。利用ALTER TABLEENABLE语句激活约束。(7) 删除约束:如果不再需要某个约束时,则可以删除该约束。可以使用带DROP CONSTRAINT子句的ALTER TABLE语句删除约束。删除约束与禁用约束不相同,禁用约束是可以激活的,但是删除的约束在表中就完全消失了。ALTER TABLE table_name DROP CONSTRAINT check_name7. 在OEM中创建表:(1) 登录OEM,在“方案”类别中选择“表”,鼠标左键单击进入“表搜索”界面。如图6-1所示。图6-1 表搜索界面(2) 单击“创建”按钮,进入“创建表:表的组织形式”界面,指定表的存储类型及是否为临时表。如图6-2所示。图6-2表的组织形式界面(3) 单击“继续”按钮,进入“创建表”界面。该界面有5个选项页面,可以完成对表的定义。如图6-3所示。图6-3 一般信息界面(4) 单击“约束条件”选项页面,进入“约束条件”选项界面。在该选项页面可以定义表的完整性约束条件。如图6-4所示。图6-4 约束条件界面(5) 单击“存储”选项页面,进入“存储”选项界面。如图6-5所示。图6-5 存储选项界面(6) 单击“选项”选项页面,进入“选项”选项界面。如图6-6所示。图6-6 选项界面(7) 单击“分区”选项页面,进入“分区”选项界面。 图6-7 分区选项界面三、上机作业:利用SQL语句,在SCOTT用户中,创建Student(学生表)、Course(课程表)和SC(学生选课表)。各表的结构如表所示:Student表结构列名数据类型非空说明Snochar(10)学号,主键Snamechar(10)姓名Ssexchar(2)性别Sagesmallint年龄Sdeptchar(20)所在系Course表结构列名数据类型是否空值说明Cnochar(4)课程号,主键Cnamechar(20)课程名Cpnochar(4)先行课号,外键CCreditsmallint学分SC表结构列名数据类型是否空值说明Snochar(10)学号,外键,(sno,cno)为主键Cnochar(4)课程号,外键Gradenumber(4,1)数据如下表所示:Student表数据Sno Sname Ssex Sage Sdept 200215121李勇男20CS200215122刘晨女19CS200215123王敏女18MA200515125张立男19ISCourse表数据CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64SC表数据学号Sno课程号 Cno成绩Grade2002151211922002151212852002151213882002151222902002151223809 / 9
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 各类标准


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!