Oracle那些事(11)-SQL单表查询
来源:互联网 发布:poser人体造型软件 编辑:程序博客网 时间:2024/06/14 06:58
一,简介
SQL其实就是用户和关系数据库交互的标准语言,是老美制定的,大体上分为三大类:
1,DML数据操纵语言,对数据库中的数据进行增删改查等操作2,DDL数据定义语言,主要是创建和修改数据库对象,比如表的创建、修改、删除3,DCL数据控制语言,比如对用户进行授权
这三大类大体知道有这么回事就行了,本篇我们介绍单表查询中常用的SQL语句。
二,select
直接查询类
/*星号表示全部列*/select * from emp;/*可以选择指定的列empno和ename*/select empno,ename from emp;/*两根竖线表示连接*/select empno||','||ename from emp;/*as表示列的别名*/select ename as emp_name from emp;/*用e这个别名代表emp,注意Oracle中表的别名不实用as*/select e.ename from emp e;
查询结果处理
/*查询结果升序排序(默认升序)*/select * from emp order by ename;/*查询结果降序排序*/select * from emp order by ename desc;/*查询结果转化,例如存储时1男0女*/select case sexwhen '1' then '男的'when '0' then '女的'endfrom PEO t/*查询前10行*/select * from emp where rownum<=10;/*排序后查询前10行*/select * from (select * from emp order by ename) where rownum<=10/*结果筛选*/select * from emp where ename='JAMES';/*名字是JAMES的*/select * from emp where ename<>'JAMES';/*名字不是JAMES的*//*and同时满足 or满足一个以上,not对内容取反*/select * from emp where ename='JAMES' and empno=7900;select * from emp where ename='JAMES' or empno=7902;select * from emp where not(ename='JAMES')/*in、not in,集合判断*/select * from emp where ename in ('JAMES','ALLEN','MILLER');select * from emp where ename not in ('JAMES','ALLEN','MILLER');/*like模糊匹配,%表示任意字符,_表示一个字符*select * from emp where ename like '%A%'select * from emp where ename like 'A____'/*选择不重复的内容*/select distinct(deptno) from emp/*对选择结果进行计算*/select sum(sal) as sumsal from emp;select avg(sal) as sumsal from emp;select count(comm) from emp;/*注意NULL列是不纳入计数的*/
非常特殊的NULL
NULL值表示该列没有数据,也就无从谈起这个数是多少,或者不是多少,或者大于小于多少,这些判断都将不成立。
/*如果comm是NULL,则comm=100不成立,comm<>100也不成立*/select * from emp where comm =100 or comm <>100;/*可以使用is NULL或is not NULL判断NULL的列*/select * from emp where comm is NULL;
相当特殊的group by
需要注意的是,当用了group by语句后,select的列必须是group by后面的列,或者聚合函数(count/sum/avg/…)计算的列。
例如:
/*正确*/select count(deptno),deptno from emp group by deptno;/*错误,因为ename不是group by后面的列*/select count(deptno),deptno,ename from emp group by deptno;/*正确,因为sum是聚合函数*/select sum(sal),deptno from emp group by deptno;/*having其实很简单,就是限制性group by 及之前的语句,然后对结果进行筛选*/select sum(sal),deptno from emp group by deptno /*执行后查询出结果*/HAVING sum(sal)>10000/*对结果筛选*/
阅读全文
0 0
- Oracle那些事(11)-SQL单表查询
- Oracle数据库sql--单表查询
- oracle 单表查询
- oracle单表查询
- sql单表查询
- 单表查询SQL
- 单表查询SQL
- oracle 树形结构单表 查询 递归SQL
- Oracle之SQL——单表查询
- oracle-单表查询脚本
- oracle单表函数查询
- SQL单表查询语句
- SQL单表复杂查询
- SQL基本单表查询
- Oracle查询优化--单表查询
- Oracle查询优化-01单表查询
- SQL语句-数据查询-单表查询
- Oracle 查询那些表存在外键
- android studio实现打电话
- GCC笔记(警告.优化以及调试选项)
- 23种设计模式--结构型模式(适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式)
- 父进程退出后如何通知子进程退出
- ORACLE Unit05 视图、序列、索引 、 约束
- Oracle那些事(11)-SQL单表查询
- 21. 吃货续
- Android Studio安装教程
- error C2065: 'AfxGetFileName' : undeclared identifier
- Xen虚拟地址转换
- 大数题目
- HEVC函数入门(2)——帧内编码一个CU
- 【c++】简单异常处理笔记
- 读《李善友:你与高手的距离,并非只差了一万小时练习》有感