Oracle下SQL基本操作(三)(9)
--MINUS 差,去掉公共部分
SELECT EMP.EMPLOYEEID,EMP.NAME FROM EMPLOYEE EMP
MINUS
SELECT DEP.DEPTID,DEP.DEPTNAME FROM DEPARTMENT DEP
---sequence创建序列
CREATE SEQUENCE EMPLVL_SEQ
INCREMENT BY 1 --步长
START WITH 1 -- 起始值
NOMAXVALUE --设置没有最大值
NOCYCLE --设置没有循环
CACHE 5; --缓存
---建表
CREATE TABLE EMPLVL
(LVLNO VARCHAR2(2),
LOWSALARY NUMBER,
HIGHSALARY NUMBER);
--EMPLVL_SEQ.NEXTVAL开始为起始值
INSERT INTO EMPLVL VALUES(EMPLVL_SEQ.NEXTVAL, 1000, 2000);
--以后为上一次的值加步长
INSERT INTO EMPLVL VALUES(EMPLVL_SEQ.NEXTVAL, 2001, 3000);
INSERT INTO EMPLVL VALUES(EMPLVL_SEQ.NEXTVAL, 3001, 4000);
---查询当前序列号
SELECT EMPLVL_SEQ.CURRVAL FROM DUAL;
--SELECT *FROM EMPLVL
----视图
---创建视图
CREATE OR REPLACE VIEW SHITU
AS SELECT STU.ID,STU.NAME
FROM STU
--像表一样操作视图
SELECT * FROM SHITU;
---事务控制
--创建表
CREATE TABLE STU(
ID CHAR(10),
NAME VARCHAR2(40) NOT NULL,
SEX CHAR(1) CONSTRAINTS STU_SEX_NN NOT NULL,
BIRTHDAY DATE,
CONSTRAINTS STU_ID_PK PRIMARY KEY (ID)
);
---SELECT * FROM STU
INSERT INTO STU VALUES('0002', 'YAO','1',NULL);
--回滚
ROLLBACK;
--写入磁盘
COMMIT
INSERT INTO STU VALUES('0003', 'YAO','1',NULL);
INSERT INTO STU VALUES('0004', 'YAO','1',NULL);
--设置保存点
SAVEPOINT X;
INSERT INTO STU VALUES('0005', 'YAO','1',NULL);
INSERT INTO STU VALUES('0006', 'YAO','1',NULL);
--回滚到保存点
ROLLBACK TO SAVEPOINT X;
--写入磁盘
COMMIT;
-----带图片的表
CREATE TABLE IMAGEFILES (
ID VARCHAR2(3),
FILENAME VARCHAR2(40),
IMAGE BLOB,
CONSTRAINTS IMG_PK_ID PRIMARY KEY (ID)
);
select * from imagefiles for update
本文出自 “Enthusiasm 10年” 博客
相关新闻>>
- 发表评论
-
- 最新评论 更多>>