一、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. mysql导入文件

    手里有一个web源码工程文件夹 mysql导入文件: 新建连接,名称随意,用修改设置的用户密码登录,我的连接名称是eee 右击information_schema,建立数据库,数据库名称源码文件名,字 ...

  2. Django之Form的ModelForm

    form与model的终极结合. from django import forms class BookForm(forms.ModelForm): class Meta: model = model ...

  3. Hive_Hive的数据模型_分区表

    Hive的数据模型之分区表 准备数据表: create table sampledata (sid int, sname string, gender string, language int, ma ...

  4. docker安装软件

    镜像相关命令 1.搜索镜像 # docker search java 可使用 docker search命令搜索存放在 Docker Hub(这是docker官方提供的存放所有docker镜像软件的地 ...

  5. csrf攻击实例

    CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作.比如说,受害者 Bob 在银行有一笔存款,通过对银行的网站发送请求 ht ...

  6. 常见的JedisConnectionException 异常

    最近在使用redis出现以下的异常: 1.redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectExcept ...

  7. 使用jstack分析解决进程死锁问题

    项目启动后不久就会出现死锁的现象,一直不知道什么原因造成的,后来经过大神的指点,解决了这个问题. 流程如下: 1.环境jdk1.6以上: 2.linux下使用ps aux|grep tomcat 命令 ...

  8. [Java][Web] Servlet中转发和重定向比较

    Servlet中页面跳转的两种方式 请求转发 使用requestDispatcher对象 request.getRequestDispatcher("path").forward( ...

  9. Collections集合工具类,集合嵌套,集合综合案例斗地主

    1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...

  10. Java 面向对象,封装,继承

    1相关概念的理解 1.1面向过程.面向对象 面向过程与面向对象都是编程中,编写程序的一种思维方式. 面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.(职员思想) 面向 ...