Oracle入门初探---第一章 批量创建表、索引并插入测试数据

Oracle系列文章目录

第一章 批量创建表并插入测试数据


文章目录


前言

使用数据库,首先要向数据库中加入大量数据,本篇文章提供了一些测试数据


一、创建表和索引

sql 复制代码
-- 创建数据库和索引
-- 创建 3 个示例表
CREATE TABLE department
    ( dept_id    INTEGER NOT NULL PRIMARY KEY
    , dept_name  VARCHAR(50) NOT NULL
    ) ;
CREATE TABLE job
    ( job_id         INTEGER NOT NULL PRIMARY KEY
    , job_title      VARCHAR(50) NOT NULL
    ) ;
CREATE TABLE employee
    ( emp_id    INTEGER NOT NULL PRIMARY KEY
    , emp_name  VARCHAR(50) NOT NULL
    , sex       VARCHAR(10) NOT NULL
    , dept_id   INTEGER NOT NULL
    , manager   INTEGER
    , hire_date DATE NOT NULL
    , job_id    INTEGER NOT NULL
    , salary    NUMERIC(8,2) NOT NULL
    , bonus     NUMERIC(8,2)
    , email     VARCHAR(100) NOT NULL
    , CONSTRAINT ck_emp_sex CHECK (sex IN ('男', '女'))
    , CONSTRAINT ck_emp_salary CHECK (salary > 0)
    , CONSTRAINT uk_emp_email UNIQUE (email)
    , CONSTRAINT fk_emp_dept FOREIGN KEY (dept_id) REFERENCES department(dept_id)
    , CONSTRAINT fk_emp_job FOREIGN KEY (job_id) REFERENCES job(job_id)
    , CONSTRAINT fk_emp_manager FOREIGN KEY (manager) REFERENCES employee(emp_id)
    ) ;
CREATE INDEX idx_emp_name ON employee(emp_name);
CREATE INDEX idx_emp_dept ON employee(dept_id);
CREATE INDEX idx_emp_job ON employee(job_id);
CREATE INDEX idx_emp_manager ON employee(manager);

二、向表中加入数据

sql 复制代码
INSERT INTO department(dept_id, dept_name) VALUES (1, '行政管理部');
INSERT INTO department(dept_id, dept_name) VALUES (2, '人力资源部');
INSERT INTO department(dept_id, dept_name) VALUES (3, '财务部');
INSERT INTO department(dept_id, dept_name) VALUES (4, '研发部');
INSERT INTO department(dept_id, dept_name) VALUES (5, '销售部');
INSERT INTO department(dept_id, dept_name) VALUES (6, '保卫部');

INSERT INTO job(job_id, job_title) VALUES (1, '总经理');
INSERT INTO job(job_id, job_title) VALUES (2, '副总经理');
INSERT INTO job(job_id, job_title) VALUES (3, '人力资源总监');
INSERT INTO job(job_id, job_title) VALUES (4, '人力资源专员');
INSERT INTO job(job_id, job_title) VALUES (5, '财务经理');
INSERT INTO job(job_id, job_title) VALUES (6, '会计');
INSERT INTO job(job_id, job_title) VALUES (7, '开发经理');
INSERT INTO job(job_id, job_title) VALUES (8, '程序员');
INSERT INTO job(job_id, job_title) VALUES (9, '销售经理');
INSERT INTO job(job_id, job_title) VALUES (10, '销售人员');

INSERT INTO employee VALUES (1, '刘备', '男', 1, NULL, TO_DATE('2000-01-01', 'YYYY-MM-DD'), 1, 30000, 10000, 'liubei@shuguo.com');
INSERT INTO employee VALUES (2, '关羽', '男', 1, 1, TO_DATE('2000-01-01', 'YYYY-MM-DD'), 2, 26000, 10000, 'guanyu@shuguo.com');
INSERT INTO employee VALUES (3, '张飞', '男', 1, 1, TO_DATE('2000-01-01', 'YYYY-MM-DD'), 2, 24000, 10000, 'zhangfei@shuguo.com');
INSERT INTO employee VALUES (4, '诸葛亮', '男', 2, 1, TO_DATE('2006-03-15', 'YYYY-MM-DD'), 3, 24000, 8000, 'zhugeliang@shuguo.com');
INSERT INTO employee VALUES (5, '黄忠', '男', 2, 4, TO_DATE('2008-10-25', 'YYYY-MM-DD'), 4, 8000, NULL, 'huangzhong@shuguo.com');
INSERT INTO employee VALUES (6, '魏延', '男', 2, 4, TO_DATE('2007-04-01', 'YYYY-MM-DD'), 4, 7500, NULL, 'weiyan@shuguo.com');
INSERT INTO employee VALUES (7, '孙尚香', '女', 3, 1, TO_DATE('2002-08-08', 'YYYY-MM-DD'), 5, 12000, 5000, 'sunshangxiang@shuguo.com');
INSERT INTO employee VALUES (8, '孙丫鬟', '女', 3, 7, TO_DATE('2002-08-08', 'YYYY-MM-DD'), 6, 6000, NULL, 'sunyahuan@shuguo.com');
INSERT INTO employee VALUES (9, '赵云', '男', 4, 1, TO_DATE('2005-12-19', 'YYYY-MM-DD'), 7, 15000, 6000, 'zhaoyun@shuguo.com');
INSERT INTO employee VALUES (10, '廖化', '男', 4, 9, TO_DATE('2009-02-17', 'YYYY-MM-DD'), 8, 6500, NULL, 'liaohua@shuguo.com');
INSERT INTO employee VALUES (11, '关平', '男', 4, 9, TO_DATE('2011-07-24', 'YYYY-MM-DD'), 8, 6800, NULL, 'guanping@shuguo.com');
INSERT INTO employee VALUES (12, '赵氏', '女', 4, 9, TO_DATE('2011-11-10', 'YYYY-MM-DD'), 8, 6600, NULL, 'zhaoshi@shuguo.com');
INSERT INTO employee VALUES (13, '关兴', '男', 4, 9, TO_DATE('2011-07-30', 'YYYY-MM-DD'), 8, 7000, NULL, 'guanxing@shuguo.com');
INSERT INTO employee VALUES (14, '张苞', '男', 4, 9, TO_DATE('2012-05-31', 'YYYY-MM-DD'), 8, 6500, NULL, 'zhangbao@shuguo.com');
INSERT INTO employee VALUES (15, '赵统', '男', 4, 9, TO_DATE('2012-05-03', 'YYYY-MM-DD'), 8, 6000, NULL, 'zhaotong@shuguo.com');
INSERT INTO employee VALUES (16, '周仓', '男', 4, 9, TO_DATE('2010-02-20', 'YYYY-MM-DD'), 8, 8000, NULL, 'zhoucang@shuguo.com');
INSERT INTO employee VALUES (17, '马岱', '男', 4, 9, TO_DATE('2014-09-16', 'YYYY-MM-DD'), 8, 5800, NULL, 'madai@shuguo.com');
INSERT INTO employee VALUES (18, '法正', '男', 5, 2, TO_DATE('2017-04-09', 'YYYY-MM-DD'), 9, 10000, 5000, 'fazheng@shuguo.com');
INSERT INTO employee VALUES (19, '庞统', '男', 5, 18, TO_DATE('2017-06-06', 'YYYY-MM-DD'), 10, 4100, 2000, 'pangtong@shuguo.com');
INSERT INTO employee VALUES (20, '蒋琬', '男', 5, 18, TO_DATE('2018-01-28', 'YYYY-MM-DD'), 10, 4000, 1500, 'jiangwan@shuguo.com');
INSERT INTO employee VALUES (21, '黄权', '男', 5, 18, TO_DATE('2018-03-14', 'YYYY-MM-DD'), 10, 4200, NULL, 'huangquan@shuguo.com');
INSERT INTO employee VALUES (22, '糜竺', '男', 5, 18, TO_DATE('2018-03-27', 'YYYY-MM-DD'), 10, 4300, NULL, 'mizhu@shuguo.com');
INSERT INTO employee VALUES (23, '邓芝', '男', 5, 18, TO_DATE('2018-11-11', 'YYYY-MM-DD'), 10, 4000, NULL, 'dengzhi@shuguo.com');
INSERT INTO employee VALUES (24, '简雍', '男', 5, 18, TO_DATE('2019-05-11', 'YYYY-MM-DD'), 10, 4800, NULL, 'jianyong@shuguo.com');
INSERT INTO employee VALUES (25, '孙乾', '男', 5, 18, TO_DATE('2018-10-09', 'YYYY-MM-DD'), 10, 4700, NULL, 'sunqian@shuguo.com');

总结

这些数据导入完成后,可以进行增删改查一系列操作的测试了,不用自己再费劲造数据集合了,因为自己找测试数据是很麻烦的一件事,是可以进行三表联查,分组查询,排序等一系列操作

相关推荐
焦虑的二狗1 小时前
Mac下载mysql
数据库·mysql·macos
weixin_456904272 小时前
控制台打开mysql服务报错解决办法
数据库·mysql
叶甯2 小时前
【oracle】oracle 常用日期操作
oracle
小云数据库服务专线2 小时前
GaussDB与Druid连接池常见问题
数据库·gaussdb
义薄云天us3 小时前
019_工具集成与外部API调用
数据库·人工智能·windows·microsoft·claude code
LuckyLay4 小时前
1.2.1 面向对象详解——AI教你学Django
数据库·django·sqlite
暮色驶过苍茫5 小时前
H2 与高斯数据库兼容性解决方案:虚拟表与类型处理
数据库·oracle
zm6 小时前
多客户端-服务器(select,poll)
网络·数据库
愿你天黑有灯下雨有伞7 小时前
从数据库到播放器:Java视频续播功能完整实现解析
java·数据库·音视频
中文很快乐7 小时前
postgreSQL的sql语句
数据库·sql·postgresql