SQL用法小结

来源:互联网 发布:et200proprofinet网络 编辑:程序博客网 时间:2024/06/16 10:14

点滴积累总结:
1 select 后面可以接两种形式的东西
第一是列,example:
select teacher_id from teacher 选择teacher_id这一个列,如果选择所有行的话就是select*from
第二个是组函数
select sum(teacher_id) from teacher这里返回的是一个结果,因为组函数(是将一组记录作为整体计算),你调用的是组函数,那么结果就只会放回一个结果。

2 组函数、group by与where的区别
我们知道where后面一定是跟的行,如果有in的话,where 列 in (expr2,expr3,expr4)。
这里还补充一点
where:

expr1 between expr2 and expr3                          其中expr2<=expr1<=expr3expr in (expr2,expr3,expr4)                         要求expr等于expr2、expr3、expr4中任意一个值like  模糊查询:这里有四种查询匹配方式:1:‘%三%' 只要有三就可以2'_三_'3个字符串中第二个是三就可以3'[张王李]三' 找出[]中的某三4'[^张王李]三'找出除了[]中的某三,比如赵三is null表示找出指定值等于null

总结一下where就是一定要比较行,不过你后面接不接in、between、like等,你的逻辑一定是行

组函数 、group by
如果select 后面接的是组函数,这里其实也是可以理解成为列的,因为你是用一个组的范围来计算的,
常见的组函数有

1 sum({[distinct|all]expr}):计算多行expr的平均值,其实还是列,只不过这个列是把多行的平均值的结果拿来使用了2 count({*|[distanct|all]expr}):计算多行expr的总条数3 max(expr):计算多行expr的最大值4 min(expr):计算多行expr的最小值5 sum([distanct|all]expr):计算多行expr的总和expr:可以是变量、常量或者数据列

组函数后面什么时候接group by呢?原来默认情况下,select后面接了组函数会把所有记录当作一组,为了对记录进行显示分组,我们就使用group by语句。我的理解就是你用了组函数,但是所有记录都会当做一组,这个时候一般不满足我们的要求,我们怎么区别呢?Structured Query Language中告诉我们可以用group by进行分组,这个时候要定义一个规则(不然group by后面什么都可以接的话就会乱套)这个时候我们规定group by后面只能跟一个或多个列名,表明查询结果根据一列或者多列进行分组。

0 0
原创粉丝点击