1、SQL的三种类型语句:

--1)DML(Data Manipulation Language)数据操纵语言

--2)DDL(Data Definition Language):数据定义语言

--3)DCL(Data Control Language):数据控制语言

2、DML相关语句:

--INSERT:增

--UPDATE:删

--DELETE:改

--SELECT:查

3、DDL相关语句:

--Create Table:创建表

--Alter Table:修改表

--Drop Table:删除表

--Create Index:创建索引

--Drop Index:删除索引

4、DCL相关语句:

--Grant:授权

--Revoke:收权

--Commit:提交事务处理

--RollBack:事务处理回滚

--SavePoint: 设置保存点

--Lock:对数据库特定部分进行锁定。

5、SQL语句与SQL*Plus命令:

--SQL是一种语言, SQL*Plus是一种环境;

--SQL是ANSI标准,SQL*Plus是Oracle的特性之一;

--SQL关键字不能缩写,SQL*Plus可以缩写;

--SQL使用语句控制数据库中的表的定义信息和表中的数据,SQL*Plus命令不能改变数据库中的数据的值;

6、转义字符的使用举例:select * from employees where last_name like '%\_%' escape '\'

7、常用单行函数:

--字符函数:1)lower('str'):将字符串全部转换为小写

      2)upper('STR'):将字符串全部转化为大写

      3)initcap('str'):将字符串中的每个单词首字母转换为大写

      4)concat('str1', 'str2'):连接字符串

      5)substr('str', 1, 2):获取字符串指定位置后指定长度的子串

      6)length('str'):获取字符串长度

      7)instr('str', 's'):获取's'在'str'中首次出现的位置,若不存在则为0

      8)lpad(xx, len, '*'):向左填充'*'至指定长度(rpad一样)

      9)trim('a' from 'abcdefg'):去除字符串首尾字符'a'

      10)replace('aabbccdd', 'c', 'e'):将字符串中的'c'替换为'e'

--数字函数:1)round(123.456, 2):四舍五入(保留两位小数)

      2)trunc(123.456, 2):截断(小数点保留两位)

      3)mod(1600, 300):取余

--日期函数:1)months_between(sysdate, nowdate):获取两个日期之间相差几个月

      2)add_months(sysdate, 3):向指定日期中加上若干个月

      3)next_day(sysdate, '星期四'):指定日期的下一个星期对于的日期

      4)last_day(sysdate):本月的最后一天

      5)round(sysdate, 'month'):日期按照月份四舍五入

      6)trunc(sysdate, 'hh'):日期按照小时截断

--转换函数:1)隐式转换(vaerchar2 or char -> number、varchar2 or char -> date、number -> varchar2、date -> varchaar2)

      2)to_date('2015-11-4', 'yyyy-mm-dd'):将字符串类型按指定格式转换为date类型

      3)to_number():

      4)to_char(sysdate, 'yyyy-mm-dd'):将date类型按指定格式转换为字符串类型

      5)to_char(12345678, '$999,999,99'):将number类型按指定格式转换为字符串类型('L', '$', '9', '0', '.', ',')

--通用函数:1)nvl(expr1, expr2):将空值转换成一个已知的值

      2)nvl2(expr1, expr2, expr3):expr1不为NULL时返回expr2,为空时返回expr3

      3)nullif(expr1, expr2):expr1与expr2相等时返回NULL,不等时返回expr1

      4)coalesce(expr1, expr2, ...., exprn):若前一个表达式为空,则返回下一个表达式。

8、条件表达式:

--在SQL语句中使用IF-THEN-ELSE逻辑

--两种方法:1)CASE表达式;2)DECODE函数。

9、内连接:

--1)

select employee_id, d.department_id, department_name
from employees e, departments d
where e.department_id = d.department_id;

--2)

select employee_id, d.department_id, department_name
from employees e join departments d
on e.department_id = d.department_id;

10、左外连接:查询满足条件的记录和不满足条件的左表的记录

--1)

select employee_id, d.department_id, department_name
from employees e, departments d
where e.department_id = d.department_id(+);

--2)

select employee_id, d.department_id, department_name
from employees e left outer join departments d
on e.department_id = d.department_id;

11、右外连接:查询满足条件的记录和不满足条件的右表的记录

--1)

select employee_id, d.department_id, department_name
from employees e, departments d
where e.department_id(+) = d.department_id;

--2)

select employee_id, d.department_id, department_name
from employees e right outer join departments d
on e.department_id = d.department_id;

12、满外连接:查询满足条件的记录和不满足条件的左、右表的记录

select employee_id, d.department_id, department_name
from employees e full outer join departments d
on e.department_id = d.department_id;

13、分组函数:

--组函数:1)avg(expr):求expr这一列平均值

     2)count(expr):统计expr这一列不为空的记录数

     3)max(expr):求expr这一列的最大值

     4)min(expr):求expr这一列的最小值

     5)stddev(expr):求expr这一列的样本偏差

     6)sum(expr):求expr这一列的样本总和

--不能在where条件中使用组函数,必须使用having.

14、常见的数据库对象:

--1)表:基本的数据存储集合,由行和列组成

--2)视图:从表中抽出的逻辑上相关的数据集合

--3)序列:提供有规律的数值

--4)索引:提高查询的效率

--5)同义词:给对象起名

15、建表的两种方式:

--1)

CREATE TABLE emp1(
id number(12),
name varchar2(12)
)

--2)从已存在的表中选取属性创建新表并获取相应的数据

CREATE TABLE emp2
AS
SELECT id, name FROM emp1

16、数据库事务:一组逻辑操作单元使数据从一种状态变换到另一种状态

--数据库事务由一个或多个DML语句、一个DDL语句、一个DCL语句组成;

--事务以第一个DML语句的执行作为开始、以下面的其中之一作为结束:

--1)COMMIT或ROLLBACK语句;

--2)DDL语句;

--3)用户会话正常结束;

--4)系统异常终止。

17、提交或回滚前的数据状态:

--其他用户不能看到当前用户所做的改变,知直到当前用户结束事务;

--DML语句所涉及到的行被锁定,其他用户不能操作。

18、提交后的数据状态:

--数据的改变已经被保存到数据库中;

--改变前的数据已经丢失;

--所有用户可以看到结果;

--锁被释放,其他用户可以操作涉及到的数据;

--所有保存点被释放。

19、视图:从表中抽出的逻辑上相关的数据集合

--视图是一种虚表;

--视图建立在已有表的基础上,视图赖以建立的这些表称为基表;

--向视图提供数据内容的语句为SELECT语句,可以将视图理解为存储起来的SELECT语句;

--视图是向用户提供基表数据的另一种表现形式;

--优点:1)控制数据访问;2)简化查询;3)避免重复访问相同的数据。

20、Top-N分析:分析查询一个列中最大或最小的n个值。(使用ROWNUM)

--对ROWNUM只能使用<或<=,而用=、>、>=都不会返回任何数据。

21、序列:可供多个用户用来产生唯一数值的数据库对象

--自动提供唯一的数值

--共享对象

--主要用于提供主键值

--将序列值装入内存可以提高访问效率

create sequence seq
increment by 10 --每次增长10
start with 10 --从10开始
maxvalue 100 --最大值为100
cycle --需要循环
nocache --不需要缓存登录 select seq.nextval from dual;
select seq.currval from dual;

22、索引:一种独立于表的模式对象,可以存储在与表不同的磁盘或表空间中

--索引被删除或损坏不会对表产生影响,只是影响查询的速度

--通过指针加速Oracle服务器的查询速度

--创建索引

create index idx
on table_name(column1, column2, ..., columnn);

--以下情况可以创建索引:1)列中数据值分布范围广;2)列经常在where字句或连接条件中出现;3)表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%。

23、同义词(synonym):

--方便访问其他用户的对象;

--缩短对象名字的长度。

--创建同义词

create synonym new_name for table_name

Oracle笔记--Sql语句的更多相关文章

  1. 笔记-sql语句

    笔记-sql语句 1.      sql语句基础 虽然经常使用sql语句,但没有一个整体式的文档,整理了一下. 1.1.    select foundation: select <colnum ...

  2. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  3. oracle之sql语句优化

    oracle之sql语句优化 sql语句的优化 1.在where子句中使用 is null 或 is not null 时,oracle优化器就不能使用索引了. 2.对于有连接的列,即使最有一个是静态 ...

  4. oracle中sql语句的优化

    oracle中sql语句的优化 一.执行顺序及优化细则 1.表名顺序优化 (1) 基础表放下面,当两表进行关联时数据量少的表的表名放右边表或视图: Student_info   (30000条数据)D ...

  5. oracle 常用sql语句

    oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...

  6. Oracle中SQL语句分类

    Oracle中SQL语句分类如下:1.DML语句 insert/delete/update/select/merge/explan plan/lock table2.DDL语句 create/atlt ...

  7. Oracle和SQL语句的优化策略(基础篇)

    转载自: http://blog.csdn.net/houpengfei111/article/details/9245337 http://blog.csdn.net/uniqed/article/ ...

  8. Access、SQLServer、Oracle常见SQL语句应用区别

    Access.SQLServer.Oracle常见SQL语句应用区别 关劲松 PMP 如果要兼容Access.SQL Server.Oracle三个数据库版本:我们在编写SQL语句的过程中,尽量使用一 ...

  9. oracle的sql语句大小写

    我相信大家都知道,oracle数据库是区分大小写的,而且oracle的默认为大写的,也就是说你在sql脚本上面写的sql语句,oracle运行的时候,它会自动转化为大写的.注意一下,我这里举例子的计算 ...

随机推荐

  1. DAY1小题

    F 求逆序对的板子题 #include<cstdio> #define ll long long using namespace std; ; ll a[maxn],r[maxn],n; ...

  2. html5的元素拖拽

    今天学习了妙味课堂的课程: 在html5中有支持元素拖拽的一些属性和方法: 一些实例代码如下: <div id="div1"></div> <ul&g ...

  3. 源代码管理工具(2)——SVN(2)——第一次用SVN遇到的问题

    今天因为项目的需要第一次使用了svn来托管项目,第一使用svn遇到了几个问题. 这个安装的过程很简单,不再赘述.在安装完成之后,相信肯定有一部分第一次用这个的人直接到开始处打开这个软件,这时候就会弹出 ...

  4. Vue 项目 在局域网内访问

    之前在百度上看到过很多中  关于局域网访问项目的方法, 在这里,个人推荐两种比较喜欢的方法 一.直接在项目的package.json文件中进行配置 ,代码如下 "scripts": ...

  5. SprintBoot学习(二)

    Spring Boot的入口类 1.名为xxxApplication的就是入口类,在main方法中使用SpringApplication.run(SpringBootTestApplication.c ...

  6. 如何使用charles对Android Https进行抓包

      Charles.png charles是一款在Mac下常用的截取网络封包工具,对Android Http进行抓包,只要对手机设置代理即可,但对Android Https进行抓包还是破费一些功夫,网 ...

  7. NFS网络文件共享系统!

    NFS是运行在应用层上的协议,其默认的端口为2049,它适用于linux与linux之间,也适用于linux与unix之间,亦可适用于linux与windows之间 nfs优缺点优点 节省本地硬盘的存 ...

  8. 科幻电影免费百度云分享(Scince-fiction cloud share)

    Marvel episode Link  Passcode:6h9k Star War full episode Link Passcode:7abk Men In Black Episode Col ...

  9. 【Javaweb】Servlet的xml和注解配置

    1.xml <%@ page language="java" contentType="text/html;" %> <!DOCTYPE ht ...

  10. javascript 变量、常量 、 函数 声明

    声明变量: 方式一: 使用 var 定义变量,可在定义的同时赋值 或 不赋值 . 方式二: 直接使用[变量名 = 值]的形式,这会定义一个全局变量,但在严格模式下会出现引用错误.[不建议使用] 方式三 ...