暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

创建新用户及测试表的完整步骤

原创 暮雨 2025-10-02
46

创建新用户及测试表的完整步骤

1. 使用DBA账户连接数据库

-- 使用SYSDBA权限登录
CONN / AS SYSDBA;
-- 或者
CONN sys/您的密码 AS SYSDBA;

2. 创建新用户

-- 创建新用户,指定密码、默认表空间和临时表空间
CREATE USER test_user IDENTIFIED BY test123
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON USERS;

3. 授予必要权限

-- 授予基本会话权限
GRANT CREATE SESSION TO test_user;

-- 授予资源权限(包含创建表、序列等)
GRANT RESOURCE TO test_user;

-- 授予表空间配额权限
GRANT UNLIMITED TABLESPACE TO test_user;

-- 如果需要,还可以授予其他权限
GRANT CREATE TABLE, CREATE VIEW TO test_user;

4. 切换到新用户

-- 连接到新创建的用户
CONN test_user/test123;

5. 创建测试表

-- 创建员工测试表
CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50),
    email VARCHAR2(100),
    hire_date DATE,
    salary NUMBER(10,2),
    department VARCHAR2(50)
);

-- 创建部门测试表(可选)
CREATE TABLE departments (
    department_id NUMBER PRIMARY KEY,
    department_name VARCHAR2(100),
    manager_id NUMBER
);

6. 插入测试数据

-- 向员工表插入测试数据
INSERT INTO employees VALUES (1, '张', '三', 'zhangsan@example.com', DATE '2020-01-15', 5000.00, '技术部');
INSERT INTO employees VALUES (2, '李', '四', 'lisi@example.com', DATE '2019-03-20', 6000.00, '销售部');
INSERT INTO employees VALUES (3, '王', '五', 'wangwu@example.com', DATE '2021-07-10', 5500.00, '技术部');
INSERT INTO employees VALUES (4, '赵', '六', 'zhaoliu@example.com', DATE '2018-11-05', 7000.00, '人事部');
INSERT INTO employees VALUES (5, '钱', '七', 'qianqi@example.com', DATE '2022-02-28', 4800.00, '销售部');

-- 向部门表插入测试数据(可选)
INSERT INTO departments VALUES (1, '技术部', 1);
INSERT INTO departments VALUES (2, '销售部', 2);
INSERT INTO departments VALUES (3, '人事部', 4);

-- 提交事务
COMMIT;

7. 验证数据插入

-- 查询员工表数据
SELECT * FROM employees;

-- 查询部门表数据
SELECT * FROM departments;

-- 统计各部门员工数量
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department;

一键执行的完整脚本

如果您希望一次性执行所有步骤,可以使用以下完整脚本:

-- 使用DBA账户执行以下脚本
CONN / AS SYSDBA;

-- 创建用户
CREATE USER test_user IDENTIFIED BY test123
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON USERS;

-- 授予权限
GRANT CREATE SESSION, RESOURCE, UNLIMITED TABLESPACE TO test_user;
GRANT CREATE TABLE, CREATE VIEW TO test_user;

-- 切换到新用户
CONN test_user/test123;

-- 创建表
CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50),
    email VARCHAR2(100),
    hire_date DATE,
    salary NUMBER(10,2),
    department VARCHAR2(50)
);

CREATE TABLE departments (
    department_id NUMBER PRIMARY KEY,
    department_name VARCHAR2(100),
    manager_id NUMBER
);

-- 插入数据
INSERT INTO employees VALUES (1, '张', '三', 'zhangsan@example.com', DATE '2020-01-15', 5000.00, '技术部');
INSERT INTO employees VALUES (2, '李', '四', 'lisi@example.com', DATE '2019-03-20', 6000.00, '销售部');
INSERT INTO employees VALUES (3, '王', '五', 'wangwu@example.com', DATE '2021-07-10', 5500.00, '技术部');
INSERT INTO employees VALUES (4, '赵', '六', 'zhaoliu@example.com', DATE '2018-11-05', 7000.00, '人事部');
INSERT INTO employees VALUES (5, '钱', '七', 'qianqi@example.com', DATE '2022-02-28', 4800.00, '销售部');

INSERT INTO departments VALUES (1, '技术部', 1);
INSERT INTO departments VALUES (2, '销售部', 2);
INSERT INTO departments VALUES (3, '人事部', 4);

COMMIT;

-- 验证
SELECT '员工表数据:' as info FROM dual;
SELECT * FROM employees;

SELECT '部门表数据:' as info FROM dual;
SELECT * FROM departments;

SELECT '各部门员工统计:' as info FROM dual;
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department;

创建序列用于自动生成ID(可选)

如果需要自动生成主键ID,可以创建序列:

-- 创建员工ID序列
CREATE SEQUENCE emp_seq
START WITH 100
INCREMENT BY 1
NOCACHE
NOCYCLE;

-- 创建部门ID序列
CREATE SEQUENCE dept_seq
START WITH 10
INCREMENT BY 1
NOCACHE
NOCYCLE;

-- 使用序列插入新数据
INSERT INTO employees VALUES (emp_seq.NEXTVAL, '孙', '八', 'sunba@example.com', SYSDATE, 5200.00, '技术部');
COMMIT;

重要说明

  1. 权限要求:执行用户创建需要DBA权限
  2. 表空间:确保指定的表空间存在且有足够空间
  3. 密码安全:生产环境中请使用更复杂的密码
  4. 权限控制:根据实际需要授予最小必要权限
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论