zoukankan      html  css  js  c++  java
  • 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;    收回权限

  • 相关阅读:
    第12课:HTML基础之DOM操作1
    第12课:HTML+CSS的基础用法
    selenium对应三大浏览器(谷歌、火狐、IE)驱动安装
    windows下查看端口是否被占,以及端口被哪个程序占用
    windows下jenkins安装过程中的那些坑
    数据库命令大全
    机器学习总结之逻辑回归Logistic Regression
    Longest Substring Without Repeating Characters
    ffmpeg常见命令
    KNN及其改进算法的python实现
  • 原文地址:https://www.cnblogs.com/hujingsheng/p/8710774.html
Copyright © 2011-2022 走看看