zoukankan      html  css  js  c++  java
  • 数据库的一些基础

    ---恢复内容开始---

    Oracle: SQL, PL/SQL

    SQL: 结构化查询语言, 用来操作关系型数据库
    分类:
    数据查询语言:DQL SELECT
    数据操作语言:DML INSERT DELETE UPDATE --MERGE
    数据定义语言:DDL CREATE DROP ALTER TRUNCATE --RENAME COMMENT
    数据控制语言:DCL --GRANT REVOKE
    事务控制语言:TCL SAVEPOINT COMMIT ROLLBACK


    DQL: SELECT
    1. 基本形式
    SELECT [DISTINCE] *|{column|expr [AS] alias, ...} 5--制定查询内容
    FROM tablename 1--指定数据所在表
    [WHERE condition] 2--过滤行
    [GROUP BY col|expr, ...] 3--分组
    [HAVING condition] 4--过滤分组 (条件包含分组函数)
    [ORDER BY col|expr|order]; 6--排序

    2. 多表查询
    相等连接
    自然连接: --FROM a NATURAL JOIN b; //
    JOIN...USING --FROM a JOIN b USING(c);//
    JOIN...ON FROM a JOIN b ON a.c = b.c;

    不等连接 --FROM a JOIN b ON a.c < b.c;
    自连接 --FROM a aa JOIN a ab ON aa.c = ab.c;
    外连接 FROM a LEFT|RIGHT|FULL JOIN b ON a.c = b.c;
    交叉连接 --FROM a CROSS JOIN b;


    3. 子查询
    非相关子查询:
    单行子查询: SELECT ... FROM t WHERE t.c < (SELECT c1 FROM t ...);
    多行子查询: SELECT ... FROM t WHERE t.c < ANY (SELECT c1 FROM t...); //ANY, ALL, IN
    --多列子查询: SELECT ... FROM t WHERE (c1, c2) IN (SELECT c1, c2 FROM ....);

    相关子查询:
    SELECT ... FROM t1 outer
    WHERE c < (SELECT ... FROM t2 WHERE t2.c = outer.c);

    SELECT ... FROM t1 outer
    WHERE [NOT] EXISTS (SELECT 0 FROM t2 WHERE t2.c = outer.c);


    4. 函数:
    单行函数:
    字符函数:UPPER/LOWER/INITCAP/LENGTH/SUBSTR/INSTR/REPLACE/TRIM/LTRIM/RTRIM
    数值函数:ROUND/TRUNC/MOD
    日期函数:SYSDATE/MONTH_BETWEEN/ADD_MONTHS/ROUND/TRUNC/*EXTRACT
    转换函数:*TO_CHAR/TO_NUMBER/*TO_DATE
    其他函数:*NVL/NVL2/NULLIF/COALESCE/*CASE/DECODE
    多行函数:(SUM/AVG/MAX/MIN/COUNT)

    5. 其他:
    伪列:ROWMID, ROWNUM
    TOP-N: SELECT ... FROM (SELECT ... FROM ... ORDER BY c)
    WHERE ROWNUM <= n;
    分页对应的sql语句(mysql, oracle, sql server)

    DML: INSERT, DELETE, UPDATE
    INSERT INTO table[(col, ...)]
    VALUES (val, ...);

    INSERT INTO table[(col, ...)]
    subquery;

    DELETE [FROM] table
    [WHERE condition];

    UPDATE table
    SET col = val, ...
    [WHERE condition];

    TCL: SAVEPOINT, COMMIT, ROLLBACK
    SAVEPOINT spname;
    COMMIT;
    ROLLBACK;
    ROLLBACK TO [SAVEPOINT] spname;

    事务的概念,事务的四个特性,事务隔离级别(了解)


    表:
    CREATE TABLE tablename(
    col_defined [col_constraint],
    ...
    [table_constraint]
    );
    col_defind:name type[(size)] DEFAULT default_value
    col_constraint: [CONSTRAINT cons_name] cons_type
    table_constraint: [CONSTRAINT cons_name] cons_type(col)

    cons_type: PRIMARY KEY,FOREING KEY, NOT NULL, UNIQUE,CHECK
    (注意外键的创建)
    ALTER TBALE tablename
    ADD COLUMN col_defide;
    DROP COLUMN tablename
    MODIFY col_define;

    ALTER TABLE tablename
    ADD table_constraint;

    ALTER TABLE tablename
    DROP CONSTRAINT 约束名;

    (一定要会用sql语句建表)

    DROP TABLE tablename
    TRUNCATE TABLE tablename;

    视图:
    CTEATE [OR REPLACE] VIEW vu[(col,...)]
    AS subquery;

    DROP VIEW vu;
    索引:
    CREATE INDEX inx_name
    ON table(col);
    删除索引
    DROP INDEX index_name;

    序列:
    CREATE SEQUENCE seq
    START WITH n
    [INCREMENT BY n]
    [MINVALUE n| NOMINVALUE]
    [MAXVALUE n| NOMAXVALUE]
    [CACHE n|NOCACHE]
    [CYCLE|NOCYCLE];

    DROP SEQUENCE seq;

    ALTER SEQUENCE seq
    [INCREMENT BY n]
    [MINVALUE n| NOMINVALUE]
    [MAXVALUE n| NOMAXVALUE]
    [CACHE n|NOCACHE]
    [CYCLE|NOCYCLE];

    存储过程、函数
    CREATE [OR REPLACE] PROCEDURE proc [(name type,...)]
    IS --局部变量定义
    var_name var_type [:=val|DEFAULT val];
    BEGIN --语句
    IF/CASE/WHILE/LOOP/FOR
    SQL语句
    END;

    DROP PROCEDURE proc;

    如何执行存储过程、函数

    CREATE [OR REPLACE] FUNCTION func [(name IN|OUT|INOUT type,...)]
    RETURN return type
    IS --局部变量定义
    var_name var_type [:=val|DEFAULT val];
    BEGIN --语句
    IF/CASE/WHILE/LOOP/FOR
    SQL语句
    END;

    DROP PROCEDURE proc;

    DROP FUNCTION func;

    java 中 和 IN OUT 的区别↓

    f(){
    int i=2;
    f2(i);
    print(i);
    }
    f2(int i){
    ++i;
    }

    ---恢复内容结束---

    博主 Email:32595667@139.com QQ:32595667
  • 相关阅读:
    命令行工具--netstat
    Man手册--nmap
    bc -l 对于 %取模计算出错
    离散对数和原根 欧拉定理证明
    bc-win32-power-echo-vim-not-work
    2010版EXCEL下方sheet工作表隐藏了
    word多出空标题,样式是列出段落
    plantuml
    久石让《龙猫》豆豆龙 钢琴视奏版
    神奇校车 = topsage
  • 原文地址:https://www.cnblogs.com/caozengling/p/5249688.html
Copyright © 2011-2022 走看看