Oracle_sql :
第一单元:select 语句:
①:字符串连接操作符: ||
②:去除重复行:distinct
 
第二单元:条件限制和排序
①:关键字:where
②:比较操作符:=,>,<,between...and...,in,like,is null
     :使用like做模糊匹配:可使用%或者_作为通配符;%代表0个或多个字符。_代表一个单个字符。escape为标识转义字符 escape '/'。
③:排序:order by  asc(升序默认)/desc(倒序)
 
第三单元:单行函数
①:大小写转换:lower() A——a
                          upper()a——A
                          initcap()first——First
②:字符串操作函数
函数                                   结果
CONCAT('Hello', 'World')    HelloWorld
SUBSTR('HelloWorld',1,5)    Hello
LENGTH('HelloWorld')        10
INSTR('HelloWorld', 'W')      6
LPAD(salary,10,'*')               *****24000
RPAD(salary, 10, '*')             24000*****
TRIM('H' FROM 'HelloWorld')elloWorld
TRIM(' HelloWorld')              HelloWorld
TRIM('Hello World')              Hello World
③:数字操作函数:
函数                          结果
ROUND(45.926, 2)   45.93
TRUNC(45.926, 2)    45.92
MOD(1600, 300)      10
④:日期操作函数:
函数                                                                               结果
MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')              19.6774194
ADD_MONTHS ('11-JAN-94',6)                                      11-Jul-94
NEXT_DAY ('01-SEP-95','FRIDAY')                                   8-Sep-95
NEXT_DAY ('01-SEP-95',1)                                              3-Sep-95
NEXT_DAY ('1995-09-01',1)                                            ORA01861:literal does not match format string
NEXT_DAY (to_date('1995-09-01','YYYY-MM-DD'),1)      3-Sep-95
LAST_DAY('01-FEB-95')                                                   28-Feb-95
ROUND('25-JUL-95','MONTH')                                       1-Aug-95
ROUND('25-JUL-95' ,'YEAR')                                           1-Jan-96
TRUNC('25-JUL-95' ,'MONTH')                                        1-Jul-95
TRUNC('25-JUL-95','YEAR')                                              1-Jan-9
⑤:不同类型的数据转换函数:
Oracle数据类型的隐私转换规则:
对于赋值操作可以: 从到
VARCHAR2 or CHAR            NUMBER
VARCHAR2 or CHAR            DATE
NUMBER                              VARCHAR2
DATE                                    VARCHAR
对于表达式比较操作仅可以:
从到 VARCHAR2 or CHAR       NUMBER
        VARCHAR2 or CHAR        DATE
 
TO_CHAR() 函数:日期到字符串的转换
TO_CHAR(date, 'format_model') ;
日期格式化元素意义
YYYY                  4位数字表示的年份
YEAR                  英文描述的年份
MM                    2位数字表示的月份
MONTH              英文描述的月份
MON                  三个字母的英文描述月份简称
DD                      2位数字表示的日期
DAY                    英文描述的星期几
DY                      三个字母的英文描述的星期几简称
HH24:MI:SS AM  时分秒的格式化
DDspth               英文描述的月中第几天
fm                      格式化关键字,可选
 
TO_CHAR() 函数:数字到字符串的转换
TO_CHAR(number, 'format_model') ;
数字格式化元素意义
9表示一个数字
0强制显示0
$放一个美元占位符
L使用浮点本地币种符号
.显示一个小数点占位符
,显示一个千分位占位符
 
 
TO_NUMBER() 函数:字符串到数字的转换
TO_NUMBER(char[, 'format_model']) ;
TO_DATE() 函数:字符串到日期的转换
TO_DATE(char[, 'format_model'])
 
 
其他常用单行函数
函数用途
NVL (expr1, expr2)如果expr1为空,这返回expr2
NVL2 (expr1, expr2, expr3)如果expr1为空,这返回expr3(第2个结果)否则返回expr2
NULLIF (expr1, expr2)如果expr1和expr2相等,则返回空
COALESCE (expr1, expr2, ..., exprn)
如果expr1不为空,则返回expr1,结束;否则计算expr2,直到找到 一个不为NULL的值或者如果全部为NULL,也只能返回NULL 
 
 
条件表达式:decode函数:
DECODE(col|expression, search1, result1 [, search2, result2,...,] [, default])
 
第四单元:多表关联查询:1,等于链结
2,不等链结。3,外链接(左链结,右链结)。4,自联结
 
第五单元:分组计算函数和group by句子
分组计算函数:相对于单行函数,也可称之为多行函数,它的输入是多个行构成得一个行集(这个行集可以是 一张表的所有行,也可以是按照某个维度进行分组后的某一组行),而输出都是一个值;
 
分组计算函数(常用):包括
1、求和(SUM)
2、求平均值(AVG)
3、计数(COUNT)
4、求标准差(STDDEV)
5、求方差(VARIANCE)
6、求大值(MAX)
7、求小值(MIN)
8、COUNT 函数说明:
函数用法意义
COUNT(*) 返回满足选择条件的所有行的行数,包括值为空的行和重复的行
COUNT(expr)返回满足选择条件的且表达式不为空行数。
COUNT(DISTINCT expr)返回满足选择条件的且表达式不为空,且不重复的行数。
9、group by
SELECT 查询语句中同时选择分组计算函数表达式和其他独立字段时,其他字段必须出现在Group By子 句中,否则不合法。
不能在Where 条件中使用分组计算函数表达式,当出现这样的需求的时候,使用Having 子句
 
 
第六单元:子查询
SELECTselect_list FROMtable WHEREexproperator
(SELECTselect_list FROM  table);
 
 
第七单元:dml语句
DML: Data Manipulation Language , 数据操纵语言;简单的说就是SQL中的增、删、改等语句
 
INSERT INTO table [(column [, column...])] VALUES(value [, value...]);
UPDATE table SETcolumn= value[, column = value, ...] [WHERE condition];
DELETE [FROM]table [WHEREcondition];
 
 
第九章:数据库对象-表
规则要求:表的命名要求和表中列的命名要求:
1、必须以字母开头
2、长度不能超过30个字符
3、只能包含A–Z, a–z, 0–9, _, $, and #
4、不能与数据库中的已有对象重名
5、不能使用Oracle  数据库的保留
 
 
数据类型描述
VARCHAR2(size)可变长字符串
CHAR(size)  定长字符串
NUMBER(p,s)  可变长数值
DATE 日期时间
LONG 可变长大字符串,大可到2G
CLOB可变长大字符串数据,大可到4G
RAW and LONG RAW 二进制数据
BLOB大二进制数据,大可到4G BFILE存储于外部文件的二进制数据,大可到4G
ROWID64进制18位长度的数据,用以标识行的地址
TIMESTAMP精确到分秒级的日期类型(9i以后提供的增强数据类型)
INTERVAL YEAR TO MONTH表示几年几个月的间隔(9i以后提供的增强数据类型-极其少见)
INTERVAL DAY TO SECOND表示几天几小时几分几秒的间隔(9i以后提供的增强数据类型-极其 少见)
 
 
 
更改表的语法:
添加列:
ALTER TABLE table
ADD(column datatype[DEFAULT expr] [, column datatype]...);
更改列:
ALTER TABLE table
MODIFY(column datatype[DEFAULT expr] [, column datatype]...);
删除列:
ALTER TABLE table
DROP(column);
删除表:
DROP TABLE tableName;
更改表名:
RENAME oldtablenameto  newtableName;
 
 
第十单元:数据库对象-约束
约束的概念:Oracle 数据库使用“约束”来阻止对数据库表中数据的不合法的“增删改”动作。
常用的约束有如下几种:
NOT NULL      (非空约束)
UNIQUE (唯一性约束)
PRIMARY KEY   (主键约束)
FOREIGN KEY   (外键约束)
CHECK         (自定义约束)
 
 
单独创建约束语法:
ALTER TABLE tablename
ADD CONSTRAINT  constraintname constrainttype(column1,…);
 
 
删除约束:
ALTER TABLE tablename
DROP CONSTRAINT  constraintname;
 
 
失效/生效约束:
ALTER TABLE tablename 
DISABLE CONSTRAINT constraintname CASCADE;
 
ALTER TABLE tablename
ENABLE CONSTRAINT  constraintname;
 
查询系统中存在哪些约束:
SELECT constraint_name, constraint_type, search_condition
FROM user_constraints
 
 
 
第十一单元:数据库对象-视图
视图的概念:
有的时候我们需要关联多张表获得一个查询结果集,有的时候我们需要写很复杂的条件得到一个想要的结果集, 我们不想每次要想这些数据的时候都重新去写很复杂的SQL语句,怎么办?
我们可以把这些结果集创建为视图-View
 
视图创建的语法:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]]
 
删除视图:
drop view viewname;
 
 
 
第十二章:数据库对象-序列、索引、同义词
 
序列的概念:
有的时候我们定义某一张表中某一列为主键,当我们往表中插入数据的时候,对于主键字段的赋值要求唯一性, 我们希望能有个自增长类型的数据库对象,我们每获取一次,它自动增长,保证下次获取时肯定是不一样的值, 这样我们就方便了,Oracle 数据库提供“序列”这种对象来满足我们的要求
 
 
 
序列的创建:
CREATE SEQUENCE sequence
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n| NOMAXVALUE}]
[{MINVALUE n| NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n| NOCACHE}];
 
 
更改序列定义:
ALTER SEQUENCE sequence
INCREMENT BY 20
MAXVALUE 999999
NOCACHE 
NOCYCLE;
删除序列:
DROP SEQUENCE sequence;
 
 
索引创建举例:
CREATE INDEX emp_last_name_idx
ON employees(last_name);
 
 
同义词的概念:
当数据库用户A要访问数据库用户B中的一张表Table1的时候,需要加前缀
Select * from B.table1
但我们要通过DB-LINK访问另一个数据库中的某张表的时候我们需要加@后缀
Select * from table1@db-link-name
为了在程序中能够简化写法,Oracle 提供同义词,也就是可以在A用户下建立一个同义词指向B用户下的 Table1, 以后访问的时候可以直接访问这个同义词,而不用加前缀了
语法:CREATE SYNONYM Table1 for B.Table1
 
 
第十三单元:控制用户权限
 
语法:
GRANT object_priv [(columns)]
ON  object T
O{user|role|PUBLIC}
[WITH GRANT OPTION]  (传递权限)
 
收回权限:
REVOKE {privilege [, privilege...]|ALL}
ON   object
FROM   {user[, user...]|role|PUBLIC}
 
 
UNION
UNION  ALL   保留重复记录
 
INTERSECT   取交集
 
MINUS  取差集
SELECT employee_id,job_id
FROM   employees
MINUS
SELECT employee_id,job_id FROM   job_history;
 
 
第十四单元:group by 句子增强
①:在Group By 中使用Rollup 产生常规分组汇总行以及分组小计:
1、常规分组行;2,3 、分层小计行; Rollup 后面跟了n个字段,就将进行n+1次分组,从左到右每次减少一个字段进行分组;然后进行 union
②:在Group By 中使用Cube产生Rollup结果集+ 多维度的交叉表数据源:
 
 
 

oracle sql 知识小结的更多相关文章

  1. Oracle常用知识小结

    前言: 前一段时间项目开发数据库环境为Oracle,作为一个SQLer,表示各种不适应.所以刚开始的时候走了一些弯路,浪费了一席时间.因此就想把这些常用的东西给总结一下,算是对自己学习的总结,也希望能 ...

  2. 2008-03-18 22:58 oracle基础知识小结

    oracle 数据类型: 字段类型                 中文说明                                                  限制条件         ...

  3. oracle基础知识小结

    一.查看oracle用户.角色信息1.查看所有用户 select * from all_users; select * from user_users; 2.查看用户或角色系统权限 select * ...

  4. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  5. Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明

    Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明 1. 常见编程语言的分类  :命令式语言.函数式语言.逻辑语言1 1.1. 按照编程语言的代际划分,又2gl,3gl,4gl ...

  6. 45个非常有用的 Oracle 查询语句小结

    45个非常有用的 Oracle 查询语句小结 这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 ...

  7. Oracle SQL篇(一)null值之初体验

           从我第一次正式的写sql语句到现在,已经超过10年的时间了.我写报表,做统计分析和财务对账,我一点点的接触oracle数据库,并尝试深入了解.这条路,一走就是10年,从充满热情,到开始厌 ...

  8. Oracle SQL 调优健康检查脚本

    Oracle SQL 调优健康检查脚本 我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化.良好的数据架构设计.配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性 ...

  9. 图说Oracle基础知识(一)

    本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...

随机推荐

  1. eclipse创建android项目,无法正常预览布局文件

    http://jingyan.baidu.com/article/d621e8da0e0e052865913fae.html

  2. Mybatis 示例之 Association - 偶尔记一下 - 博客频道 - CSDN.NET

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  3. centos7中yum安装ntfs-3g

    CentOS默认源里没有ntfs3g,想要添加ntfs支持,无非是自己下载编译安装或者加源yum安装. 新安装了一个CentOS7,用的是添加aliyun的epel源来yum安装的方式,简单易行. 1 ...

  4. css运用中,对position属性的认识

    position属性有: static : 无特殊定位,对象遵循HTML定位规则 absolute : 将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位.而其层叠 ...

  5. (简单) POJ 3126 Prime Path,BFS。

    Description The ministers of the cabinet were quite upset by the message from the Chief of Security ...

  6. RPC(Remote Procedure Call Protocol)——远程过程调用协议

    RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在 ...

  7. CDbConnection failed to open the DB connection: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

    连接mysql出错:CDbConnection failed to open the DB connection: SQLSTATE[28000] [1045] Access denied for u ...

  8. iOS纯代码制作欢迎界面——UIScrollView, UIPageControl, UIImageView,UIButton, NSTimer

    欢迎界面,还是比较简单的,一个UIScrollView控件,一个UIPageControl,几个UIImageView即可摆平.在这里光玩这些,就显得诚意不足了.特意拓展一下,再加几个UIButton ...

  9. Spring AOP进行日志记录,管理

    在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个 ...

  10. INC函数

    1.inc(integer) inc(a)等于a:=a+1; 例: i := 100; inc(i); 结果:i等于101 2.inc(integer,integer) inc(a,b)等于a:=a+ ...