sql命令语句基本使用(2)


一、统计函数的使用:

1.count(*)统计行数:

sql命令语句基本使用(2)

2.max函数:

sql命令语句基本使用(2)

3.min函数:

sql命令语句基本使用(2)

4.avg函数:

sql命令语句基本使用(2)

5.sum函数:

sql命令语句基本使用(2)


二、对表数据查询语句的进一步细化使用:

条件查询(where语句):

条件表达式的意义,表达式为真,则该行取出,反之,则不输出出。

a.比较运算符:=、!=、<、>、<=、>=

sql命令语句基本使用(2)

sql命令语句基本使用(2)

sql命令语句基本使用(2)

b.like , not like ('%'匹配任意多个字符,'_'匹配任意单个字符) in , not in , between and:

以zhu头的匹配:

sql命令语句基本使用(2)

以zhu结尾的匹配:

sql命令语句基本使用(2)

包含h的匹配:

sql命令语句基本使用(2)

sql命令语句基本使用(2)

sql命令语句基本使用(2)

c. 值为 is not null 和 is null;

sql命令语句基本使用(2)

排序查询(order) desc (是递减)asc (是递增):

sql命令语句基本使用(2)

sql命令语句基本使用(2)

限制查询(limit ):

第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目.

sql命令语句基本使用(2)

分组查询(group):

统计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。

我们拥有下面这个 "Orders" 表:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

现在,我们希望查找每个客户的总金额(总订单)。

我们想要使用 GROUP BY 语句对客户进行组合。

我们使用下列 SQL 语句:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer

结果集类似这样:

Customer SUM(OrderPrice)
Bush 2000
Carter 1700
Adams 2000

很棒吧,对不对?

我们也可以对一个以上的列应用 GROUP BY 语句,就像这样:

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate
帅选查询(having):

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与统计函数一起使用:

我们拥有下面这个 "Orders" 表:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

现在,我们希望查找订单总金额少于 2000 的客户。

我们使用如下 SQL 语句:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

结果集类似:

Customer SUM(OrderPrice)
Carter 1700

子查询:

a.where型子查询:

where 型子查询:内层sql的返回值在where后作为条件表达式的一部分

例句: select * from tableA where colA = (select colB from tableB where ...);

--子查询的结果如果大于1条就需要用in:
select 编号,姓名 from 学生信息表 where 编号 in(select 编号 from 学生成绩表)
sql命令语句基本使用(2)

from 型子查询:内层sql查询结果,作为一张表,供外层的sql语句再次查询

例句:select * from (select * from ...) as tableName where ....




字符集 :

客服端sql编码 character_set_client

服务器转化后的sql编码 character_set_connection

服务器返回给客户端的结果集编码 character_set_results

快速把以上3个变量设为相同值: set names 字符集

存储引擎 engine=1\2 1

Myisam 速度快 不支持事务 回滚 2

Innodb 速度慢 支持事务,回滚


索引 :

提高查询速度,但是降低了增删改的速度,所以使用索引时,要综合考虑. 索引不是越多越好,一般我们在常出现于条件表达式中的列加索引. 值越分散的列,索引的效果越好

索引类型

primary key主键索引

index 普通索引

unique index 唯一性索引

fulltext index 全文索引




未完待续~~~



相关文章: