oracle基础

基本查询


sqI简介

结构化查询语言(Structured Query Language)简称SQL(发音:/'εs kju: 'εl/ “S-Q-L”),结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

       DML(数据库操作语言):其语句包括动词INSERTUPDATEDELETE。它们分别用于添加修改删除表中的行。也称为动作查询语言。
       DDL(数据库定义语言):其语句包括动词CREATEDROP。在数据库中创建新表或删除表(CREAT TABLE或DROP TABLE);为表加入索引等。DDL 包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
       DCL(数据库控制语言):它的语句通过GRANTREVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

Select语句的语法格式和示例

在这里插入图片描述

1. 查询语法
Select   *   |   列名   from   表名

在这里插入图片描述
在这里插入图片描述

2. 别名用法
在查询的结果列中可以使用别名

Select    列名  别名,列名  别名,   ······   from   表名;
别名中,有没有双引号的区别就在于别名中有没有特殊的符号或者关键字。
在这里插入图片描述

3. 消除重复的数据
Select   distinct   *   |   列名,  ······  from   表名;

在这里插入图片描述
使用distinct 可以消除重复的行,如果查询多列的必须保证多列都重复才能去掉重复

4. 查询中四则运算
查询每个雇员的年薪

select   name,   sal*12   from   emp;

select   name,   sal*12   income   from   emp;
在这里插入图片描述
sql中支持四则运算  +  -  *  /

什么是空值?

空值是无效的、未指定的、未知的或不可预知的值
空值不是空格或者0
包含null的表达式都为null
空值永远不等于空值

连接符||

字符串连接查询
mysql中实现方法:
在这里插入图片描述
oracle中实现方法:
在这里插入图片描述
oracle中字符串的连接使用 II

条件查询和排序


使用where语句对结果进行过滤

在这里插入图片描述


比较运算符

在这里插入图片描述

其他比较运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

where语句示例


1. 非空和空的限制

非空:
列名   is   not   null
在这里插入图片描述
为空:
列名   is   null
在这里插入图片描述

➢查询工资大于1500并且有奖金的员工
在这里插入图片描述
➢查询工资大于1500或者有奖金的员工
在这里插入图片描述
➢查询工资不大于1500和没有奖金的员工
在这里插入图片描述

2. 范围限制

➢查询工资大于1500但是小于3000的员工
在这里插入图片描述
在这里插入图片描述
➢查询出生日期在1981-2-1到1981-6-28的员工
在这里插入图片描述

3. 模糊查询

在常用的站点中经常会有模糊查询,即输入一个关键字,把符合的内容全部的查询出来,在sql中使用LIKE语句完成。
在LIKE中主要使用以下两种通配符:
"%"可以匹配任意长度的内容
"_"可以匹配一个长度的内容

➢查询出所有雇员姓名中第二个字符包含"海"的员工
在这里插入图片描述
在LIKE中如果没有关键字表示查询全部
在这里插入图片描述
➢查询名字带有"王"字的员工
在这里插入图片描述
在oracle 中不等号的用法可以有两种形式"<>“和”!="
➢查询topid不是1011的员工信息
在这里插入图片描述

使用order by对结果排序

asc升序
desc降序

order  by  列名默认的排序规则是升序排列,可以不指定ASC,如果按着降序排列必须指定DESC
如果存在多个排序字段可以用逗号分隔,注意ORDER BY语句要放在sql的最后执行
当排序时有可能存在null时就会产生问题,我们可以用nulls first,nulls last来指定null值显示的位置。
在这里插入图片描述
在这里插入图片描述

单行函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✔ 字符函数

在这里插入图片描述
接收字符输入返回字符或者数值,dual 是伪表

  1. 字符串的连接可以使用concat也可以使用"||",建议使用"||"
    在这里插入图片描述
  2. 字符串的截取,使用substr,第一个参数是源字符串,第二个参数是开始索引,第三个参数长度,开始的索引使用1和0效果相同
    在这里插入图片描述
    在这里插入图片描述
  3. 获取字符串的长度
    在这里插入图片描述
  4. 字符串替换,第一个参数是源字符串,第二个参数被替换的字符串,第三个是替换字符串
    在这里插入图片描述

✔ 数值函数

在这里插入图片描述

✔ 日期函数

➢查询雇员的进入公司的周数
分析:员工进入公司的天数除以7就是进入公司的周数:(sysdate - 入职日期)/7
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
➢获得两个时间段中的月数: MONTHS_BETWEEN()
在这里插入图片描述
➢获得几个月后的日期:ADD_MONTHS()
在这里插入图片描述

✔ 转换函数

在这里插入图片描述

  1. TO_CHAR函数对日期的转换
    在这里插入图片描述日期的格式:
    在这里插入图片描述
  2. TO_CHAR函数对数字的转换
    在这里插入图片描述数字转换的格式:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. to_char():字符串转换函数
    在这里插入图片描述
    在结果中10以下的月前面被补了前导零,可以使用fm去掉前导零
    在这里插入图片描述
    转换成XXXX年XX月XX日
    在这里插入图片描述
  2. TO_NUMBER:数值转换函数
    TO_NUMBER可以把字符串转换成数值
    在这里插入图片描述
  3. TO_DATE:日期转换函数
    TO_DATE可以把字符串的数据转换成日期类型
    在这里插入图片描述

✔ 通用函数

通用函数适用于任何数据类型,同时也适用于空值
常用的通用函数:
在这里插入图片描述

✔ 条件表达式

  1. case表达式:
    在这里插入图片描述
  2. decode函数:
    在这里插入图片描述

多行函数

分组函数作用于一组数据,并对一组数据返回一个值。
多行函数也叫:组函数、分组函数。
组函数会忽略空值。
NVL函数使分组函数无法忽略空值

分组数据:
在这里插入图片描述

常用的多行函数:
在这里插入图片描述

➢查询出部门平均工资不到2000的部门
在这里插入图片描述
在这里插入图片描述

单行子查询

查询每个部门工资最少的员工的信息:
在这里插入图片描述


nvl函数

在这里插入图片描述
NVL(NAME,N) 表示如果NAME不为空就取NAME如果NAME为空就取N
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brrby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值