检查数据库版本及服务状态
//查看达梦数据库运行状态
SELECT status$ as 状态 FROM v$instance;
//查看达梦数据库版本
SELECT banner as 版本信息 FROM v$version;
创建用户
//创建用户
CREATE USER DM IDENTIFIED BY "dameng123";
授予用户基本权限
使用 GRANT 语句给 DM 用户授予 RESOURCE 角色;
GRANT RESOURCE TO DM;
给 DM 用户授予 dmhr 用户下 employee 表的 select 权限;
GRANT SELECT ON dmhr.employee TO DM;
给 DM 用户授予 dmhr 用户下 department 表的 select 权限;
GRANT SELECT ON dmhr.department TO DM;
查看用户信息
通过字典表 dba_users 查看基本信息。
SELECT username,account_status,created FROM dba_users
WHERE username='DM';
从输出结果看出,用户状态 account_status 为 open,输出的时间为用户的创建时间。
切换用户
需从 sysdba 用户切换到 DM 用户,以下小节操作均在 DM 普通用户下完成。
切换到DM用户
使用 conn 命令切换用户。
//切换到DM用户
conn DM/dameng123;
查看当前登录用户
使用 user 关键字返回当前登录用户。
//查看当前登录用户
SELECT user FROM DUAL;
若服务器返回当前登录用户是 DM,则用户切换成功,可继续下一步操作。
创建表并添加约束
使用 CREATE TABLE 语句创建 employee 表。
CREATE TABLE employee
(
employee_id INTEGER,
employee_name VARCHAR2(20) NOT NULL,
hire_date DATE,
salary INTEGER,
department_id INTEGER NOT NULL
);
使用 CREATE TABLE 语句创建 department 表。
CREATE TABLE department
(
department_id INTEGER PRIMARY KEY,
department_name VARCHAR(30) NOT NULL
);
添加表约束
-
非空约束
使用 ALTER TABLE 语句给表增加非空约束。
ALTER TABLE employee MODIFY( hire_date not null);
-
主键约束
使用 ALTER TABLE 语句给表增加主键约束。
ALTER TABLE employee ADD constraint pk_empid
PRIMARY KEY(employee_id);
-
外键约束
使用 ALTER TABLE 语句给表增加外键约束。
ALTER TABLE employee ADD constraint fk_dept FOREIGN KEY
(department_id) REFERENCES department (department_id);
查看表结构
使用 desc 语句查看表结构。
DESC employee;
结果显示,employee 表中雇佣日期 hire_date 字段已成功加上非空约束。
查看表主键外键
通过系统表 all_constraints 查看自定义的主键、外键。
SELECT table_name, constraint_name, constraint_type FROM
all_constraints WHERE owner='DM' AND table_name='EMPLOYEE';
从输出显示,employee 表已成功加上主键、外键约束。
验证数据表 CRUD 功能
插入数据
使用 INSERT INTO 语句向 department 表插入数据记录。
INSERT INTO department VALUES(666, '数据库产品中心');
使用 INSERT INTO 语句向 employee 表插入数据记录。
INSERT INTO employee VALUES
(9999, '王达梦','2008-05-30 00:00:00', 30000, 666);
插入数据后,使用 commit 语句提交事务。
commit;
因为 employee 员工表和 department 部门表存在主外键约束,所以此示例中须按顺序执行插入语句,即先在 department 表中插入数据。