初学oracle笔记-1

select * from tab;

select * from complaint1;

/*
数据库——数据库实例——表空间(逻辑单位)——数据文件(物理单位)
地球 ——一个国家 ——省份(逻辑单位) ——山川河流(物理单位)

通常情况下,oracle数据库只会有一个实例ORCL,

新建一个项目:
创建一个表空间,创建用户,用户去创建表

oracle是多用户的,mysql是多数据库

1,遵循SQL标准
2,不同厂商,不同的数据库产品,但是有自己的方言
3,使用自己的方言,也能完成相同的功能
4,oracle安全级别高,MYSQL开源免费

/
/

基本查询:
SQL:结构化查询语言
SQL的分类以及每类常见的操作符都有什么
四类:
DDL:数据定义语音 create alter drop
DML:数据操纵语音 insert update delete
DCL:数据控制语音 安全 授权 grant revoke
DQL:数据查询语音 select from 子句 where 子句
查询语句的结构:
select {列名}{*} from 表名 {where 条件} {group by 分组条件} {having 过滤} {order by 排序}

/
/

dual: oracle中的虚表,伪表,主要用来补齐语法结构

*/

 select 1+1; /*oracle中报错,在mysql中可以*/

查询一下看看
在这里插入图片描述
条件查询:{where后面的写法}
关系运算符:> >= = < <= != <>
逻辑预算符:and or not
其他运算符:

  • like 模糊查询
  • in(set) 在某个集合内
  • between…and… 在某个区间内
  • is null 判断为空
  • is not null 判断不为空

模糊查询:like

  • % 匹配多个字符
  • _ 匹配单个字符:select * from emp where ename like ‘__o%’;第三个字母是o的

如果有特殊字符,需要使用escape转义
select * from emp where ename like ‘%#%%’ escape ‘#’;

排序:order by

  • 升序 asc ascend
  • 降序 desc descend
    select * from emp order by comm desc nulls last;(将空值放到后面)
    排序注意null问题:nulls frist | last
    同时排序多列,用逗号隔开

函数

  • 单行函数 对某一行中的某个值进行处理
    1,数值函数 ceil()取整;floor()向下取整;
    round(x,y)四舍五入,x为原值,y为取的位数,小数点往右为正,小数点往左为负;
    trunc(x,y) 截断,就的将x的y位后的截掉,位数原则同上
    mod(x,y) 求余,同x%y
    2,字符函数
    select substr(‘abcdefg’,0,3) from dual;
    在这里插入图片描述
    注意:起始索引不管是写0,1,都是从第一个字符开始截取
    获取字符串长度length()
    去除字符左右两边的空格trim()

    3,日期函数
    select sysdate from dual;

    4,转换函数
    字符转数值 to_number(str) 很鸡肋
    数值转字符 select to_char(sal,’$9,999,99’) from 表名;
    日期转字符 to_char(sysdate,‘yyyy-mm-dd hh:mi:ss’)
    字符转日期 to_date(‘2019-04-24’,‘yyy-mm-dd’)
    查询某年到某年之间的,between to_date(‘1981’,‘yyyy’) and to_date(‘1999’,‘yyyy’)
    5,通用函数
    nvl(x,y),如果x = null 就返回y
    nvl2(x,y,z),如果x = null,返回z,否则返回y
    nullif(x,y) 如果x=y,返回null,否则返回1
    coalesce 返回第一个不为null的函数

    • 多行函数 对某一列的所有行进行处理max,min,count,sum,avg

条件表达式:

   mysql和Oracle通用写法
    case 字段:
    	when 值1 then 值
    	when 值2 then 值
    	else
    		默认值
    	end
select
	case ename
		when 'smith' then '111'
		when 'allen' then '222'
		else
			'000'
		end
from 表名

Oracle特有的写法
decode(字段 , if1 , then1 , if2 , then 2 , else1 )

分组表达式,group by

SQL的执行顺序:from…where …group by … having … select … order by …
where 和having区别:

  • where后面不能接聚合函数,可以接单行函数
  • having是在group by之后执行,可以接聚合函数
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值