SQL_2_查询语句

一、投影

selcet语句:

  指定要查看的列(字段)信息,设计结果集的样式,可以使用*表示显示所有列信息。

select distinct 'id=' || id,name,age as '年龄'

  1、列可以进行运算

  2、任何值与NULL运算得NULL,除了<=>运算符,它会在两边都为null时返回1。

  3、列可以取别名,在结果集中会显示别名,别名使用双引号括起来。

  4、Oracle可以使用连接符  ||  合并列或数据,在结果集中把连接的列或数据显示在同一个列。

  5、结果集可以添加常量列,常量为字符串或日期时候需要使用单引号

  6、使用distinct关键字可以在结果集中去除重复行,它必须在select后面。

  7、合集:使用union all可以将两个查询语句的结果集拼接在一起,all省略时去除重复行。

  8、交集:使用intersect可以将两个查询语句的结果集相同的行取出来。

  9、差集:前面的结果集去除后面的结果集的结果。


二、来源

from语句:

  说明查询的数据表是哪一个,可以指定多个表,也可以是一个结果集。

from student

三、筛选

where语句:

  在结果集中过滤符合条件的行数据,它必须跟在from语句后面。

where ( id between 1 and 30 ) or (name in('lurenjia','ergouzi','sanwazi'))

  1、常见的比较条件:大于、小于、大于等于、小于等于、等于、不等于。

  2、常见的其它比较条件:

      between ...  and  ...    在两者之间的值。

      in(.....)         在in集合中的值。

      is null、is not null    值是否为null。

      like '...'        模糊查询,包含指定字符串的值。

/**
模糊查询使用通配(%)符或占位符(_)确定格式。
若要查找%或者_可以使用关键字escape 定义转义字符。使用转义字符使其失去特殊意义。
例如:查询jiob_id中包含A_的数据,job_id like '%A#_%' escape '#'
*/

  3、逻辑条件:and   or   not

注意:where语句中不能使用多行函数。


四、排序

order by语句:

  指定结果集的排序顺序,它的位置是查询语句的最后。

order by id,age desc

  asc:(默认的)升序。

  desc:降序排序,null是最大的。

  1、可以使用索引指定,select中的第一个字段为1,第二个字段为2...

  2、先按字段1排序,若相同,则按字段2排序。


五、分组

group by语句:

  创建分组

例子:查询学生的班级,以及班级对应的学生数量。

select  student_classroom,count(student_name)
from students
group by student_classroom

注意:要是某个字段和组函数同时显示在结果集中,字段必须作为分组条件。否则执行失败。

分组可以多重分组。


六、分组后筛选

having语句:

  对组中数据再进行过滤,作用与where一样。

  一般having在group by语句后。

例子:查询学生的班级,以及班级中大于60分的学生数量,只显示数量大于5的班级。

select  student_classroom,count(student_name)
from students
where student_scores > 60
group by student_classroom
having count(student_name) >5

其中可以使用多行函数。

 

 

 

posted @ 2022-12-11 20:33  在博客做笔记的路人甲  阅读(91)  评论(0编辑  收藏  举报