Oracle 数据库常用SQL语句(2)查询语句

时间:2021-09-29 13:41:09

一、SQL基础查询

1、select语句

  格式:select 字段 from 表名;

  2、where 用于限制查询的结果。

  3、查询条件 > < >= <= = !=

  4、与 或(AND,OR)
  
  5、在 不在(IN,NOT IN)
  练习:查询工号为1,9,11,16且工资低于1000的员工。

  6、在 [a,b] (between val1 and val2)
    查询工资大于1000,小于1500的员工。

select * from s_emp where salary between 1000 and 1500;

  7、空 非空(IS NULL,NOT NULL)

  8、全部 任一(ALL,ANY)
    不能单独使用,必须要与关系运算符配合。
    查询职位是仓库管理员的工资。

select * from s_emp where title = 'Stock Clerk';

    查询工资比任一仓库管理员高的员工信息。

select * from s_emp where salary > any(select salary from s_emp where title = 'Stock Clerk');

  9、排重 DISTINCT
    练习:工资在1000~1500之间的职位有哪些。

select distinct title from s_emp where salary>=1000 and salary <1500 ;

二、排序

1、使用 ORDER BY 语句
  格式:select 字段 from 表名 where 条件 ORDER BY 字段;
    显示员工名字、职位、工号,按年薪从低到高的排列显示。

select last_name,title,id,salary from s_emp order by salary;

2、设置升序降序(ASC,DESC)
  格式:select 字段 from 表名 where 条件 ORDER BY 字段 ASC|DESC;
    显示员工名字、职位、工号,按年薪从高到低的排列显示。

select last_name,title,id,salary from s_emp order by salary desc; 

3、多项排序
  格式:select 字段 from 表名 where 条件 ORDER BY 字段 ASC|DESC,字段 ASC|DESC;

三、聚合函数

注意:在使用比较运算符时NULL为最大值,在排序时也会受影响。
把select语句的多条查询结果,汇聚成一个结果,这样的函数叫聚合函数。

1、MAX\MIN
  获取最大值和最小值,可以是任何数据类型,但只能获取一个字段。

select * from s_emp where salary = (select MAX(salary) from s_emp);

2、AVG\SUM
  获取平均值、总和。
3、COUNT
  统计记录的数量。

四、分组查询

1、GROUP BY
  格式:select 组函数 from 表 group by 字段。

select count(last_name) from s_emp group by dept_id;

2、HAVING 组判断条件。
  它的真假决定一组数据是否返回。
    计算部门中最低工资小于700的部门平均工资。

select count(last_name) from s_emp group by dept_id having max(salary) > 2000;

五、查询语句的执行顺序

格式:select sum(salary) from 表名 where bool order by group by having
  a、from 表名,先确定数据的来源。
  b、where 确定表中的哪些数据有效。
  c、group by 字段名,确定数据的分组依据。
  d、having 确定组数据是否返回。
  e、order by 对组数据进行排序。

六、关联查询

1、多表查询
  select 字段 from 表1,表2 where;
2、多表查询时有相同字段怎么办
  1、表名.字段名
  2、表名如果太长,可以给表起别名 (from 表 别名)
  3、笛卡尔积
  a 8条数据 b 9条数据 = 笛卡尔积
  在多表查询时,一定要设置where条件,否则将得到笛卡尔积。

七、连接查询

当使用多个表进行关联查询时,根据设置的条件会得到不同的结果(能匹配成功和不能匹配成功的)。
  1、内连接:右边两连能匹配成功的数据。

select last_name,name from s_emp,s_dept where dept_id = s_dept.id;

  2、外连接:左右两边不能匹配的数据。

select last_name,name from s_emp, left outer join s_dept on dept_id = s_dept.id。

  3、左外连接:匹配成功的数据+左表不能匹配的数据

select last_name,name from s_emp, left outer join s_dept on dept_id = s_dept.id。

  4、右外连接:匹配成功的数据+右表不能匹配的数据

select last_name,name from s_emp, right outer join s_dept on dept_id = s_dept.id。

  5、全外连接:匹配成功的数据+左表不能匹配的数据+右表不能匹配的数据

select last_name,name from s_emp, full outer join s_dept on dept_id = s_dept.id。

Oracle 数据库常用SQL语句(2)查询语句的更多相关文章

  1. oracle数据库常用的99条查询语句(转载)

    1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...

  2. oracle数据库常用的99条查询语句

    1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...

  3. oracle数据库常用SQL语句(11&period;29更新&rpar;

    笔者日常工作中常用到的sql语句,现总结如下,留作日后查看. 1.按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Loa ...

  4. Oracle数据库常用Sql语句大全

    一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...

  5. Oracle 数据库常用SQL语句&lpar;1&rpar;

    一.数据定义语句 CREATE:创建表或其它对象 create database test; //创建test数据库 ),sex )); //创建表 ALTER:修改表或其它对象的结构 )); //为 ...

  6. Oracle数据库 常用SQL

    -- 查询所有数据 SELECT * FROM [TABLE_NAME]; -- 查询数据总量 SELECT COUNT(*) AS COUNT FROM [TABLE_NAME]; -- 清空表内所 ...

  7. oracle数据库常用SQL语句

    1)删除表的一列 ALTER TABLE 表名 DROP COLUMN 列名; 2)增加表的一列 且默认值为0 alter table 表名 add 字段名 类型 default '0'; 3)修改表 ...

  8. Oracle数据库常用SQL函数

    1.SQL函数的概念: 函数一般是在数据上执行的,它给数据的转换和处理提供了方便.只是将取出的数据进行处理,不会改变数据库中的值.(类似于java中的方法但函数只是将数据库中的数据取出(复制)到函数中 ...

  9. Oracle数据库常用的Sql语句整理

    Oracle数据库常用的Sql语句整理 查看当前用户的缺省表空间 : select username,default_tablespace from user_users; 2.查看用户下所有的表 : ...

随机推荐

  1. js作用域问题

    <script type="text/javascript"> alert(i);//Uncaught ReferenceError: i is not defined ...

  2. 41-tr 简明笔记

    替换指定的字符 tr [options] string1 string2 参数 tr通常带有两个参数:string1 和 string2 ,当tr发现与string1中有匹配的字符时,它将使用stri ...

  3. Java——FIle:

    1.读取文件夹中的文件 /** * 读取图片文件 * @param imgPath 文件所在的文件夹绝对路径 * @return * @throws FileNotFoundException */ ...

  4. purple-accessData

    ylbtech-class:purple-accessData A, 返回顶部 1,送货时间 #region 送货时间 /// <summary> /// 送货时间 /// </su ...

  5. C&plus;&plus; 双链表基本操作

    上一篇博客主要总结了单向链表,这次再总结一下双向链表. 1.概念 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都 ...

  6. c&num; WinForm开发 DataGridView各种操作总结大全

    一.单元格内容的操作 //取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index Consol ...

  7. Nuget的使用

    前言 最近看到园子上有关于NuGet (读音:new get)的使用,所以心血来潮也跟着学习做了一下,觉得很流b哦.于是也就记一下自己的学习心得(并非一味的重复*,只是觉得他人做的写的就是对的,自己 ...

  8. javascript中new操作符

    当代码var p= new Person("tom")执行时,其实内部做了如下几件事情: 1.创建一个空白对象(new Object()). 2.拷贝Person.prototyp ...

  9. lesson - 13 Linux系统日常管理2

    内容概要: 1. Linux抓包工具 tcpdump 系统自带抓包工具tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80tcpdump - ...

  10. Map value类型不同的写法

    Map value类型不同的写法 Map<String, Object> accountMap=new HashMap<String, Object>(); int userI ...