题目
如何在Oracle中创建一张包含基础字段和约束的员工表?
信息
- 类型:问答
- 难度:⭐
考点
CREATE TABLE语法,数据类型选择,约束定义
快速回答
使用CREATE TABLE语句创建员工表:
- 定义字段:员工ID(数字主键)、姓名(非空字符串)、入职日期(日期类型)、工资(带精度的数字)
- 添加约束:主键约束、非空约束、检查约束
- 示例代码:
CREATE TABLE employees (
employee_id NUMBER(6) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
hire_date DATE,
salary NUMBER(8,2) CHECK(salary > 0)
);
1. 核心语法结构
Oracle创建表的基本语法:
CREATE TABLE table_name (
column1 datatype [CONSTRAINT constraint_name] constraint_type,
column2 datatype [constraint],
...
);2. 字段与数据类型选择
- 员工ID:
NUMBER(6)- 最大6位整数 - 姓名:
VARCHAR2(50)- 变长字符串(50字符) - 入职日期:
DATE- 存储日期和时间 - 工资:
NUMBER(8,2)- 共8位数字(含2位小数)
3. 约束应用详解
| 约束类型 | 作用 | 示例 |
|---|---|---|
| PRIMARY KEY | 唯一标识记录 | employee_id NUMBER(6) PRIMARY KEY |
| NOT NULL | 禁止空值 | name VARCHAR2(50) NOT NULL |
| CHECK | 值域校验 | salary NUMBER(8,2) CHECK(salary > 0) |
4. 完整创建示例
CREATE TABLE employees (
employee_id NUMBER(6) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
hire_date DATE DEFAULT SYSDATE, -- 默认当前日期
salary NUMBER(8,2) CHECK(salary > 0)
);5. 最佳实践
- 始终为关键字段(如ID)定义主键
- 对必填字段使用NOT NULL约束
- 金额类字段使用NUMBER并指定精度
- 使用DEFAULT设置合理默认值(如SYSDATE)
6. 常见错误
- 错误1:忘记指定主键 → 导致数据冗余
- 错误2:VARCHAR2长度不足 → 插入长数据时报错
- 错误3:CHECK约束条件不全 → 如未检查负数工资
7. 扩展知识
- 表创建后可通过
DESC employees;查看结构 - 使用
ALTER TABLE后期添加约束 - Oracle独有数据类型:
TIMESTAMP(更精确的时间)、CLOB(大文本)