SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等
SQL组成:
DML(数据操作语言)
插入、删除和修改数据库中的数据
INSERT、UPDATE、DELETE等。
DCL(数据控制语言)
用来控制存取许可、存取权限等。
GRANT、REMOKE等。
DQL(数据查询语言)
用来查询数据库中的数据。
SELECT等。
DDL(数据定义语言)
用来建立数据库、数据库对象和定义表的列。
CREATE TABLE、DROP TABLE等。
查询基础语法
语法:
SELECT <列名>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]] ----默认为ASC
记录筛选 where 子句
where子句:
关系运算 >、<、=、!、<>、>=、<=
逻辑运算 not 、 and 、 or
IS NULL(是否为空)
BETWEEN (在某两个值之间)
IN(一系列值中)
LIKE(相似值的比较)
EXITS(是否存在符合条件的数据)
UNIQUE(是否唯一)
ALL/ANY(一组数据的所有/其中的任何一个)
记录筛选 where 子句 实例练习
--查询里面不是CLERK的人员信息
select * from emp where job<>'CLERK';
--查询所有的销售人员或者办事人员
select * from emp where job='SALESMAN'or job='CLERK';
--查询所有的销售人员或者办事人员并且工资大于1250
select * from emp where (job='SALESMAN'or job='CLERK') and sal>1250;
--查询奖金为空的所有人信息
select * from emp where comm is NUll or comm=0;
--查询所有办事人员,销售人员,管理者
select * from emp where job in('CLERK','SALESMAN','MANAGER');
--查询姓名之中 姓名以M开头的所有人
-- % 匹配符 ,匹配0个或多个任意字符
select * from emp where ename like 'M%';
--查询姓名以S结尾的
select * from emp where ename like '%S';
--查询姓名之中包含A的
select * from emp where ename like '%A%';
-- EXISTS 是否存在满足条件的语句
-- 查询
select * from emp WHERE EXISTS (select * from emp where sal>4000);
模糊查询中:
% 代表任意0至多个字符
_ 代表任意一个字符
实例练习
该实例是在表scott中操作。
实例练习:
--查询里面不是CLERK的人员信息
select * from emp where job<>'CLERK';
--查询所有的销售人员或者办事人员
select * from emp where job='SALESMAN'or job='CLERK';
--查询所有的销售人员或者办事人员并且工资大于1250
select * from emp where (job='SALESMAN'or job='CLERK') and sal>1250;
--查询奖金为空的所有人信息
select * from emp where comm is NUll or comm=0;
--查询所有办事人员,销售人员,管理者
select * from emp where job in('CLERK','SALESMAN','MANAGER');
--查询姓名之中 姓名以M开头的所有人
-- % 匹配符 ,匹配0个或多个任意字符
select * from emp where ename like 'M%';
--查询姓名以S结尾的
select * from emp where ename like '%S';
--查询姓名之中包含A的
select * from emp where ename like '%A%';
-- EXISTS 是否存在满足条件的语句
-- 查询
select * from emp WHERE EXISTS (select * from emp where sal>4000);
Select语句中的列表达式
– 列表达式
– 开始:case 结束:end 当…条件:when 就then 否则else
– 字符串拼接
select ename,’基本工资:’||sal from emp
– 字段别名
select ename name,’基本工资:’||sal s from emp
实例练习:
select sal,sal+comm from emp
-- 显示员工各项工资明细和各项工资总和
select '基本工资:'||sal sal,',奖金:'||comm comm,
case
when comm is null
then sal
when comm=0
then sal
else sal+comm
end total
from emp
-- 列表达式
-- 开始:case 结束:end 当...条件:when 就then 否则else
-- 显示员工各项工资之和大于2000的雇员信息
select * from emp where
case
when comm is null
then sal
else sal+comm
end >2000
Oracle常用函数
使用函数可以大大提高SELECT语句操作数据库的能力。
Oracle中函数划分为单行函数和多行函数。
单行函数作用于数据库表的某一行并返回一个值。
字符函数 数字函数 日期函数 转换函数 其他函数
多行函数基于数据库表多行进行运算,返回一个值。
Oracle常用函数:
Oracle常用数字函数
数字函数 实例练习题
-- 数字函数
--ROUND 四舍五入的操作
select round(3.1415926,2) from dual
--TRUNC 舍弃指定位置的内容
select trunc(3.6415926,3) from dual
select trunc(255,-2) from dual
--MOD 取模,取余数
select mod(10,3) from dual
Oracle常用日期函数
日期函数 实例练习题
-- 日期函数
--获取当前日期 sysdate 当前系统时间
select ename,sysdate from emp
--得到3天以后的时间
select sysdate+3 from dual
--获取日期的最后一天 , 获取当月最后一天
select last_day(sysdate) from dual
select last_day(hiredate) from emp
select * from emp where last_day(hiredate)='31-12月 80'
-- 下个星期几的日期 next_day
select next_day(sysdate,'星期一') from dual
--求出若各个月以后的日期 add_months
--加减月份
select add_months(sysdate,3) from dual
--months_between 获取两个日期间的间隔月份
select trunc(months_between('1-2月 17', sysdate)) from dual
Oracle常用转换函数
转换函数 实例练习题
-- ORACLE 数据库中的三种数据:NUMBER,CHAR,DATE
--转换函数
--TO_CHAR 将日期或者是数字变为字符串显示
select sysdate||'' from dual
select to_char(sysdate,'yyyy-mm-dd') from dual
select to_char(123456789,'999,999,999,999') from dual
--TO_DATE 将字符串变为DATE数据显示
select to_char(to_date('1999-1-1 20:20:20','yyyy-mm-dd hh24:mi:ss'),'yy-mm-dd hh24:mi:ss') from dual
--TO_NUMBER 将字符串变为数字显示
select to_number('123')+123 from dual
select '123'+'123' from dual
Oracle练习题
--找出佣金高于薪金的60%的员工。
select * from emp where sal>(sal+comm)*0.6
--找出各月倒数第3天受雇的所有员工。
select ename,last_day(hiredate)-3 from emp
--找出早于12年前受雇的员工。
select ename,add_months(sysdate,-12*12) from emp
--显示正好为5个字符的员工的姓名。
select ename from emp where ename like'_____'
select ename from emp where length(ename)=5
-- 显示满10年服务年限的员工的姓名和受雇日期。
select ename,hiredate from emp where months_between(sysdate,hiredate)/12 >10 ;
--显示在一个月为30天的情况所有员工的日薪金,忽略余数。
select last_day(sysdate) from emp
select sal/30 sal from emp where last_day(hiredate)
select trunc(sal/30) sal from emp where to_char(last_day(hiredate),'dd')=30
--显示所有员工姓名、加入公司的年份和月份,按受雇日期所有月排序,若月份相同则将最早年份的员工排在最前面。
select ename,to_char(hiredate,'yyyy-mm')from emp
order by to_char(hiredate,'mm') ASC ,to_char(hiredate,'mm') DESC
--找出在(任何年份的)2月受聘的所有员工。
select ename, hiredate from emp where to_number(to_char(hiredate,'mm'))=2
--对于每个员工,显示其加入公司的天数。
select trunc(to_number(sysdate-hiredate)) from emp
--以年月日的方式显示所有员工的服务年限。
select hiredate,trunc((sysdate-hiredate)/365) 年,
trunc(mod((sysdate-hiredate),365)/30) 月,
trunc( mod (mod((sysdate-hiredate),365),30) ) 日
from emp;
SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等的更多相关文章
- PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)
PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr; //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...
- Oracle常用函数(SQL语句)
使用sql函数,您可以在一个select语句的查询当中,直接计算数据库资料的平均值.总数.最小值.最大值.总和.标准差.变异数等统计.使用recordset对象时,也可使用这些sql函数. sql函数 ...
- SQL Server 数据库子查询基本语法
一.SQL子查询语句 1.单行子查询 select ename,deptno,sal from emp where deptno=(select deptno ...
- sql数据库基础知识整理,常用函数及常用语法
1常用数据库聚合函数max()min()sum()avg()count() 2字符串处理函数len() 与 datalength() 区别:len是返回字符长度 datalength是返回字节长度 ...
- swift基础语法(四) 函数、闭包(Closures)
//函数基本定义 func 函数名(参数名:参数类型=默认值) ->返回值类型{代码块} //无参无返回值函数 func hsmin(){ } //单参无返回值函数 func prin(st:S ...
- Kotlin基础语法:变量、函数、类、枚举、控制流
一切都需要从基础学起! 前言: 在Kotlin语言中,没有分号的概念了,也就是每一行代码,都不在需要用分号结束了 点击查看代码 定义 常量:val --相当于java当中的final 变量:var 关 ...
- python2学习------基础语法5(常用容器以及相关操作)
1.list(列表) #生成数据list a=[x for x in range(10)]; #print a; #遍历list for i in a: pass; #print i; #追加元素 a ...
- css基础语法二(常用文本与背景属性)
[CSS常用文本属性] 1. 字体.字号类:① font-weight: 字体粗细. bold-加粗.normal-正常.lighter-细体 也可以使用100-900数值,400表示normal,7 ...
- HTML 网页开发、CSS 基础语法——十一. CSS常用样式
文字三属性 1.颜色color 2.字体font-family ① 常用字体 常用的中文字体: 宋体 SimSum 微软雅黑 Microsoft YaHei 常用的英文字体: 如果不设置字体属性,不 ...
随机推荐
- 关于领域驱动架构DDD思考
一个高大上的概念领域驱动架构就这样展开. 开发了多年的软件,一直以来的习惯是拿到产品的需求 对照UI的图纸然后就干干干 碰到问题大不了找人沟通再次定义问题,最后交付.其实最后也能把一件事情完成 但如果 ...
- Linux 时间同步 04 ntp时间同步
Linux 时间同步 04 ntp时间同步 目录 Linux 时间同步 04 ntp时间同步 安装ntp 配置与外部时间服务器进行时间同步的客户端主机 配置其他客户端与以上客户端主机时间同步 验证查看 ...
- .NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ Masstransit 介绍)--学习笔记
2.6.6 RabbitMQ -- Masstransit 介绍 Masstransit 是什么 Quickstart 消息 Message Masstransit 是什么 Masstransit 是 ...
- Python+MySQL随机试卷及答案生成程序
一.背景 本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样. 二.准备工作 1.安装Python3 下载地址:https://www.python.org/ ...
- MATLAB OPC错误OPCenum service is not operating correctly解决办法
错误截图: 出错原因:C:\Windows\SysWOW64下没有OpcEnum.exe等文件,opc需要这些文件才能正常运行.有些系统内置了,有些系统没有. 解决方法:去opc官网https://o ...
- 编译安装 nginx -1.14.2
编译安装 nginx -1.14.2 1 ) 下载nginx-1.14.2 源码包: wget http://nginx.org/download/nginx-1.14.2.tar.gz 2 ) 编译 ...
- 【Linux】rsync错误解析
rsync: Failed to exec ssh: No such file or directory (2) rsync error: error in IPC code (code 14) at ...
- SDUST数据结构 - chap2 线性表
一.判断题: 二.选择题: 三.编程题: 7-1 jmu-ds-顺序表区间元素删除 : 输入样例: 10 5 1 9 10 67 12 8 33 6 2 3 10 输出样例: 1 67 12 33 2 ...
- kafka安装流程
本文是作者原创,版权归作者所有.若要转载,请注明出处. 安装前的环境准备 1.由于Kafka是用Scala语言开发的,运行在JVM上,在安装之前需要先安装JDK(省略) 2.kafka依赖zookee ...
- Java优先队列PriorityQueue的各种打开方式以及一些你不知道的细节
目录 Java优先队列PriorityQueue的各种打开方式以及一些你不知道的细节 优先队列的默认用法-从小到大排序 对String类用优先队列从大到小排序 通过自定义比较器对自定义的类进行从小到大 ...