PL/SQL常用指令收集

1.select 语句

SELECT *  FROM dept  d                    显示dept(别名d)表中的所有字段

SELECT deptno, loc  FROM dept        显示dept表中的deptno与loc字段内容

语句中同样可以用算术运算与函数 如 sal+30,sal+nvl(comm,0)

2、where 子句

SELECT ename,job  FROM em

where job='CLERK'                               显示JOB为CLERK的字段

where子句中同样可以用比较运算符>,<,<>,<=,>=

                       between ... and ...(在两值之间)

                       in(...,....,...,) (匹配列出的值)

                       like (匹配一个字符的模式)

                       is null (是空值)

用逻辑运算符连接多个条件  and,or,not(优先级比较运算>not>and>or)

 3、order by子句

SELECT ename,job,deptno  FROM emp

order by deptno                  按deptno顺序排列(asc可隐藏)

........................... desc        按..........降序排列

后可跟多个字段,先后排列顺序

4、组函数与group by子句

SELECT deptno, AVG(sal) FROM emp

 GROUP BY deptno                               显示emp中按deptno分组的deptno与平均工资

组函数有  avg(..) 求平均数   sum(..)求和    count( ..)计数     max(..)求最大值

                 min(..)求最小值   stddev(..)标准差    variance(..)方差

5、having子句

SELECT deptno, max(sal) FROM emp
GROUP BY deptno
HAVING max(sal)>2900           显示emp表按deptno分组最大工资大于2900的最大工资

 having 功能等同于where功能 当使用分组语句时使用

6、insert语句

INSERT INTO dept (deptno, dname, loc)
VALUES (50, 'DEVELOPMENT', 'DETROIT')  在dept表中插入值字段与值一一对应

插入整条数据时,前面可以不跟字段,安装表中顺序写入值如:

INSERT INTO dept
VALUES (70, 'FINANCE', NULL)     null为空值

插入的值可以跟select,where语句

7、update语句

UPDATE emp
SET deptno = 20
WHERE empno = 7782     将emp表中empno等于7782中的denptno修改为20

8、delete语句

DELETE FROM dept
WHERE dname = 'DEVELOPMENT'    删除dept表中dname为DEVELOPMENT的数据

不用where子句为删除整张表

9、savepoint 与rollback

savepoint a1  存储a1存储点

rollback to a1 回到a1存储点状态

10、建表

CREATE TABLE dept 2 (deptno NUMBER(2),
 dname VARCHAR2(14),
loc VARCHAR2(13))         建立dept2表 下面分别为字段与属性

建表时可以用select 语句选择已有表中的字段(where 1<>1)或者数据

11、修改表

ALTER TABLE dept30
ADD (job VARCHAR2(9))    修改dept30表增加job字段

ALTER TABLE dept30

MODIFY (ename VARCHAR2(15)) 修改deptno中ename的属性为varchar2属性

alter table test

rename column name to dname     重命名test表中name字段为dname字段

12、删除表

DROP TABLE dept30   删除dept30表

13、改变对象名称

RENAME dept TO department   将dept表重命名为department

14、截取表的所有记录

TRUNCATE TABLE department   删除department中的所有数据

15、添加注释

COMMENT ON TABLE emp
IS 'Employee Information'      

select * from ALL_COL_COMMENTS         显示所注释

                     USER_COL_COMMENTS      

                     ALL_TAB_COMMENTS           

                     USER_TAB_COMMENTS   

 16、创建约束   

CREATE TABLE emp
                                  (empno NUMBER(4),
                                   ename VARCHAR2(10),
                                  deptno NUMBER(7,2) NOT NULL,
                                   CONSTRAINT emp_empno_pk
                                    PRIMARY KEY (EMPNO));        后两行创建约束主键为empno

CONSTRAINT dept_dname_uk UNIQUE(dname));唯一性约束

CONSTRAINT dept_deptno_pk PRIMARY KEY(dept_no)主键约束

CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)
REFERENCES dept (deptno));                        外检约束

CONSTRAINT emp_deptno_ck
CHECK (DEPTNO BETWEEN 10 AND 99)          check约束只能在10-99之间

17、加约束

ALTER TABLE emp

 ADD CONSTRAINT emp_mgr_fk

 FOREIGN KEY(mgr) REFERENCES emp(empno);

18、删除约束

ALTER TABLE emp
DROP CONSTRAINT emp_mgr_fk;

19、使约束失效

ALTER TABLE emp
 ENABLE CONSTRAINT emp_empno_pk;

20、查看约束

SELECT * FROM user_constraints
 WHERE table_name = 'EMP';

21、创建视图

CREATE VIEW empvu10
AS SELECT empno, ename, job
FROM emp
WHERE deptno = 10

22、修改视图

CREATE OR REPLACE VIEW empvu10
(employee_number, employee_name, job_title)
AS SELECT empno, ename, job
FROM emp
WHERE deptno = 10;

23、使用 WITH CHECK OPTION子句

使用WITH CHECK OPTION可使DML操作限制在视图所包含的范围内.

CREATE OR REPLACE VIEW empvu20
AS SELECT *
FROM emp
WHERE deptno = 20
WITH CHECK OPTION CONSTRAINT empvu20_ck;

24、删除视图

DROP VIEW view;

25、创建序列号

CREATE SEQUENCE dept_deptno
INCREMENT BY 1
START WITH 91
MAXVALUE 100
NOCACHE
NOCYCLE;

NEXTVAL 返回下一个可用序列号值
CURRVAL 包含当前的序列号值

26、创建索引

CREATE INDEX emp_ename_idx
ON emp(ename);

27、创建同义词

CREATE SYNONYM d_sum

FOR dept_sum_vu;

28、授予权限

GRANT create table, create sequence, create view
 TO scott;

29、创建角色

CREATE ROLE manager

30、修改账号密码

ALTER USER scott 

       IDENTIFIED BY lion

31、授予对象权限

GRANT select
 ON emp
 TO sue, rich

WITH GRANT OPTION  可转授此权限

32、收回对象的权限

 REVOKE select, insert
 ON dept
FROM scott;    收回权限

posted @ 2018-04-03 20:49  一个姓胡的测试  阅读(382)  评论(0编辑  收藏  举报