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常用函数等的更多相关文章

  1. PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)

    PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr;  //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...

  2. Oracle常用函数(SQL语句)

    使用sql函数,您可以在一个select语句的查询当中,直接计算数据库资料的平均值.总数.最小值.最大值.总和.标准差.变异数等统计.使用recordset对象时,也可使用这些sql函数. sql函数 ...

  3. SQL Server 数据库子查询基本语法

    一.SQL子查询语句 1.单行子查询        select ename,deptno,sal        from emp        where deptno=(select deptno ...

  4. sql数据库基础知识整理,常用函数及常用语法

    1常用数据库聚合函数max()min()sum()avg()count() 2字符串处理函数len() 与 datalength()  区别:len是返回字符长度  datalength是返回字节长度 ...

  5. swift基础语法(四) 函数、闭包(Closures)

    //函数基本定义 func 函数名(参数名:参数类型=默认值) ->返回值类型{代码块} //无参无返回值函数 func hsmin(){ } //单参无返回值函数 func prin(st:S ...

  6. Kotlin基础语法:变量、函数、类、枚举、控制流

    一切都需要从基础学起! 前言: 在Kotlin语言中,没有分号的概念了,也就是每一行代码,都不在需要用分号结束了 点击查看代码 定义 常量:val --相当于java当中的final 变量:var 关 ...

  7. python2学习------基础语法5(常用容器以及相关操作)

    1.list(列表) #生成数据list a=[x for x in range(10)]; #print a; #遍历list for i in a: pass; #print i; #追加元素 a ...

  8. css基础语法二(常用文本与背景属性)

    [CSS常用文本属性] 1. 字体.字号类:① font-weight: 字体粗细. bold-加粗.normal-正常.lighter-细体 也可以使用100-900数值,400表示normal,7 ...

  9. HTML 网页开发、CSS 基础语法——十一. CSS常用样式

    文字三属性 1.颜色color 2.字体font-family ① 常用字体 常用的中文字体: 宋体  SimSum 微软雅黑 Microsoft YaHei 常用的英文字体: 如果不设置字体属性,不 ...

随机推荐

  1. 关于领域驱动架构DDD思考

    一个高大上的概念领域驱动架构就这样展开. 开发了多年的软件,一直以来的习惯是拿到产品的需求 对照UI的图纸然后就干干干 碰到问题大不了找人沟通再次定义问题,最后交付.其实最后也能把一件事情完成 但如果 ...

  2. Linux 时间同步 04 ntp时间同步

    Linux 时间同步 04 ntp时间同步 目录 Linux 时间同步 04 ntp时间同步 安装ntp 配置与外部时间服务器进行时间同步的客户端主机 配置其他客户端与以上客户端主机时间同步 验证查看 ...

  3. .NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ Masstransit 介绍)--学习笔记

    2.6.6 RabbitMQ -- Masstransit 介绍 Masstransit 是什么 Quickstart 消息 Message Masstransit 是什么 Masstransit 是 ...

  4. Python+MySQL随机试卷及答案生成程序

    一.背景 本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样. 二.准备工作 1.安装Python3 下载地址:https://www.python.org/ ...

  5. MATLAB OPC错误OPCenum service is not operating correctly解决办法

    错误截图: 出错原因:C:\Windows\SysWOW64下没有OpcEnum.exe等文件,opc需要这些文件才能正常运行.有些系统内置了,有些系统没有. 解决方法:去opc官网https://o ...

  6. 编译安装 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 ) 编译 ...

  7. 【Linux】rsync错误解析

    rsync: Failed to exec ssh: No such file or directory (2) rsync error: error in IPC code (code 14) at ...

  8. SDUST数据结构 - chap2 线性表

    一.判断题: 二.选择题: 三.编程题: 7-1 jmu-ds-顺序表区间元素删除 : 输入样例: 10 5 1 9 10 67 12 8 33 6 2 3 10 输出样例: 1 67 12 33 2 ...

  9. kafka安装流程

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 安装前的环境准备 1.由于Kafka是用Scala语言开发的,运行在JVM上,在安装之前需要先安装JDK(省略) 2.kafka依赖zookee ...

  10. Java优先队列PriorityQueue的各种打开方式以及一些你不知道的细节

    目录 Java优先队列PriorityQueue的各种打开方式以及一些你不知道的细节 优先队列的默认用法-从小到大排序 对String类用优先队列从大到小排序 通过自定义比较器对自定义的类进行从小到大 ...