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

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


一、统计函数的使用:

1.count(*)统计行数:


2.max函数:


3.min函数:


4.avg函数:


5.sum函数:



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

条件查询(where语句):

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

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




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

以zhu头的匹配:


以zhu结尾的匹配:


包含h的匹配:




c. 值为 is not null 和 is null;


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



限制查询(limit ):

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


分组查询(group):

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

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

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

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

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

我们使用下列 SQL 语句:

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

结果集类似这样:

CustomerSUM(OrderPrice)
Bush2000
Carter1700
Adams2000

很棒吧,对不对?

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

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

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

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

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

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

我们使用如下 SQL 语句:

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

结果集类似:

CustomerSUM(OrderPrice)
Carter1700

子查询:

a.where型子查询:

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

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

--子查询的结果如果大于1条就需要用in:
select 编号,姓名 from 学生信息表 where 编号 in(select 编号 from 学生成绩表)

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 全文索引




未完待续~~~



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值