Oracle SQL 实战:创建表、插入数据与参照完整性约束

需积分: 0 0 下载量 185 浏览量 更新于2024-09-11 收藏 70KB DOC 举报
"Oracle SQL语句训练文档,包含创建表、删除记录、插入数据以及建立参照完整性的练习题。" 在ORACLE数据库管理中,SQL语句是核心工具,用于操作和管理数据库对象。以下是对实验内容的详细解释: 1. 创建表和复制表结构: `CREATE TABLE my_emp AS SELECT * FROM scott.emp WHERE 1 > 2;` 这个语句创建了一个名为`my_emp`的新表,结构与`scott.emp`表相同。然而,由于`WHERE 1 > 2`始终为假,所以没有复制任何记录。如果没有`WHERE`子句,`SELECT *`会复制所有记录到新表,这与原题目的目标——创建一个空表不相符。 复制空表结构的正确方法是: ```sql CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1 = 2; ``` 这里的`1 = 2`确保了没有记录被复制,仅复制表结构。 2. 插入记录: 提供的`INSERT INTO`语句用于向`my_emp`表中插入5条记录。每条记录都包含相同的值,除了`empno`字段。最后一条记录尝试插入的值与其他记录不同,但因为`empno`已存在,这会导致错误,除非在表中添加了主键约束后再进行插入。提交(`COMMIT`)用于确认事务,确保数据持久化。 3. 建立参照完整性: 参照完整性是数据库设计的重要原则,确保数据的一致性和准确性。通过`ALTER TABLE`语句,可以为表添加约束来实现这一目标。 - 首先,为`my_emp`表添加主键约束: ```sql ALTER TABLE my_emp ADD (CONSTRAINT myemp_empno_pk PRIMARY KEY (empno)); ``` - 然后,为`my_dept`表添加主键约束: ```sql ALTER TABLE my_dept ADD (CONSTRAINT s1 PRIMARY KEY (deptno)); ``` - 最后,为`my_emp`表添加外键约束,引用`my_dept`的`deptno`: ```sql ALTER TABLE my_emp ADD (CONSTRAINT s2 FOREIGN KEY (deptno) REFERENCES my_dept(deptno)); ``` 这样,`my_emp`表中的`deptno`字段值必须存在于`my_dept`表的`deptno`字段中,确保了部门与员工之间的关联是有效的。 这些练习题旨在帮助用户熟悉Oracle SQL的基本操作,包括创建表、插入数据以及维护数据库的参照完整性。通过这样的训练,用户可以更好地理解和掌握如何在实际环境中操作ORACLE数据库。