项目9 创建与管理图书借阅网站项目序列和同义词
9.2 任务1——序列
--- 9.2.2 创建序列 ---
-- 例9.1 --
CONN SYS /BOOKBORROW AS SYSDBA;
GRANT CREATE SEQUENCE TO BOOKUSER;
CONN BOOKUSER /BOOKUSER;
-- 授予图书借阅网站系统数据库开发用户BOOKUSER创建序列的权限 --
CREATE SEQUENCE SEQ_USERS_ID
START WITH 1
INCREMENT BY 1
NOCYCLE
NOMAXVALUE;
-- 创建序列 --
--- 9.2.3 使用序列 ---
-- 例9.2 --
SELECT SEQ_USERS_ID.CURRVAL FROM DUAL; -- 提示错误信息 --
SELECT SEQ_USERS_ID.NEXTVAL FROM DUAL; -- 查看序列的下一个值 --
-- 例9.3 --
DELETE FROM USERS; -- 先删除USERS表中数据 --
INSERT INTO USERS(ID,NAME)VALUES(SEQ_USERS_ID.NEXTVAL,'张翔');
-- 使用序列,自动生成列值 --
SELECT * FROM USERS; -- 查看表中数据 --
SELECT SEQ_USERS_ID.CURRVAL FROM DUAL; -- 查看序列当前值 --
SELECT SEQ_USERS_ID.NEXTVAL FROM DUAL; -- 查看序列下一个值 --
INSERT INTO USERS(ID,NAME)VALUES(SEQ_USERS_ID.NEXTVAL,'孙瑜');
SELECT * FROM USERS;
-- 序列号的生成独立于表,所以,同一序列可用于一个或多个表 --
-- 例9.4 --
CREATE TABLE USERS2
(
ID Number,
TEL Varchar2(15)
);
-- 创建表 --
INSERT INTO USERS2(ID,TEL)VALUES(SEQ_USERS_ID.NEXTVAL,'0413-56618031');
-- 向USERS2中插入一个新的记录 --
SELECT * FROM USERS2;
-- 查看表中数据 --
INSERT INTO USERS(ID,NAME)VALUES(SEQ_USERS_ID.NEXTVAL,'宋轶');
-- 再向USERS1表中插值 --
SELECT * FROM USERS;
-- 查看表中数据 --
--- 9.2.4 更改序列 ---
-- 例9.5 --
ALTER SEQUENCE SEQ_USERS_ID
INCREMENT BY 2
MAXVALUE 100
CYCLE;
-- 更改序列SEQ_USERS_ID,设置序列的增量为2,最大值为100 --
--- 9.2.5 删除序列 ---
DROP SEQUENCE SEQ_USERS_ID;
9.3 任务2——同义词
--- 9.3.2 创建同义词 ---
-- 例9.7 --
CONN SYS /BOOKBORROW AS SYSDBA; -- 以管理员的身份连接 --
GRANT CREATE SYNONYM TO BOOKUSER; -- 给用户赋予创建视图的权限 --
CONN BOOKUSER /BOOKUSER; -- 再次使用户BOOKUSER连接成功 --
CREATE SYNONYM U FOR USERS;
-- 创建同义词 --
DESC U;
-- 使用同义词查看USERS表结构 --
SELECT * FROM U;
-- 使用同义词查看USERS表数据 --
--- 9.3.3 更改同义词 ---
-- 例9.8 --
CREATE OR REPLACE SYNONYM U FOR USERS2;
-- 修改同义词U,使其代表USERS2; --
--- 9.3.4 删除同义词 ---
-- 例9.9 --
DROP SYNONYM U;