关系型数据库sql查询


复制代码
规范书写:
    (1) FROM < left_table>
    (2) ON < join_condition>
    (3) < join_type> JOIN < right_table>
    (4) WHERE < where_condition>
    (5) GROUP BY < group_by_list>
    (6) WITH {cube | rollup}
    (7) HAVING < having_condition>
    (8) SELECT (9) DISTINCT (11) < top_specification> < select_list>
    (10) ORDER BY < order_by_list>   
1.基本查询
 select *(列名) from table_name(表名) where column_name operator value;
  select DISTINCT 列名称 from表名称--------------------去重
  条件举例:
  stockname = 'str_name' or stockpath = 'stock_path' or stocknumber < 1000 and stockindex = 24 not stock*** = 'man'
  stocknumber between 20 and 100
  stocknumber in(10,20,30)
2.通配符
--------- 只能在使用like关键字的where子句中使用通配符)
   语法
    SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE pattern
通配符              描述
%              替代一个或多个字符 _              仅替代一个字符 [charlist]              字符列中的任何单一字符 [^charlist]或者[!charlist] 不在字符列中的任何单一字符
举例:stockname
like '% find this %' stockname like '[a-zA-Z]%' --------- ([]指定值的范围) stockname like '[^F-M]%' --------- (^排除指定范围) stockname not like '[^F-M]%' --------- (not) 3.排序   order by stockid desc(asc) --------- by列名,desc-降序,asc-升序     order by 1,2 --------- by列号     order bY stockid DESC, stockname ASC ---------------------id降序 name升序 4.TOP子句 TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 通用 SELECT TOP 2 * FROM Persons SELECT TOP 50 PERCENT * FROM Persons MySQL 语法     SELECT column_name(s) FROM table_name LIMIT number   Oracle 语法     SELECT column_name(s) FROM table_name WHERE ROWNUM <= number 5.别名   通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
  表的 SQL Alias 语法     
SELECT column_name(s) FROM table_name AS alias_name   列的 SQL Alias 语法     SELECT column_name AS alias_name FROM table_name   使用表名称别名   SELECT po.OrderID, p.LastName, p.FirstName     FROM Persons AS p, Product_Orders AS po     WHERE p.LastName='Adams' AND p.FirstName='John' 6.表的连接   inner join 表示内连接    Select a.id,a.name,b.name from dave a inner join bl b on a.id=b.id;    注意 a,b <=> a jion b <=> a inner jion b    nature join 自然连接    自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果。    Select id,name from dave a natural join bl b    left join表示左外连接    Select id,name from dave a natural join bl b    right join表示右外连接;    select * from dave a right join bl b on a.id = b.id    full join表示完全外连接;    select * from dave a full join bl b on a.id = b.id;    on子句 用于指定连接条件。 7.组函数 聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语GROUP BY子句一同使用   1. AVG 返回指定组中的平均值,空值被忽略。   例:select prd_no,avg(qty) from sales group by prd_no   2. COUNT 返回指定组中项目的数量。   例:select count(prd_no) from sales   3. MAX 返回指定数据的最大值。   例:select prd_no,max(qty) from sales group by prd_no   4. MIN 返回指定数据的最小值。   例:select prd_no,min(qty) from sales group by prd_no   5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。   例:select prd_no,sum(qty) from sales group by prd_no   6. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。   例:select count_big(prd_no) from sales   7. GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.   例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup   8. BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。   例:select prd_no,binary_checksum(qty) from sales group by prd_no   9. CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。   例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no   10. CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。   11. STDEV 返回给定表达式中所有值的统计标准偏差。   例:select stdev(prd_no) from sales   12. STDEVP 返回给定表达式中的所有值的填充统计标准偏差。   例:select stdevp(prd_no) from sales   13. VAR 返回给定表达式中所有值的统计方差。   例:select var(prd_no) from sales   14. VARP 返回给定表达式中所有值的填充的统计方差。   例:select varp(prd_no) from sales 8.子查询 1、单行子查询 select ename,deptno,sal from emp where deptno=(select deptno from dept where loc='NEW YORK');   2、多行子查询 SELECT ename,job,sal FROM EMP WHERE deptno in ( SELECT deptno FROM dept WHERE dname LIKE 'A%'); 3、多列子查询 SELECT deptno,ename,job,sal FROM EMP WHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP GROUP BY deptno); 9.having HAVING对由sum或其它集合函数运算结果的输出进行限制。 比如,我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息,这时我们就需要使用HAVING从句。语法格式为:   SELECT "column_name1", SUM("column_name2")   FROM "table_name"   GROUP BY "column_name1"   HAVING (arithematic function condition)   (GROUP BY从句可选) SQL语言中设定集合函数的查询条件时使用HAVING从句而不是WHERE从句。通常情况下,HAVING从句被放置在SQL命令的结尾处。 10.sql语句执行顺序 (1).FROM 子句 组装来自不同数据源的数据 (2).WHERE 子句 基于指定的条件对记录进行筛选 (3).GROUP BY 子句 将数据划分为多个分组 (4).使用聚合函数进行计算 (5).使用HAVING子句筛选分组 (6).计算所有的表达式 (7).使用ORDER BY对结果集进行排序
复制代码

 
posted @   W焕  Views(444)  Comments(1Edit  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示