Oracle笔记--Sql语句
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语句的更多相关文章
- 笔记-sql语句
笔记-sql语句 1. sql语句基础 虽然经常使用sql语句,但没有一个整体式的文档,整理了一下. 1.1. select foundation: select <colnum ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- oracle之sql语句优化
oracle之sql语句优化 sql语句的优化 1.在where子句中使用 is null 或 is not null 时,oracle优化器就不能使用索引了. 2.对于有连接的列,即使最有一个是静态 ...
- oracle中sql语句的优化
oracle中sql语句的优化 一.执行顺序及优化细则 1.表名顺序优化 (1) 基础表放下面,当两表进行关联时数据量少的表的表名放右边表或视图: Student_info (30000条数据)D ...
- oracle 常用sql语句
oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...
- Oracle中SQL语句分类
Oracle中SQL语句分类如下:1.DML语句 insert/delete/update/select/merge/explan plan/lock table2.DDL语句 create/atlt ...
- Oracle和SQL语句的优化策略(基础篇)
转载自: http://blog.csdn.net/houpengfei111/article/details/9245337 http://blog.csdn.net/uniqed/article/ ...
- Access、SQLServer、Oracle常见SQL语句应用区别
Access.SQLServer.Oracle常见SQL语句应用区别 关劲松 PMP 如果要兼容Access.SQL Server.Oracle三个数据库版本:我们在编写SQL语句的过程中,尽量使用一 ...
- oracle的sql语句大小写
我相信大家都知道,oracle数据库是区分大小写的,而且oracle的默认为大写的,也就是说你在sql脚本上面写的sql语句,oracle运行的时候,它会自动转化为大写的.注意一下,我这里举例子的计算 ...
随机推荐
- 使用scrapy-redis 搭建分布式爬虫环境
scrapy-redis 简介 scrapy-redis 是 scrapy 框架基于 redis 数据库的组件,用于 scraoy 项目的分布式开发和部署. 有如下特征: 分布式爬取: 你可以启动多个 ...
- SSH 维持权限(好用)
很多时候我们拿下机器后需要维持权限,在计划任务上加入定时反弹shell这很容易被 运维人员发现,有些场景没必要用到rootkit级别的后门,我们可以尝试使用ssh后门 1.目的 长期维持机器root权 ...
- PTA----7-3树的遍历
7-3 树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数 ...
- Spring Boot 使用 Aop 实现日志全局拦截
前面的章节我们学习到 Spring Boot Log 日志使用教程 和 Spring Boot 异常处理与全局异常处理,本章我们结合 Aop 面向切面编程来实现全局拦截异常并记录日志. 在 Sprin ...
- layer.open({}) 子页面传参并调用父页面的方法
闲话少说先看效果!!! 说明适用场景:在a.jsp页面,点击查看一个文件,layer.open弹出b.jsp页面,在b.jsp页面可以修改文件的名称(其实是去改了数据库),但是关闭弹窗的后,要求不刷新 ...
- DHCP原理及报文格式
DHCP原理及报文格式 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是IETF为实现IP的自动配置而设计的协议,它可以为客户机自动分配IP地址. ...
- jqgrid自适应宽度
https://blog.csdn.net/duzhanxiaosa/article/details/78922660
- Unity热更新对比
https://www.jianshu.com/p/f9d90edf4a7c Unity 热更新为啥用Lua 详解 ILRuntime的优势 同市面上的其他热更方案相比,ILRuntime主要有以下优 ...
- nginx 反向代理memcached、websocket及nginx文件方面的优化
安装memcached服务,并启动添加数据 yum -y install memcached systemctl start memcached.service 启动 [root@python ~]# ...
- JS经典理解例子
1. var name = 'the window'; var obj = { name:"my obj", getNameFunc:function(){ return func ...