一、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.29更新)

    笔者日常工作中常用到的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语句(1)

    一.数据定义语句 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. LDAP理论知识

    整理改编自: https://www.cnblogs.com/yjd_hycf_space/p/7994597.html http://blog.51cto.com/407711169/1439623 ...

  2. Visiual Studio CLR20r3问题

    原文转自:http://blog.sina.com.cn/s/blog_3f2ef11801013p8c.html(刘帝勇的大观园) 看到有更新,习惯性的点了,升级到Visiual Studio Ul ...

  3. php:判断 是否开启 SSL,CURL,ZIP,GD2,MYSQL,是否安装MEMCACHED

    对于php的开发环境,通常需要去先判断下一些扩展和服务时不时已经可用~ 看过的欢迎拍砖,给意见~~ <?php /** * 判断 是否开启 SSL,CURL,ZIP,GD2,MYSQL,是否安装 ...

  4. oracle rollback 观察时间

    ###########issue 0: db alert 有如下提示, thread 1 cannot allocatete new log, sequenec 1111 通过检查v$log ,发现1 ...

  5. Linux用脚本守护进程

    while true; do server=`ps -aux | grep tomcat | grep -v grep` if [ ! "$server" ]; then echo ...

  6. cordova开发的坑

    相机 根据android版本,有各种问题. 1.拍照后不会自动清内存造成内存溢出,导致照片不会自动旋转,拍多张之后会自动刷新网页. 2.小米手机安卓7.0时,拍出的照片不会自动旋转,需要安卓端代码调整 ...

  7. 【转】 Oracle 中的一些重要V$ 动态性能视图,系统视图和表

    v$database:数据库的信息,如数据库名,创建时间等. v$instance 实例信息,如实例名,启动时间. v$parameter 参数信息,select * from v$parameter ...

  8. ABAP事件的简单用法

    1.1.事件: 用于捕获某类对象状态的改变来触发事件的方法,并进行处理 1.2.定义:可以在类或接口中进行声明 EVENTS|CLASS-EVENTS evt  EXPORTING … VALUE(p ...

  9. 零基础逆向工程14_C语言08_指针02_反汇编

    1.指针数组 5: char* keyword[] = {"if", "for", "while", "switch"} ...

  10. 洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows

    题目描述 Farmer John has decided to reward his cows for their hard work by taking them on a tour of the ...