我的定位:中高级人才(框架熟练、Java语法精通、数据库会用、Linux会用、中间件会用、有大数据经验!)
开始,我以为自己什么都知道。后来发现,其实我什么都不知道。

20170623_oracle_SQL

 

============SQL分类

数据定义语言(DDL):CREATE ALERT DROP TRUNCATE

数据操纵语言(DML):INSERT UPDATE DELETE SELECT

事务控制语言(TCL):COMMIT SAVEPOINT ROLLBACK

数据控制语言(DCL):GRANT REVOKE

 

DML 创建序列

CREATE SEQUENCE sq_name

[start with n][increment by n][maxvalue n][nomaxvalue][cycle|nocycle][cache n|nocache];

sq_name.currval -- 当前序号

sq_name.nextval --下一个序号

DROP SEQUENCE sq_name; --删除序列

============ 常用的多表连接查询 ============

 

 =================== SQL 函数 ===================

Oracle 提供一系列用于执行特定操作的函数

SQL 函数带有一个或多个参数并返回一个值

以下是SQL函数的分类:

====================== 聚合函数 ======================

聚合函数基于一组行来返回结果

为每一组行返回一个值

GROUP BY 子句

  用于将信息划分为更小的组

  每一组行返回针对该组的单个结果

HAVING子句

  用于指定GROUP BY 子句检索行的条件

======================== 分析函数 ========================

分析函数根据一组行来计算聚合值

用于计算完成聚集的累计排名等

分析函数为每组记录返回多个行

======================== 联合查询 ========================

集合操作符将两个查询的结果组合成一个结果

================== 分页查询 ==================

什么是Oracle伪列?

  Oracle中伪列就像一个表列,但是它并没有存储在表中

  伪列可以从表中查询,但不能插入、更新和删除它们的值

常用的伪列有哪些?

  ROWID

  ROWID是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用ROWID伪列快速地定位表中的一行

  ROWNUM

  ROWNUM是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数

 

因为按照方法一,查询结果的rownum是无序的。

 

 

 rownum不支持这么使用,要生成rank,再查询。

 

 

 同上。

 

没有想出来。

总结:

SQL 语言分为几类?分别是什么?作用?

SQL语言分为4类,分别是:

数据定义语言(DDL),作用是创建、修改、删除表的。

数据操纵语言(DML),用于表中数据的增删改查操作。

事务控制语言(TCL),顾名思义,用于事务提交保存点,回滚。

数据控制语言(DCL),用于授权和撤销授权。

 

SQL 函数可以划分成几类?分别是什么?

SQL函数可以分为3类,分别是:

单行函数,单行函数对于从表中查询的没一行值返回一个值,可以出现再SELECT子句中和WHERE子句中。

大致可以划分为:数字函数、字符函数、日期函数、转换函数、其他函数。

聚合函数,基于一组行来返回结果,为每一组行返回一个值。

分析函数,根据一组行来计算聚合值,用于计算完成聚集的累计排名等,分析函数每组记录返回多个行。

 

分页查询使用什么伪列?

ROWID、ROWNUM。


分页需要注意什么?

  1.order by之后rownum就无序了

  2.不能使用rownum查询特定行的值,要用rank

  3.不能使用rownum查询特定范围的值,要用rank

posted @ 2017-06-23 17:23  想太多先森  阅读(132)  评论(0编辑  收藏  举报