Oracle数据库是世界上最流行的数据库管理系统之一,常用于存储和管理企业级的数据。在Oracle中,创建数据表是构建数据库结构的基础。这里我们详细讨论一下“Oracle emp, dept, salgrade”建表语句及其相关知识点。 我们来看`SALGRADE`表的创建: ```sql CREATE TABLE SALGRADE ( "GRADE" NUMBER, "LOSAL" NUMBER, "HISAL" NUMBER ) TABLESPACE "SYSTEM" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 12K NEXT 12K MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 ) LOGGING; ``` 这个语句定义了一个名为`SALGRADE`的表,包含三个字段:`GRADE`(等级),`LOSAL`(最低薪水),和`HISAL`(最高薪水)。`TABLESPACE "SYSTEM"`指定了表在哪个表空间存储,这里是系统默认的`SYSTEM`表空间。`PCTFREE`和`PCTUSED`分别设置了数据块未使用空间的最小预留比例(10%)和开始写入新数据时已使用空间的最大比例(40%)。`INITRANS`和`MAXTRANS`设定了初始和最大事务数。`STORAGE`子句定义了段的存储参数,如初始和后续块大小、最小和最大扩展次数等。`LOGGING`表示该表的修改操作会被记录到redo log中,确保事务的持久性和一致性。 接着,我们创建`DEPT`表: ```sql CREATE TABLE DEPT ( "DEPTNO" NUMBER(2) NOT NULL, "DNAME" VARCHAR2(14 byte), "LOC" VARCHAR2(13 byte), CONSTRAINT "PK_DEPT_1" PRIMARY KEY("DEPTNO") USING INDEX TABLESPACE "SYSTEM" STORAGE ( INITIAL 12K NEXT 12K MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 ) PCTFREE 10 INITRANS 2 MAXTRANS 255 ) TABLESPACE "SYSTEM" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 12K NEXT 12K MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 ) LOGGING; ``` `DEPT`表包含了部门编号(`DEPTNO`)、部门名称(`DNAME`)和部门位置(`LOC`)。`NOT NULL`约束确保`DEPTNO`字段不能为空。`CONSTRAINT "PK_DEPT_1"`定义了一个主键,基于`DEPTNO`字段,并使用`SYSTEM`表空间的索引。其他的存储参数与`SALGRADE`表类似。 我们创建`EMP`表: ```sql CREATE TABLE EMP ( "EMPNO" NUMBER(4) NOT NULL, "ENAME" VARCHAR2(10 byte), "JOB" VARCHAR2(9 byte), "MGR" NUMBER(4), "HIREDATE" DATE, "SAL" NUMBER(7, 2), "COMM" NUMBER(7, 2), "DEPTNO" NUMBER(2), CONSTRAINT "FK_DEPTNO_1" FOREIGN KEY("DEPTNO") REFERENCES "DEPT"("DEPTNO"), CONSTRAINT "PK_EMP_1" PRIMARY KEY("EMPNO") USING INDEX TABLESPACE "SYSTEM" STORAGE ( INITIAL 12K NEXT 12K MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 ) PCTFREE 10 INITRANS 2 MAXTRANS 255 ) TABLESPACE "SYSTEM" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 12K NEXT 12K MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 ) LOGGING; ``` `EMP`表包含了员工编号(`EMPNO`)、姓名(`ENAME`)、职位(`JOB`)、上级编号(`MGR`)、入职日期(`HIREDATE`)、薪水(`SAL`)、奖金(`COMM`)和部门编号(`DEPTNO`)。`CONSTRAINT "FK_DEPTNO_1"`定义了一个外键,将`DEPTNO`字段与`DEPT`表的`DEPTNO`字段关联,确保数据完整性。`CONSTRAINT "PK_EMP_1"`定义了基于`EMPNO`字段的主键,同样使用了索引和存储参数。 在创建表之后,我们用`INSERT INTO`语句向这些表中插入了一些初始数据,比如部门和员工的信息。 这个例子展示了如何在Oracle数据库中创建具有关系和约束的表,以及如何进行数据插入。这些基础操作对于理解和管理Oracle数据库系统至关重要,它们是数据库设计和开发的基础。通过这样的建表和数据插入,我们可以模拟一个简单的公司员工和部门管理系统的数据模型。在实际应用中,根据需求可以进一步扩展这些表,添加更多的字段和约束,以满足复杂的业务逻辑。














- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 动态分区分配方式的模拟C语言代码和C++代码.doc
- 强化大数据运用探索创新铁路单位履职考评分析.docx
- (标线标志交通信号灯)工程施工组织设计方案.doc
- 通信企业审计特殊考虑.doc
- 程序设计中的Stack详解.doc
- 大数据时代医院统计工作探究.docx
- vb课程课件测绘程序设计八.ppt
- 基于 C++ 编程语言构建的神经网络系统
- 城建档案信息化建设解决方案.docx
- 论一带一路视阈下计算机运用人才的培养.docx
- 整体家装工程项目管理手册.doc
- 互联网+背景下基于雨课堂的《地球概论》课程混合式教学探索.docx
- 《面向对象程序设计》C--综合练习(学生版)不含答案.doc
- 翻转式课堂在计算机应用基础教学中的应用分析.docx
- 网络安全架构设计及安全设备部署.pptx
- 在计算机监控系统中生成变电站事故信号.docx



- 1
- 2
前往页