CREATE TABLE TAB_TESTINFO(
I_ID NUMBER CONSTRAINT PK_ID PRIMARY KEY,
I_NAME VARCHAR2(50) NULL,
I_SEX CHAR(2) NOT NULL,
I_DATE DATE NULL
);
—修改表
—修改表单个列
ALTER TBALE TAB_TESTINFO MODIFY I_SEX CHAR(2);
—修改表多个列
ALTER TABLE TAB_TESTINFO MODIFY (I_SEX VARCHAR2(10),I_DATE VARCHAR(20));
—增加单个表单个列
ALTER TABLE TAB_TESTINFO ADD LOAD_1 NUMBER;
—增加多表多个列
ALTER TABLE TAB_TESTINFO ADD (LOAD_2 NUMBER,LOAD_3 NUMBER);
—删除表单个列
ALTER TABLE TAB_TESTINFO DROP COLUMN I_DATE;
—删除表多个列
ALTER TABLE TAB_TESTINFO DROP (COLUMN I_DATE, CLOUMN I_SEX);
—重命名表名
RENAME TAB_TESTINFO TO TAB_NEWTESTINFO;
—删除表
DROP TABLE TAB_NEWTESTINFO;
–非空约束
COLUMN VARCHAR(20) NOT NULL;
–唯一约束
COLUMN VARCHAR(50) CONSTRAINT COLUMN UNIQUE; —(创建表时候添加)
ALERT TABLE TAB_TESTINFO ADD CONSTRAINT UK_NAME UNIQUE(I_NAME);
—主键约束
COLUMN NUMBER CONSTRAINT PK_ID PRIMARY KEY; —(创建表时候添加)
ALTER TABLE TAB_TESTINFO ADD CONSTRAINT PK_ID PRIMARY KEY(I_ID);
–删除主键约束
ALTER TABLE TAB_TESTINFO DROP PRIMARY KEY;
–禁用主键约束
ALTER TABLE DISABLE PRIMARY;
–外键约束
ALERT TABLE TAB_TESTINFO ADD CONSTRAINT FK_SEX FOREIGN KEY (I_SEX) REFERENCES ‘表2’(‘列’);
–条件约束
COLUMN CONSTRAINT CHK_AGE CHECK(I_SEX BETWEEN 0 AND 120);
–指定默认值
COLUMN DEFAULE ‘未选中’;
–创建序列
CREATE SEQUENCE SEQ_ID
INCREMENT BY 1 --每次增加值
START WITH 1 --从1开始
MAXVALUE 999999 --最大值
MINVALUE 1 --最小值
NOCYCLE --一直累加,不循环
CACHE 20 --缓存量为20
NOORDER --不指定排序顺序
;
–NOMAXVALUE为SEQUENCE属性,当不用MAXVALUE属性时候可以用NOMAXVALUE代替
–使用序列
SEQ_NAME.NEXTVAL --获取当前序列下一个值
SEQ_NAME.CURRVAL --获取序列当前值
INSERT INTO ‘表名’(‘列1’,‘列2’,‘列3’…)VALUES(SEQ_NAME.NEXTVAL,‘列1’,‘列2’,‘列3’…);
SELECT SEQ_ID.NEXTVAL FROM DUAL; —查询一次分配一次NEXTVAL
SELECT SEQ_ID.CURRVAL FROM DUAL;
–修改序列(修改序列时候不能修改START WITH参数,如要修改则可删除序列,在创建序列)
ALTER SEQUENCE SEQ_ID
INCREMENT BY 1 --每次增加值
MAXVALUE 999999 --最大值
MINVALUE 1 --最小值
NOCYCLE --一直累加,不循环
CACHE 20 --缓存量为20
NOORDER --不指定排序顺序
–删除序列
DROP SEQUENCE ‘SEQ_名称’;
Oracle PL-SQL(编程)
于 2016-08-02 09:22:58 首次发布