oracle学习笔记第一天
--oracle学习的第一天
--一、几个基础的关键字
 
1、select
select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条语句的最后执行
select * from emp;
相关:1)列可起别名,有三种方式:<1>直接列名后下个单词;
select job j from emp;
<2>列名后双引号添加别名
select job "j" from emp;
<3>列名后加as,再加有有双引号的别名
select job as "j" from emp;
select job as "j" from emp;
2)distinct关键字(有区别的)  去重,可有多列(多列为整体,都一样时才去重)
select distinct job from emp;
select distinct job,comm from emp;
 
2、from关键字     检索表,紧跟后面可直接写表名
select * from emp e; 
 
3、where关键字     过滤行记录  
用法:
  1).=,!=,<>,<,>,<=,>=,any,some,all
select * from emp where sal>2000;
select * from emp where sal = any(5000,1100);
  2). is null,is not null
select * from emp where comm is not null;
  3).between x and y
  select * from emp where sal between 2000 and 4000;
4).and 、 or 、 not
select * from emp where deptno = 10 and sal>2000;
select * from emp where deptno = 10 or sal>2000;
select * from emp where comm is not null;
  5).in(list),not in(list)注:定值并非定范围
select * from emp where sal in(1100,5000);
  6).exists(子查询)、not exists(子查询)
  select * from emp where exists (select deptno from emp where  deptno = 20 and sal >2000 );
  7).like模糊查询(用单引号)
    “%”:匹配零个或若干个字符
    “_”:匹配一个字符
    在模糊查询中,如果查询的数据中有“%”,“_”时,可以使用escape自定义转
   select * from emp where ename like '%A%' ;  
   select * from emp where ename like '_A%';    
   
4、order by关键字  排序
注:asc 升序(可省略),desc 降序
    可加多列,有优先级,第一列先排序,后第一列值相同,按第二列排序,类推
   
5、集合操作:
1).union 关键字   并集(去重)
  select ename from emp where sal > 2000 union select ename from emp where deptno=10
2).union all 关键字   全集(不去重)
   select sal from emp where sal > 2000 union all select sal from emp where sal < 5000 
3).intersect 关键字  交集
   select sal from emp where sal > 2000 intersect select sal from emp where sal < 5000 
4).minus 关键字   差集
   select sal from emp where sal > 2000 minus select sal from emp where sal < 5000 
注:1)能用and,or,解决的不要用集合操作,效率低
    2)两集合选择的列建议保持一致,不一致有什么意义呢
   
6、group by关键字      分组
        注: 1.分组之后,不能将除分组字段之外的字段放在select后面
            2.group by 后面可以跟多个字段,则这多个字段值都相同时,才分为一组
            3.分组之后,可以使用组函数对每个组进行数据处理
select deptno from emp group by deptno,comm;
 
7、having关键字  分组后过滤行记录
      注:与where基本一样      
select deptno from emp group by deptno having deptno =10;   
 
二、函数
单行函数
dual 虚表,一般用于测试
 
1.字符函数
  1)concat(s1,s2) 拼接a,b两个字符串数据
  select concat('aa','ccc') from dual;
  2)initcap(s) 将每个单词x首字母大写
  select initcap ('li jia sheng') from emp ;
  3)lower(s) / upper(s)  将字符串小写/将字符串大写
   select lower ('LI JIA SHENG') from emp ;
   select upper ('li jia sheng') from emp ;
  4)length(s) 获取字符串的长度
   select length('aaaccc') from dual;
  5)lpad(s,len,c) /rpad() 将s字符串左边填充至len长度,用c字符填充
  select lpad('abcde',10,'-') from dual;
  select rpad('abcde',10,'-') from dual;
  6)ltrim(s,c)  / rtrim()  去除s字符串左边的c字符,如果c不传参,默认去除空格
  select ltrim('abcde','a') from  dual;
  7)replace(s,s1,s2)   将a中的b字符串替换为c
   select replace('a bcde','a','c') from dual;
  8)substr(s,index,len) 将s的字符串,从index位置开始截取,截len个长度
   select substr('abcde',2,2) from dual;
  9)trim( c from s) 将b左右两边的a字符去除掉
   select trim('a' from 'aaddddaa') from dual;
 
2.数字函数
  abs() 求取绝对值
  select abs(-3) from dual;
  ceil() 向上取整
  select ceil(5.2) from dual;
  floor() 向下取整
    select floor(5.2) from dual;
  round() 四舍五入
    select round(5.2) from dual;
  power(x,y)  x的y次幂
    select power(5,2) from dual;
 
3.日期函数
  sysdate 返回系统当前日期,注意没有括号
  select sysdate from dual;
  add_months(d1,d2) 在d1日期上,增加d2个月份
  select add_months(sysdate,4) from dual;
  months_between(d1,d2) 返回d1和d2之间的相隔月份
  select months_between(sysdate,hiredate) from emp;
  last_day(d) 返回d日期所在月份最后一天的日期
  select last_day(sysdate) from dual;
  next_day(d,X) 返回下一个星期X的日期
  select next_day(sysdate,'星期日') from dual;
 
4.转换函数
  to_char()  将数字、或日期转化为字符串
  select to_char(sysdate,'yyyy-mm-dd hh-mi-ss') from dual ;
  select to_char(1234,'9,9,9,9') from dual;
  to_date() 将字符串转化为日期
  select to_date('1996/06/25','yyyy-mm-dd ')  from dual;
  to_number()  将字符串转化为数字
  select to_number('23333') from dual;
  select to_number(64,'XX') from dual;
5.其他函数
  nvl(x,y) 如果x为null,则显示为y,x和y的类型保持一致
  select nvl(comm,0) from emp;
  sys_guid() 生成一个的32位随机字符串
  select sys_guid() from emp;
  decode()  条件取值,类同java的switch
  select decode(sal,1000,'****',5000,'######','!!!!!') from emp;
  case when then else end  条件取值,类同java的if-else if-else
  select  case when sal<1000 then '@@@@@@@'
                  when sal<5000 then '^^^^^^^'
                    else '!!!!!'  end from emp;
 
组函数
 
组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果
 
avg()求平均值,只能对数字类型进行处理,不处理空字段
select avg(sal) from emp;
sum()求和,只能对数字类型进行处理
select sum(sal) from emp;
max() 求最大值,对任何类型生效
select max(sal) from emp;
min() 求最小值,对任何类型生效
select min(sal) from emp;
 
三、sql顺序
sql顺序分为两类:
 
1.sql的书写顺序
select   from    where    group by   having   order by [asc/desc]
 
2.sql的执行顺序
from   where   group by   having    select   order by [asc/desc]
 

oracle学习笔记第一天的更多相关文章

  1. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. ActionBarSherlock学习笔记 第一篇——部署

    ActionBarSherlock学习笔记 第一篇--部署          ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...

  4. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

  5. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  6. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  7. oracle学习笔记(一)用户管理

    --oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...

  8. Django学习笔记---第一天

    Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...

  9. 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子

    1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...

随机推荐

  1. Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Order表并添加一些初始数据方便我们查看效果. CREATE TABLE [dbo].[Order ...

  2. 再说C模块的编写(2)

    [前言] 在<再说C模块的编写(1)>中主要总结了Lua调用C函数时,对数组和字符串的操作,而这篇文章将重点总结如何在C函数中保存状态. 什么叫做在C函数中保存状态?比如你现在使用Lua调 ...

  3. setTimeout 第三个参数秒懂

    好吧,假设你们都是从 ES6 里 promise 发现 setTimeout 还有第三个参数的,下面讲讲到底是干嘛的 setTimeout 第三个及之后的参数作用:定时器启动时候,第三个以后的参数是作 ...

  4. CSS之分组选择器和嵌套选择器

    分组选择器, 将一个样式应用于多个类,或者标签啥的 每个选择器用逗号隔开 <!DOCTYPE html> <html> <head> <meta charse ...

  5. mysql根据分组和条件查询以后如何统计记录的条数

    1.子查询,查询出的数据随便起一个别名,然后根据分组和条件查询出的数据,作为一个具有一列的一个表,然后外面的查询查询这个数据表的这一列的总数,即可. SELECT COUNT( * ) FROM ( ...

  6. golang 如何将imagemagick 和golang 打包到docker 环境中

    公司最近开发了个项目,用到了imagemagick 和golang 环境,在我本地机上开发妥妥的,结果准备部署到线上环境的时候,出现了大坑,尝试了无数次后,最后还是解决了,官方说有问题也不说清楚点,一 ...

  7. 图片纯前端JS压缩的实现

    一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅 ...

  8. Selenium切换窗口,警告框处理,调用JavaScript代码

    多窗口切换 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作. WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切 ...

  9. fastadmin模态框(弹出框)

    用法: 在html页面新建一个按钮用来触发事件 <a href="javascript:;" class="btn btn-success btn-add &quo ...

  10. LeetCode 929.Unique Email Addresses

    Description Every email consists of a local name and a domain name, separated by the @ sign. For exa ...