My SQL数据查询

来源:互联网 发布:android ndk r9d mac 编辑:程序博客网 时间:2024/05/19 14:00

SELECT语句绝对是SQL里面功能最强大的,FROM子句是一条必要的子句,必须总数与SELECT联合使用。
SELECT 语句里有4个关键字最有价值,如下所示:

 SELECT FROM WHERE [ORDER BY columns][GROUP BY columns] [HAVING  conditions]

1.SELECT语句

SELECT [*|ALL|DISTINCT COLUMN1,COLUMN2]
FROM TABLE1 [,TABLE2];

SELECT之后用于列出字段名称;
DISTINCT语句用于去除重复记录,使结果更简洁。

2.WHERE子句

WHERE子句用于给查询添加条件,去除用户不需要的数据。
WHERE子句里可以有多个条件,他们之间以操作符AND或OR连接。

SELECT [all|  * |distinct  column1,column2]FROM table WHERE [condition1|expression]               [and | OR condition2 | expression2];

3.ORDER BY 子句

order by 子句可以让输出以某种方式进行排序,它能够以用户指定的列表格式对查询结果进行排序。
order by 子句的默认次序是升序(ASC),字母值是从A到Z,数字值是从1到9,关键字DESC表示降序排列。

SELECT [all | * |distinct column1, column2] from table1where [condition1 | expression1 ][and | OR condition2 | expression2 ]ORDER BY column1 | integer [ASC|DESC]

SQL排序是基于字符的ASCII排序,数字0—9会按其字符值进行排序,位于字母A到Z之前。

ORDER BY 子句里的字段可以缩写为一个整数,这个整数取代了实际的字段名称(别名),表示字段在关键字SELECT之后列表里的位置

如:order by 1,3 表示先对第一个字段进行排序,再对第三个字段进行排序。

注:一般情况下,不对查询结果进行排序,因为完成这项工作需要额外的开销,这样在数据量较大的情况下会很耗费系统资源,也需要较长的时间。

4.GROUOP BY 条件子句

根据指定的列将表中数据分成多个组后进行汇总。可以根据表中某一列或某几列对表中数据进行分组,多列之间用逗号分开。

注:如果在查询中既有WHERE子句,又有GROUP BY 子句,那么系统会先查询满足WHERE条件的记录,然后再将这些记录按照GROUP BY 子句分组,也就是说WHERE子句先生效。

5.HAVING条件子句

通常与GROUP BY 子句一起使用,在完成分组结果的统计后,可以使HAVING子句对分组的结果进行进一步的筛选。
HAVING子句的表达式之间用关键字AND和OR分割,搜索条件与组相关。

注:在SELECT语句中,GROUP BY 子句,HAVING 子句,和WHERE 子句同时存在时,先WHERE子句,再GROUP BY 子句,最后HAVING子句。

6.大小写敏感性

一般来说,SQL的命令和关键字是不区分大小写的;而排序规则对大小写较敏感,My SQL和Microsoft SQL Server在进行数据匹配时,系统会忽视数据的大小写,Oracle默认是大小写敏感的。

7.统计表里的记录数量

COUNT()函数可以了解到表里某个字段里值的数量。

SELECT COUNT(*) FROM table_name;

COUNT函数使用一对圆括号来指定目标字段,或是一个星号表示统计表里的全部记录。

SELECT COUNT (DISTINCT PROD_ID) FROM PRODUCTS_TBL;

统计表中特定列所出现的值的种类数。

8.从另一个用户表里选择数据

要访问另一个用户的表,必须拥有相应的权限,否则就不能进行访问。在SELECT语句里要访问另一个用户的表,必须在表的名称之前添加规划名或相应的用户名。

SELECT EMP_ID FROM SCHEMA.EMPLOYEE_TBL;
0 0
原创粉丝点击