数据库表的查询

单表查询:

一 关键字的执行优先级:
from                      #来自表
where                   #来自字段 可以用 [字段名] like(regexp) 'ab%'(正则) 选择以该字段数据以'ab'开头的
group by               #分组; 想拿到别的字段必须和group_concat(函数一起使用)
having                   #过滤; 必须是在分组之后进行的进一步的过滤,而且可以使用聚合函数
select                    #查询,选择
distinct                 #去重
order by               #排序 asc #升序,默认的 desc #降序
limit                      #限制条数

二 单表查询的语法:

select * from,                    #这个select * 指的是要查询所有字段的数据。

select distinct 字段1,字段2... from [库名.表名]            #from后面是说从库的某个表中去找数据,mysql会去找到这个库对应的文件夹下去找到你表名对应的那个数据文件,找不到就直接报错了,找到了就继续后面的操作

where                                   #条件 #从表中找符合条件的数据记录,where后面跟的是你的查询条件

group by [字段名]                 #分组
注意:我们按照post字段分组,那么select查询的字段只能是post,想要获取组内的其他相关信息,需要借助函数group_concat().例如: 查询t1表中岗位名称以及岗位中所包含的员工名字
select post,group_concat(name) from t1 group by post

having 筛选                       #过滤,过滤之后执行select后面的字段筛选,就是说我要确定一下需要哪个字段的数据,你查询的字段数据进行去重,然后在进行having过滤的操作

order by [字段名]              #将结果按照后面的字段进行排序

limit 限制条数                   #将最后的结果加一个限制条数,就是说我要过滤或者说限制查询出来的数据记录的条数


三 函数

concat('姓名:' , [字段名] , '年薪:' , [字段名]*12)                        #函数用于连接字符串,且只有一个字段

concat('姓名:' , [字段名]),concat('年薪:' , [字段名]*12)             #设置了两个字段来显示连接的字符串

select count(*) from [表名];                                                     #count是统计个数用的

select count(*) from [表名] where depart_id=1;                     #后面跟where条件的意思是统计一下满足depart_id=1这个的所有记录的个数

select max([字段名]) from [表名];                                           #max()统计分组后每组的最大值,这里没有写group by,那么就是统计整个表中所有记录中薪资最大的,薪资的值

select min([字段名]) from [表名];                                            #最小值

select avg([字段名]) from [表名];                                            #平均值

select sum([字段名]) from [表名];                                           #和

 

多表查询:

  select [字段名] from [表名1] <inner | left | right> join [表名2] on [两个表关联的条件] where [过滤条件];

  一定要注意:(查询出来的虚拟表,一定要赋予一个新名字才可以被查询拿值)

 

sql逻辑查询语句的执行顺序: select语句关键字的定义顺序    join模式有inner ,left ,right

  select distinct <select_list>
  from <左边表>
  <join模式> join <右边表>
  on <join条件>
  where <where条件>
  group by <group_by条件>
  having <having条件>
  order by <order_by条件>
  limit <limit条件(索引,数字)>

posted on 2019-01-22 21:58  哎呀!土豆  阅读(284)  评论(0编辑  收藏  举报

导航