MYSQL必知必会

这里是对数据库的一个操作,部分为伪代码,作用就是为了理解作用,这个可以作为一个字典,随时用到可以过来查。

一、去重(distinct)

SELECT DISTINCT sex FROM Studnet;

二、限制查询结果(limit, offset)

limit是限制返回数据的条数,而offset是限制从第几条数据开始返回,注意,是从0开始算,如果返回的数不够limit限制,也不会报错

SELECT prod_name FROM Products LIMIT 5 OFFSET 5;

注意:可以简写

SELECT prod_name FROM Products LIMIT 5,5

三、数据排序(order by)

注意,order by 一定要放在最后一条子句中,不然会报错。

SELECT prod_name FROM Products ORDER BY prod_name;

可以对多个列进行,按照左到右排序。

order by 默认是升序的(ASC),所以需要加一个条件让他逆序。

SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC;

这个降序也适用于多列排序。

四、过滤数据(where)

where顾名思义,对于普通的查询来说,可能没法获取到我们想要的数据,所以需要加一些限制的条件,这时候where就出现了。

1、范围值检查(between)

SELECT prod_name, prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10;

2、空值检查(Null)

注意;空值不是0,null代表没有值

SELECT prod_name FROM Products WHERE prod_price IS NULL;

五、高级过滤(添加操作符)

1、and操作符

SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = 'DLL01' AND prod_price <= 4;

就是多个条件的时候需要用到and操作符;

2、or操作符,这个就是或者的意思

3、知识点

and的优先级大于or,所以如果你需要其他结果,就加上括号去修改优先级。

4、in操作符

in用来指定范围,只要满足这个范围内的数据,那就可以查询出来。

SELECT prod_name, prod_price FROM Products WHERE vend_id IN ( 'DLL01', 'BRS01' ) ORDER BY prod_name;

 5、not操作符

WHERE子句中的NOT操作符有且只有一个功能, 那就是否定其后所跟的任何条件。

SELECT prod_name FROM Products WHERE NOT vend_id = 'DLL01' ORDER BY prod_name;

6、Like操作符(少用!)

SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%';

%代表多个,_代表一个字符,[ ]代表里面的其中一个元素

正如所见,SQL的通配符很有用。但这种功能 是代价的,即通配符搜索一般比前面讨论的其他 搜索要耗费更长的处理时间。这里给出一些使用通 配符时要记住的技巧。

不要过度使用通配符。

如果其他操作符能达 到相同的目的,

应该使用其他操作符。

在确实需要使用通配符时,也尽量不要把它 们用在搜索模式的开始处。

把通配符置于开 始处,搜索起来是最慢的。

仔细注意通配符的位置。如果放错地方,可 能不会返回想要的数据。 总之,通配符是一种极其重要和有用的搜索工 具,以后我们经常会用到它

六、创建计算字段

1、执行算术计算

SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM OrderItems WHERE order_num = 20008;

七、使用数据处理函数

这个非常多,可以用到再去查询

1、文本操作函数

2、日期时间处理函数

3、数值处理函数

八、汇总数据

1、聚合函数

 这里只做一个例子,后续的参考着写就行

select avg(price) as avg_price from shop;

九、分组数据(group by   having)

SELECT vend_id, COUNT(*) AS num_prods FROM Products GROUP BY vend_id;

1、过滤分组

having和where的方法是相同的,用来过滤一些数据

SELECT cust_id, COUNT(*) AS orders FROM Orders GROUP BY cust_id HAVING COUNT(*) >= 2;

说明:HAVING和WHERE的差别 这里有另一种理解方法,WHERE在数据分组前进 行过滤,HAVING在数据分组后进行过滤。这是 一个重要的区别,WHERE排除的行不包括在分组 中。这可能会改变计算值,从而影响HAVING子 句中基于这些值过滤掉的分组。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值