创建human用户登录数据库创建表

根据人力资源管理系统中表的设计,创建human用户登录数据库创建

准备阶段
把运行脚本复制到D:\app\Administrator\product\11.2.0\dbhome_1\demo\schema\human_resources\下。



运行脚本@D:\app\Administrator\product\11.2.0\dbhome_1\demo\schema\human_resources\hr_main.sql。我先前已经创建过hr,所以用户名为hr01.

验证用户是否创建成功

创建human用户,create user human identified by human;
其中by后面的是密码,随便写。

修改human密码

解锁并登陆human

会发现连接失败,这是因为缺会话(session)权限

用sys用户授予用户权限

导入数据时会发现访问其他用户表权限不足,需要sysdba授权。

但是发现对表空间权限不足,仍需要sysdba授权。

实验阶段
1、 创建REGIONS表

2、 创建COUNTRIES表

3、 创建lOCATIONS表

4、 创建DEPARTMENTS表

5、 创建JOBS表

6、 创建EMPLOYEES表

7、 创建JOB_HISTROY表

8、 创建SAL_GRADES表

9、 创建UERS表

10、 使用子查询创建一个表,保存工资高于1500元的员工的员工号、员工姓名和部门号。

11、 使用子查询创建一个包含员工号、员工email、员工工资及部门号信息的,其中员工号为主键、email唯一。

12、 查询当前用户拥有的所有表的信息。

13、查询employees表中所有约束的名称和类型。

创建表语句
CREATE TABLE regions(
region_id NUMBER PRIMARY KEY NOT NULL,
region_name VARCHAR2(25));

CREATE TABLE countries(
country_id CHAR(2) PRIMARY KEY NOT NULL,
country_name VARCHAR2(40),
region_id NUMBER REFERENCES regions(region_id));

CREATE TABLE locations(
location_id NUMBER(4) PRIMARY KEY NOT NULL,
street_address VARCHAR2(40),
postal_code VARCHAR2(12),
city VARCHAR2(30) NOT NULL,
state_province VARCHAR2(25),
country_id CHAR(2) REFERENCES countries(country_id));

CREATE TABLE departments(
department_id NUMBER(4) PRIMARY KEY NOT NULL,
department_name VARCHAR2(30) NOT NULL,
manager_id NUMBER(6),
location_id NUMBER(4) REFERENCES locations(location_id));

CREATE TABLE jobs(
job_id VARCHAR2(10) PRIMARY KEY NOT NULL,
job_title VARCHAR2(35) NOT NULL,
min_salary NUMBER(6),
max_salary NUMBER(6));

CREATE TABLE employees(
employee_id NUMBER(6) PRIMARY KEY NOT NULL,
first_name VARCHAR2(20),
last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25) NOT NULL,
phone_number VARCHAR2(20),
hire_date DATE NOT NULL,
job_id VARCHAR2(10) NOT NULL REFERENCES jobs (job_id),
salary NUMBER(8,2) CHECK (salary > 0),
commission_pct NUMBER(2,2),
manager_id NUMBER(6),
department_id NUMBER(4) REFERENCES departments(department_id));


CREATE TABLE job_history(
employee_id NUMBER(6) NOT NULL
REFERENCES employees(employee_id),
start_date DATE NOT NULL,
end_date DATE NOT NULL,
job_id VARCHAR2(10) NOT NULL
REFERENCES jobs(job_id),
department_id NUMBER(4) REFERENCES
departments(department_id),
CONSTRAINT jhist_date_interval
CHECK (end_date>start_date),
CONSTRAINT jhist_emp_id_st_date_pk
PRIMARY KEY (employee_id, start_date));

CREATE TABLE sal_grades(
grade NUMBER PRIMARY KEY,
min_salary NUMBER(8,2),
max_salary NUMBER(8,2));

CREATE TABLE users(
user_id NUMBER(2)PRIMARY KEY,
user_name CHAR(20),
password VARCHAR2(20) NOT NULL);
posted @ 2018-10-17 18:16  zhangyazhou  阅读(1654)  评论(0编辑  收藏  举报