• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LOFLY
终其一生,编织快乐
博客园    首页    新随笔    联系   管理    订阅  订阅

postgresql脚本例子-创建数据表语句

创建数据表语句

-- 部门信息表
CREATE TABLE departments
    ( department_id    INTEGER NOT NULL -- 部门编号,主键
    , department_name  CHARACTER VARYING(30) NOT NULL -- 部门名称
    , manager_id       INTEGER -- 部门经理的员工编号
    , location_id      INTEGER -- 部门所在位置编号
    , CONSTRAINT dept_id_pk PRIMARY KEY (department_id)
    ) ;

-- 职位信息表
CREATE TABLE jobs
    ( job_id         CHARACTER VARYING(10) NOT NULL -- 职位编号,主键
    , job_title      CHARACTER VARYING(35) NOT NULL -- 职位名称
    , min_salary     INTEGER -- 最低月薪
    , max_salary     INTEGER -- 最高月薪
    , CONSTRAINT job_id_pk PRIMARY KEY(job_id)
    ) ;

-- 员工信息表
CREATE TABLE employees
    ( employee_id    INTEGER NOT NULL -- 员工编号,主键
    , first_name     CHARACTER VARYING(20) -- 名字
    , last_name      CHARACTER VARYING(25) NOT NULL -- 姓氏
    , email          CHARACTER VARYING(25) NOT NULL -- 邮箱
    , phone_number   CHARACTER VARYING(20) -- 电话号码
    , hire_date      DATE NOT NULL -- 入职日期
    , job_id         CHARACTER VARYING(10) NOT NULL -- 职位编号
    , salary         NUMERIC(8,2) -- 月薪
    , commission_pct NUMERIC(2,2) -- 销售提成百分比
    , manager_id     INTEGER -- 经理
    , department_id  INTEGER -- 部门编号
    , CONSTRAINT emp_emp_id_pk PRIMARY KEY (employee_id)
    , CONSTRAINT emp_salary_min CHECK (salary > 0) 
    , CONSTRAINT emp_email_uk UNIQUE (email)
    , CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id)
    , CONSTRAINT emp_job_fk FOREIGN KEY (job_id) REFERENCES jobs(job_id)
    , CONSTRAINT emp_manager_fk FOREIGN KEY (manager_id) REFERENCES employees(employee_id)
    ) ;

ALTER TABLE departments ADD CONSTRAINT dept_mgr_fk FOREIGN KEY (manager_id) REFERENCES employees(employee_id);

-- 员工详细信息视图
CREATE VIEW emp_details_view
  (employee_id,
   job_id,
   manager_id,
   department_id,
   location_id,
   first_name,
   last_name,
   salary,
   commission_pct,
   department_name,
   job_title)
AS SELECT
  e.employee_id, 
  e.job_id, 
  e.manager_id, 
  e.department_id,
  d.location_id,
  e.first_name,
  e.last_name,
  e.salary,
  e.commission_pct,
  d.department_name,
  j.job_title
FROM
  employees e,
  departments d,
  jobs j
WHERE e.department_id = d.department_id
  AND j.job_id = e.job_id;

posted @ 2025-03-29 11:56  编织快乐  阅读(21)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3