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. 实现连续登录X天送红包这个连续登录X天算法

    实现用户只允许登录系统1次(1天无论登录N次算一次) //timeStamp%864000计算结果为当前时间在一天当中过了多少秒 //当天0点时间戳 long time=timeStamp-timeS ...

  2. win8.1默认输入法设置

    1.右击左下角,选择控制面板 2.选择更改输入法 3.选择高级设置 4.在替代默认输入法,从下拉列表中选择自己已安装的输入法,比如搜狗拼音输入法,qq拼音输入法等其他输入法

  3. 安装Linux Deploy和Termux之后,再安装ftp服务软件都是多余的!

    之前以为Debian 9 running via Linux Deploy或者Termux在安卓系统部署之后,一定要安装vsftpd或者pure-ftpd这些专门的ftp服务器软件,才能提供ftp服务 ...

  4. WPF学习笔记01_XAML之简介

    简介 XAML (发音"zammel" 咋么儿),用于实例化.NET对象的标记语言,主要用于构造WPF的用户界面.类似html标记语言. 通过XAML,程序员可以用代码的方式对界面 ...

  5. 上班从换一张桌面壁纸开始——开源小工具Bing每日壁纸

    发布一个自用的开源小软件,Bing每日壁纸,使用c# winform开发.该小软件可以自动获取Bing的精美图片设置为壁纸,并且支持随机切换历史壁纸,查看壁纸故事. 功能特性 自动获取Bing最新图片 ...

  6. 图像质量评估论文 | Deep-IQA | IEEETIP2018

    主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, gr ...

  7. MyBatis初级实战之一:Spring Boot集成

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. LeetCode237 删除链表中的节点

    请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 - ...

  9. docker 镜像导入load、导出save以及重命名

    docker 导入导出操作 save 保存(导出)镜像 # 把镜像打包成 .tar # -o 要保存路径.tar # > 要保存路径.tar # docker save 镜像id > /存 ...

  10. (十)Python装饰器

    装饰器:本质就是函数,功能是为其他函数添加附加功能. 两个原则: 1.不修改被修饰函数的源代码 2.不修改被修饰函数的调用方式 一个栗子 def test(): res = 0 for i in ra ...