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. Java学习日报10.1

    学习内容一 ********************************** 代码 **********************************public class EnumTest ...

  2. ACID隔离性

    数据库ACID 一致性 原子性  隔离性  持久性 隔离性: 1.读未提交 2.读已提交 3.可重复读 4.串行 读未提交:容易引起脏读 读已提交:容易引起幻读(前后读到的行数不一致) 场景: A事务 ...

  3. Java常用类学习笔记总结

    Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...

  4. 关于一些视图的基本操作(结合YGGL.sql)

    二.操作题 1.创建视图emp_view2,包含员工编号,姓名,所在部门名称和收入. mysql> create or replace view emp_view2 -> as -> ...

  5. Liunx运维(十一)-系统管理命令

    文档目录: 一.lsof:查看进程打开的文件 二.uptime:显示系统的运行时间及负载 三.free:查看系统内存信息 四.iftop:动态显示网络接口流量信息 五.vmstat:虚拟内存统计 六. ...

  6. 手撕redis分布式锁,隔壁张小帅都看懂了!

    前言 上一篇老猫和小伙伴们分享了为什么要使用分布式锁以及分布式锁的实现思路原理,目前我们主要采用第三方的组件作为分布式锁的工具.上一篇运用了Mysql中的select ...for update实现了 ...

  7. uber_go_guide解析(一)

    前言 实力有限,guide啃着好费劲 原地址https://github.com/xxjwxc/uber_go_guide_cn 加我自己的体会和补充 基于Golang 1.14 正文 Interfa ...

  8. 【Azure Developer】Python代码通过AAD认证访问微软Azure密钥保管库(Azure Key Vault)中机密信息(Secret)

    关键字说明 什么是 Azure Active Directory?Azure Active Directory(Azure AD, AAD) 是 Microsoft 的基于云的标识和访问管理服务,可帮 ...

  9. FlatBuffers使用小结

    最近做一个Android APP,由于离线业务需求,需要在启动APP时候同步大量数据到APP上,遇到了JSON性能瓶颈.从下方的图片中可以看出,当使用 json 传输数据,在解析json的时候会产生大 ...

  10. 【Java】一个简单的Java应用程序

    简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...