Oracle 创建表

Oracle 创建表

创建表是数据库管理中的基础操作之一。在Oracle数据库中,CREATE TABLE语句用于定义新表的结构,包括列名、数据类型、约束等。以下是一些具体的例子,帮助更好地理解和应用这一操作。

示例 1:创建一个简单的员工表

场景描述

希望创建一个用于存储员工基本信息的表,包括员工ID、姓名、电子邮件和入职日期。所有字段都是必需的(不允许为空),并且需要确保每个员工都有唯一的电子邮件地址。

创建表语句

CREATE TABLE employees (
    employee_id NUMBER(6) PRIMARY KEY,  -- 员工ID作为主键
    first_name VARCHAR2(50) NOT NULL,   -- 名字不允许为空
    last_name VARCHAR2(50) NOT NULL,    -- 姓氏不允许为空
    email VARCHAR2(50) UNIQUE NOT NULL, -- 电子邮件必须唯一且不允许为空
    hire_date DATE NOT NULL             -- 入职日期不允许为空
);

插入数据示例

INSERT INTO employees (employee_id, first_name, last_name, email, hire_date)
VALUES (101, 'John', 'Doe', 'johndoe@example.com', TO_DATE('2023-01-01', 'YYYY-MM-DD'));

INSERT INTO employees (employee_id, first_name, last_name, email, hire_date)
VALUES (102, 'Jane', 'Smith', 'janesmith@example.com', TO_DATE('2023-02-01', 'YYYY-MM-DD'));

示例 2:创建一个包含更多字段和约束条件的员工表

场景描述

除了基本的个人信息,还希望记录员工的电话号码、职位、薪水、佣金比例、直属经理ID和部门ID。此外,需要确保薪水大于零,并且每个员工只能属于一个存在的部门。

创建表语句

CREATE TABLE departments (
    department_id NUMBER(4) PRIMARY KEY,
    department_name VARCHAR2(30) NOT NULL
);

CREATE TABLE employees (
    employee_id NUMBER(6) PRIMARY KEY,       -- 员工ID作为主键
    first_name VARCHAR2(50),                 -- 名字
    last_name VARCHAR2(50) NOT NULL,         -- 姓氏不允许为空
    email VARCHAR2(50) UNIQUE NOT NULL,      -- 电子邮件必须唯一且不允许为空
    phone_number VARCHAR2(20),               -- 电话号码
    hire_date DATE NOT NULL,                 -- 入职日期不允许为空
    job_id VARCHAR2(10),                     -- 职位ID
    salary NUMBER(8,2) CHECK (salary > 0),   -- 薪水必须大于零
    commission_pct NUMBER(2,2),              -- 佣金比例
    manager_id NUMBER(6),                    -- 直属经理ID
    department_id NUMBER(4),
    CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id) -- 部门ID是外键
);

插入数据示例

-- 插入部门信息
INSERT INTO departments (department_id, department_name)
VALUES (10, 'Administration');

INSERT INTO departments (department_id, department_name)
VALUES (20, 'Marketing')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Davina_yu

您的打赏,是我灵感源泉,求投喂

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值