文档章节

oracle 学习笔记二

m243043962
 m243043962
发布于 2017/08/12 15:39
字数 1661
阅读 1
收藏 0
点赞 0
评论 0

创建表的语法
create table 表名
(
    列名 数据类型 ,
    列名 数据类型 
    ......
) ;


增  添加
insert into 表名(列名,列名...) values (值,值...) ;

删  删除delete
delete from 表名 ;     where 条件 ;

改  修改
update 表名  set 列名 = 值,列名 = 值  where 条件;

查  查询
select 列名,列名...from 表名 ;

select s_id ,s_name ,s_age ,sex from s7 ; 

--当你要查看这个表中的所有列时,可以使用 “*”来代替所有的列名 。select  * from s7 ; 

对表进行 增,删,改的时候,都需要 提交 commit ,提交之后才表示数据真正到数据库中

回滚 rollback  ,没有提交的数据才能够回滚 


char(n)  定长字符串,n最大 2000字节 当位数不足的时候会自动用空格来填充 

varchar2(n) 变长字符串,n最大是4000字节

number(m,n)  m表示总长度,n表示小数点后面的位数 

number(5,2) 999.99 

number(38) 

number(5) 

int 整数类型 

date  日期类型,DD-MM-YY  01-11月-00  

DDL: 数据定义语言 create ,drop ,alter 
create table ,create user
drop table ,drop user 
--修改表 

--添加列语法 
alter table 表名 add 列名 数据类型 ;   
--删除列语法 
alter table 表名 drop column 列名  ; 
--给s7 表添加一列 tage  int 
alter table s7 add tage int ; 
alter table s7 drop column tage ; 

select tage , tid ,tname from s7 ; 

DML:数据操作语言 insert , update ,delete  

增  添加
insert into 表名(列名,列名...) values (值,值...) ;

删  删除delete
delete from 表名 ;     where 条件 ;

改  修改
update 表名  set 列名 = 值,列名 = 值  where 条件;

DCL:数据控制语言
grant授权 , revoke  

grant 权限名,权限名...  to  用户   ; 

revoke 权限名,权限名 .....  from 用户名 ; 

DQL:数据查询语言
select  查询 

数据管理命令

事务性控制命令 
commit ,rollback 这两个都是事务性控制命令

SQL语言中,关键字,表名,列名 不区分大小写 ,where 后面条件的值需要区分大小写 。


and 并且,表示多个条件同时成立才能够查询到数据

or  或者,表示只要满足其中的一个条件就查询出来 

between and 在什么,什么之间 

in  在列表中的数据都查询出来

< any 小于最大的 
> any 大于最小的

> all 大于最大的
< all 小于最小的

--% 任意长度的任意字符串 
--小% 表示的是 以“小” 字开头的字符串都查询出来 
-- _ 表示的是一个长度的任意字符串

使用distinct 关键,可以将查询结果集中的重复数据给过滤掉 

order by 排序的关键字 ,要按照那一列来进行排序,就将那一列的列名跟在后面 
其中升序的关键字是 asc 默认可以省略,降序是 desc 

as 给列起别名,可以省略

lower 函数,将大写字符转换小写 
select lower('ABCDE') FROM dual; 
upper 将小写转大写 
select upper('abcde') from dual; 

concat 用来连接两个字符串  
select concat('abc' , '1234') from dual; 

--ltrim 去掉字符串左边的空格    left
select ltrim('    abcde') from dual; 
select rtrim('    abcde   ') from dual; 
select trim('    abcde   ') from dual; 

abs取绝对值的函数 

select 3.14 from dual  ;

--向下取整
select floor(3.14) from dual  ;

--向上取整
select ceil(3.14) from dual; 


--查看数据库系统当前时间 
select sysdate from dual; 

--添加或减去月份 
select add_months(sysdate ,-4) from dual; 

--last_day求某个月份的最后一天 
select  last_day(add_months(sysdate,4)) from dual; 

--to_char 将时间转换为指定格式的字符串 
select to_char(sysdate,'yyyy-mm-dd dy hh:mi:ss') from dual; 
--强字符串转换为时间 
select to_date('2017-2-14' , 'yyyy-mm-dd') from dual; 
    

select e_salary  from emp 
order by decode(e_salary,null,
(select avg(e_salary) from emp),e_salary) ;


select 'abc' || 123 || 4566 from dual; 
select concat('abc',123) from dual; 


select e_salary from emp ; 

--max 求某一列中的最大值   min求最小值
select max(e_salary) from emp ; 
select min(e_salary) from emp ; 
--sum 求和函数 
select sum(e_salary) from emp ; 
132245
--avg  求平均值函数 
select avg(e_salary) from emp ;
--count 统计有效数据的数量 
select count(e_salary) from emp ; 
--count(*) 统计这个表有多少行数据
select count(*) from emp ; 


select * from emp order by deptno ;  

--分组 使用 group by 关键字 

--order by 排序语句,永远在sql语句的结尾 
--分组统计每个部分下的人数,sql语句如下 
select 
   emp.deptno ,count(*)
   from emp group by deptno order by deptno ; 

--只统计部门人数多于一人的部门 。

select 
   emp.deptno ,count(*)
   from emp 
   group by deptno
   having count(*) > 1 
   order by deptno ; 

--having 关键字是对分组之后的数据进行二次过滤的。

--where 后面不能跟聚合函数列 

--当查询中出现了group by的时候,select 显示的列,
--要么是group by 分组列,要么是聚合函数列 

select tname,decode(tname,'小花','本科','中专') from s7
order by tname ; 

--查询job,用decode函数来进行替换 
select job,decode(job,'OPERATION','op','vp_ceo') from t1 ; 

--接下来按照decode函数这一列来进行分组 
select decode(job,'OPERATION','op','vp_ceo') ,count(*)
 from t1 group by  decode(job,'OPERATION','op','vp_ceo') ;


select job,count(*) from t1 group by job ; 

--decode函数第二种用法 ,动态排序 

select * from dept order by d_name desc ; 

--要求 销售部拍第一位 
select * from dept 
order by decode(d_name,'产险系统开发部',1,'销售部',2,3)

--decode函数第三种用法 
--行转列 
select * from sales ; 

select s_years ,
max(decode(s_months , '1季度',s_money)) as 一季度 ,
min(decode(s_months , '2季度',s_money)) as 二季度,
sum(decode(s_months , '3季度',s_money)) as 三季度,
avg(decode(s_months , '4季度',s_money)) as 四季度
from sales group by s_years   ;


select deptno from emp order by deptno ; 
select * from dept order by d_id ; 

--多表中查询数据 ,from后面跟上多个表名
--如果需要从多个表中查询出来关联数据,需要多个表之间有相同意义的字段
--并且这个字段的数据类型也要相同

select emp.*,dept.d_name,dept.d_loc from emp ,dept
where deptno = d_id ;  

--在emp表中存在的部门编号deptno  ,同时也在dept表中存在d_id 的数据,才查询出来
-- 这种连接我们称之为 内连接 


--左外连接和右外连接中,基表的内容会全部显示 

--查询所有部门下的员工信息  ,那么我们是以 部门表为基表

--左外连接实现  dept表是基表 ,左外连接以左边的表为基表 
select * from dept left join emp on dept.d_id = emp.deptno
order by dept.d_id ;

--还可以用 (+) 来实现左外,右外连接 

select * from dept,emp where emp.deptno = dept.d_id (+) ;

--用左外连接实现的sql,也可以用右外连接来改变,查询结果是一样的 
--右外连接以右边的表为基表 
select dept.*,emp.* from emp right join dept on dept.d_id = emp.deptno ;

--左外连接 匹配的数据 是 15 条  不匹配的数据 3 条 
--右外连接 匹配的数据 是 15 条   不匹配的数据 2 条 

--全外连接
select * from dept full join emp on dept.d_id = emp.deptno ;

© 著作权归作者所有

共有 人打赏支持
m243043962
粉丝 0
博文 69
码字总数 34357
作品 0
黄冈
程序员
Oracle笔记 目录索引

Oracle笔记 一、oracle的安装、sqlplus的使用 Oracle笔记 二、常用dba命令行 Oracle笔记 三、function 、selectOracle笔记 四、增删改、事务 Oracle笔记 五、创建表、约束、视图、索引、序列...

ibm_hoojo ⋅ 2011/05/03 ⋅ 0

如何学好oracle课程

oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。 ...

slence ⋅ 2011/09/03 ⋅ 0

Oracle SQL的执行(一)

一、SGA--共享池 共享池是oracle缓存程序数据的地方.执行过的每一条sql语句在共享池中都存有解析后的内容.这个部分称作库高速缓存.在oracle解析每条sql之前,先检查库高速缓存,如果存在,就使用...

_源代码_ ⋅ 2012/09/24 ⋅ 0

java 获取指定目录下的所有文件

java ,如何获取指定目录下的所有文件呢? 看代码: 说明:上述方法采用了递归,所以包含子目录下的子目录中的文件。。。 测试代码: 输出结果: d:Tempaadividedmergedoracle学习笔记.doc ...

zh119893 ⋅ 2014/05/10 ⋅ 0

怎样成长为一个真正的Oracle DBA (转载)

Oracle分两大块,一块是开发,一块是管理。 开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比...

y862318 ⋅ 2014/05/14 ⋅ 0

【转】Oracle的入门心得

oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。 ...

段成诚 ⋅ 2011/08/22 ⋅ 0

十分钟读懂python的“数据库”语言

JOIN可以用或执行。默认情况下, 将在其索引中加入DataFrame。每个方法都有参数,允许您指定要执行的联接类型(LEFT,RIGHT,INNER,FULL)或要联接的列(列名称或索引)。 假设我们有两个与...

frbevrqbn4l ⋅ 2017/11/09 ⋅ 0

Linux Shell学习之基础篇(不适合学习,仅为本人笔记)

在学习Linux和OpenStack过程中,感觉不管是大规模部署部署还是运维,Shell脚本都已经是标配,所以学好脚本很有必要。 以下仅为Linux Shell的一些基础笔记,这里作为笔记记下。 ============...

yishuizhao ⋅ 2015/06/28 ⋅ 0

Oracle - 数据库的实例、表空间、用户、表之间关系

一直以来都没将Oracle数据库,实例,表空间,用户,表之间的关系搞清楚,虽然工作了有些时间,在工作中也用到Oracle开发,但却忙于项目没顾得上,今天抽空简单整理了下,主要是根据自己的理解...

Sheamus ⋅ 2015/04/22 ⋅ 2

ORACLE学习笔记(二)​

DB Administration Tools Oracle Universal Installer(OUI) :OUI是用来安装、升级和删除Oracle软件。 Oracle Database Configuration Assistance(DBCA) :DBCA是一个图形界面的程序,可...

coolio ⋅ 2014/10/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部