sql_基础_查询数据

1,基本查询:SELECT * FROM table;

        不要求一定有FROM 子句,SELECT 100+200;

                   SELECT 查询的结果是一个二维表

2,条件查询:SELECT * FROM table WHERE score >= 80;

        SELECT * FROM 表名 WHERE 条件表达式;

        OR 或,AND ,NOT 条件  如: NOT class_id = 2 等价于 class_id<> 2;

       三个或者更多的条件,(score < 80 OR score > 90) AND gender = 'M';

如果不加括号,条件运算按照NOTANDOR的优先级进行,即NOT优先级最高,其次是AND,最后是OR。加上括号可以改变优先级。

%表示任意字符,name LIKE 'ab%' ,name LIKE '%abc%'   %任意个字符,_一个字符

BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期,是否能取到区间端点值要看具体的数据库;

3,投影查询:SELECT  列1,列2,列3 FROM..... ,结果集仅包含指定列;

                   还可以将列重命名,SELECT 列1 别名1,列2 别名2,列3 别名3 FROM

                         投影查询+WHERE 条件;

4,排序:ORDER BY  默认按照顺序 ASC,ORDER BY 列 DESC;

                 按照多列排序,ORDER BY sore DESC,gender;

                  ORDER BY 排序的是结果集,所以需要在WHERE 后面;

5,分页:在最后+LIMIT 3,相当于LIMIT 3 OFFSET 0,对结果集从0号记录开始,最多取3条。注意SQL记录集的索引从0开始。 OFFSET为基准线;

6,聚合:COUNT(*)查询所有列的行数,聚合计算结果仍然是二维表,是一行一列的二维表;

      聚合给列别名,SELECT COUNT(*)  new_column_name  FROM table;

都可以迭代WHERE 条件,如果聚合查询的WHERE条件没有匹配到任何行,COUNT()会返回0,而SUM()AVG()MAX()MIN()会返回NULL

取整函数:

a.round()函数遵循四舍五入原则,用于把数值字段舍入为指定的小数位数  23.33   23

b.floor(value)函数返回小于或等于指定值(value)的最小整数   23.33  23 

c.ceiling(value)函数返回大于或等于指定值(value)的最小整数  23.33  24

d.sign(value) 与绝对值函数ABS()相反。ABS()给出的是值的量而不是其符号,sign(value)则给出值的符号而不是量 

e.trunc(value,precision)按精度(precision)截取某个数字,不进行舍入操作

例如:对于12.9,floor(12.9)返回12;ceiling(12.9)返回13;round(12.9,0)返回13

 7,分组:

猜你喜欢

转载自www.cnblogs.com/CrazyJioJio/p/12634696.html