zoukankan      html  css  js  c++  java
  • 玩转oracle

    小型数据库:access、foxbase

    中型数据库:mysql、sql server、informix

    大型数据库:sybase、oracle、db2

    如何选取适合的数据库:

    项目的规模:负载量多大、用户多大;成本;安全性

    DBA认证(数据库管理员)

    sys用户是超级用户,具有最高权限,默认密码manager

    system用户是管理操作员,没有created database权限,默认密码change_on_install

    oracle常用SQL语法和数据对象

    SQL 语句分类:按其功能分为5类,即数据查询语句、数据操纵语句、数据定义语句、事务控制语句和数据控制语句。

    DML语言,比如update,delete,insert等修改表中数据的需要commit;
    DDL语言,比如create,drop等改变表结构的,就不需要写commit(因为内部隐藏了commit);

    1、数据控制语句(DML)部分

    1)INSERT

    2)DELETE对表进行删除

    3)  UPDATE

    2、数据定义语句(DDL)部分

    1)CREATE

    2)ALTER改变系统参数

    3)DROP

    4)TRUNCATE

    3、查询语句(SELECT)部分

    4、oracle里常用的数据对象

    1)索引(INDEX)

    2)视图(VIEW)

    3)同义词(SYNONMY)

    4)数据库链接(DATABASE LINK)

    5、权限管理(DCL)语句

    1)GRANT 赋予权限

    2)REVOKE 回收权限

    6、事务控制语句

    COMMIT:用于提交由DML语句操作的事务

    ROLLBACK:用于回滚DML语句改变了的数据

    my objects->Tables ->右键

      查看、查询数据(查询出来,仅显示一部分)

    SQL的查询语句

    关键字大写其他小写以做区分

    特定列的查询、where语句、在SQL语句中使用列的别名

    创建别名时,在列名后使用AS关键字,之后紧跟别名,或者在列名后加空格,然后紧跟着别名(但是此时的列标题在显示时为别名的大写格式)。如果要保持别名的格式,可以使用双引号

    推荐书写SQL语句的规范:

    1) SQL语句的关键字要大写,对象名小写

    2) 缩进对齐,这样便于阅读

    3) 每个子句一行

    单行函数

    单行函数分为字符型单行函数、数字型单行函数和日期型单行函数

    1)字符型单行函数

    LOWER、UPPER、INITCAP(首字母大写)、CONCAT(连接两个字符串)、SUBSTR(从一个字符串中获取一个子串)、LENGTH(计算字符串中字符的个数)、INSTR、TRIM(在字符串中剪切一个字符)、REPLACE

    2)数字型单行函数

    ROUND(四舍五入保留指定位小数)、TRUNC(截断,不四舍五入)、MOD

    3) 日期型单行函数

    SYSDATE、MONTHS_BETWEEN(得到两个日期之间的月数)、ADD_MONTHS、NEXT_DAY、 LAST_DAY

    空值和空值处理函数

    NVL(expr1, expr2)如果expr1的值为空值,则返回expr2的值,否则返回expr1的值

    NVL2(expr1, expr2, expr3)如果expr1值为空,返回expr3,若不为空,返回expr2

    NULLIF(expr1,expr2)如果两者相等返回空值NULL,若不相等返回expr1(要求expr1不为空)

    COALESCE(expr1,expr2...)返回第一个不为空的表达式的值

    条件表达式

    CASE、DECODE

    分组函数(分组函数作用于一组数据,返回一个值(如员工工资最大值))分组函数会自动忽略空值

    AVG(求均值)、SUM(求和)、MAX、MIN、COUNT(返回经计算得到的返回行数,包括空行和重复的行)、VM_concat(行转列)、GROUP BY、分组函数的嵌套使用、HAVING子句

    NVL函数-滤空函数

    使用多个列分组

    所有包含于SELECT列表中,而未包含于组函数的列都必须包含于GROUP BY子句中

    where 使得分组记录数大大降低,从而提高效率

    a命令 追加 eg:a  (两个或以上空格) desc

    /执行  ed编辑

    group by的增强:group by rollup(a,b)等价于group by a,b + group by a + group by null

    desc a 查询表结构 

    select DISTINCT(CAR_ID) from HIS_GPS_DATA t 去除重复

    操作符

    使用关联查询

    使用外关联查询

    分组函数的概念、使用、使用Group by子句数据分组、使用Having子句过滤分组结果集 

     多表查询、笛卡尔集(每张表的列数相加,行数相乘)、等值连接、不等值连接、外连接、自连接(通过别名,将同一张表视为多张表,不适合操作大表)、层次查询(某些层面上可以取代自连接,本质上是单表查询)

    为了避免笛卡尔全集,可以在where加入有效的连接条件

    在实际运行环境下,应避免使用笛卡尔全集

    右外连接where e.deptno(+)=d.deptno

    左外连接 where e.deptno=d.deptno(+)

    子查询语句放到小括号里面

    不可以在GROUP by子句后插入子查询(from 后面子查询)

    行号只能使用<,<=不能使用>,>=

    VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容

  • 相关阅读:
    AS3包类大全新手必学
    31天重构学习笔记27. 去除上帝类
    31天重构学习笔记26. 避免双重否定
    31天重构学习笔记29. 去除中间人对象
    与继承相关的一些重构(二)
    31天重构学习笔记28. 为布尔方法命名
    与继承相关的一些重构(一)
    31天重构学习笔记25. 引入契约式设计
    必会重构技巧(一):封装集合
    31天重构学习笔记30. 尽快返回
  • 原文地址:https://www.cnblogs.com/sxbjdl/p/5748503.html
Copyright © 2011-2022 走看看