navicat操作数据库 数据查询功能

1.select语句    

 SELECT * FROM <表名>;

1.1.通配符的使用:

    通配符 *   :查询所有的列等等

    通配符 _   :匹配一个字符

    通配符 %:匹配任意长度的字符,包括空字符串

1.2.查询关键字

  1.2.1 关键字  distinct的用法  除去数据重复的值  

SELECT DISTINCT [字段名] FROM <表名>

 

  1.2.2关键字  like的用法    like与通配符配合使用

 SELECT [字段名1,字段名2,…]
          FROM <表名>
          WHERE [字段名] [ NOT ] LIKE ‘匹配字符串’

 

2.子查询

常用的子查询语句有五种:

  • 条件查询(where子句):按照“条件表达式”指定的条件进行查询。
  • 分组查询(group by子句):按照“属性名”指定的字段进行分组。group by子句通常和count()、sum()等聚合函数一起使用。
  • 筛选查询(having子句):有group by才能having子句,只有满足“条件表达式”中指定的条件的才能够输出。
  • 排序查询(order by子句):按照“属性名”指定的字段进行排序。排序方式由“asc”和“desc”两个参数指出,默认是按照“asc”来排序,即升序。
  • 限制查询(limit):限制结果集。

2.1条件查询(where子句)

  where子句常与运算符配合使用

2.2分组查询(group by子句)

  分组将一个区域划分成多个小区域,对多个小区域进行数据处理

select 类别, sum(数量) as 数量之和
from A
group by 类别

 

2.3筛选查询(having子句)  针对“组”里面条件进行筛选

  having一般跟在group by之后,执行记录组选择的一部分来工作的。where则是执行所有数据来工作的。
  再者having可以用聚合函数,如having sum(qty)>1000。

2.4排序查询(order by子句)

  • order by <列名>             #  默认升序排列 
  • order by <列名> desc    # 降序排列
  • order by <列名> asc      # 升序排列
  • order by rand()              # 随机排列

2.5限制查询(limit子句)

  在查询语句中,我们想要只返回前面几行数据

  limit [offset] N

 

2.6  子查询关键字

2.6.1  关键字  as的用法

   1. as的用法一般是用于重命名“列名”、“表名”,为了查询方便。

   2.as作为连接语句的操作符

create table charm1 as select * from charm2

    解释:上面的语句是先获取charm1表格中所有数据,之后再创建一张charm1表,结构和charm2表相同,记录为后面语句的查询结果

 

2.6.2  关键字  in的用法

  列如:现在我们查询成绩大于60的学生的结果集,然后将原成绩表中的成绩与结果集进行比较,如果存在,就输出这条学生的记录。

select * from stu_sc
where score in
(select score from stu_sc where score>60)

 

2.6.3  关键字  exists的用法

    exists子查询就是用来判断某些条件是否满足,exists是接在where之后的,

exists返回的结果只有0,1.

    

select * from stu_sc 
where exists
(select * from stu_sc where score>60)

 

2.6.4  关键字  any 的用法

    any关键字表示满足其中的任意一个条件,只要满足内层查询语句结果的任意一个,就可以通过该条件来执行外层查询语句

    

select * from stu_sc
where id < ANY
(select id from stu_sc )

 

2.6.5  关键字  all 的用法   

    all和any 刚好是相反的,all 关键字需要满足所有结果。

    

select * from stu_sc
where id > ALL
(select id from stu_sc )

 

2.6.6  关键字  between ..and 的用法

    比如:查询stu_sc表中,分数在40——60之间的数据。

    

select * from stu_sc where score between 40 and 60

 

2.7  子查询组合

2.7.1  组合:where + group by + having + 函数

 

 

3.  连接查询

    为什么用到连接查询,在用户查看数据的时候,需要现实的数据来自多张表,这时候就需要连接查询。

    

3.1  内连接查询

    select * from 表名 join 被连接表 on 连接条件

    

select Sname,Cno,Grade 
FROM Student JOIN SC 
ON Student.Sno = SC.Sno
WHERE Sdept  = '计算机系'

 

3.2  自连接查询

 

3.3  外连接查询

    FROM 表一 left/right JOIN 表二 ON 连接条件

    

4.  集合查询

    集合操作的分类  

    并操作  union

    交操作  intersect

    差操作  except

   注意:参加集合 操作的各查询结果的列数必须相同,对应项的数据类型必须相同。

4.1  union  将多个查询结果合并起来,自动去掉重复元组

    

4.2  intersect  该运算符返回两个查询或多个查询的不同行

    

(select col 
from table1)
intersect
(select col
from table2);

 

4.3  except  

posted @ 2022-03-14 23:12  kuaiquxie  阅读(3176)  评论(0编辑  收藏  举报