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. 架构设计哲学【三种方式:支持DevOps的原则】

    三种方式:支持DevOps的原则 2012年8月22日作者Gene Kim 45条评论 这篇文章是杨波老师分享的一篇文章:这几年对他架构影响最深的一篇文章.主要描述是关于DevOps的,但对系统架构同 ...

  2. spring之ApplicationEvent 事件驱动

    什么是ApplicationContext? 它是Spring的核心,Context我们通常解释为上下文环境,但是理解成容器会更好些. ApplicationContext则是应用的容器. Sprin ...

  3. jQuery EasyUI学习二

    1.   课程介绍 1.  Datagrid组件(掌握) 2.  Dialog.form组件(掌握) 3. Layout.Tabs;(掌握) Datagrid组件 2.1.  部署运行pss启动无错 ...

  4. Atcoder abc187 F Close Group(动态规划)

    Atcoder abc187 F Close Group 题目 给出一张n个点,m条边的无向图,问删除任意数量的边后,留下来的最少数量的团的个数(\(n \le 18\) ) 题解 核心:枚举状态+动 ...

  5. lock与synchronized 的区别【网上收集】

    1. 区别 类别 synchronized Lock 存在层次 Java的关键字,在jvm层面上 是一个接口 锁的释放 1.以获取锁的线程执行完同步代码,释放锁 2.线程执行发生异常,jvm会让线程释 ...

  6. Lagom 官方文档之随手记

    引言 Lagom是出品Akka的Lightbend公司推出的一个微服务框架,目前最新版本为1.6.2.Lagom一词出自瑞典语,意为"适量". https://www.lagomf ...

  7. 学习记录——使用PHP实现数据增删查改等基本功能(前后端分离)

    萌新初次学习服务器端语言,分享学习经验 实现功能:1.显示数据表    2.对数据进行分页    3.对数据进行增删查改 由于本萌新采用前后端完全分离方案,所以数据传输用的ajax,为了提高代码的复用 ...

  8. Python requirements.txt 语法

    前言 之前一直苦于一个问题,比如一些包在Win上安装不了,比如 uvloop 但是为了提高效率,代码中必须有这个模块 在运行中可以通过 os 模块判断是否使用, 那依赖文件呢? requirement ...

  9. python函数3-函数嵌套/递归/匿名函数

    2 .函数递归: 3.匿名函数

  10. 学习rac管理

    文章转自:http://blog.itpub.net/7728585/viewspace-752185/ crsctl query crs activeversion 查看版本 ocrconfig - ...