MySQL 19个必掌握查询核心技术

假设products是一张数据表

1)查询列

SELECT prod_name FROM products;

MySQL语句以;好结束。可以有多列,列名之间使用“,”分割开来;FROM表示使用的表。

2)检索所有的列。能够检索出表中未知的列

SELECT * FROM products;

3)消除检索中相同的行

SELECT DISTINCT vend_id FROM products;

如果DISTINCT后面跟了不止一个列,DISTINCT作用于每一个列,DISTINCT的作用是消除相同的行。

4)用于限制检索出来的行数。意思是从第x行开始的y行。

SELECT prod_name FROM products LIMIT x, y;

5)使用完全限定

SELECT products.prod_name FROM crashcourse.products;

product表示一张表,crashcourse表示一个数据库,数据库中有products表。

6)根据单列排序

select prod_name from products order by prod_name;

默认的排序方向是英语字母升序排列,排序使用的列可以是非检索的列。

7)根据多列排序

SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price, prod_name;

排序完全按照语句中列的顺序进行,即后面列的排序是在前面排序结果的基础上面进行。ORDER BY子句位于FROM之后,LIMIT之前,位置不当会产生错误信息。

8)按列降序排序

SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price ASC/DESC,prod_name;

ASC指定为按照字母升序排列,默认的;DESC指定为降序排列。当有多个列排序时,一个DESC/ASC只作用于一个列。

9)过滤数据1

SELECT products, prod_price FROM products WHERE prod_price = 2.50;

WHERE子句位于FROM之后,ORDER BY子句之前。

10)过滤数据2

SELECT prod_name, prod_price FROM products WHERE prod_name = 'fuses';

11)范围值检查

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

第一个为开始值,第二个为结束值,该范围中包括这两个值。

12)AND操作符

SELECT  prod_id,prod_price,prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;

and用来指示检索满足所有给定条件的行。

13)OR操作符

SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003;

or表示匹配任意给定条件。

14)AND操作符和OR操作符的计算次序

SELECT prod_name,prod_price FROM products WHERE vend_id = 1024 OR vend_id = 1003 AND prod_price >= 10;

AND优先级高于OR。建议:无论使用默认的优先级次序还是使用括号改变计算优先次序,都建议使用括号。

15)IN操作符

select prod_name, prod_price from products where vend_id in (1002, 1003) order by prod_name;

in表示匹配其中之一。

16)NOT操作符

select prod_name, prod_price from products where vend_id not in (1002, 1003) order by prod_name;

WHERE子句中用来否定后跟条件的关键字。MySQL支持使用NOT对IN,BETWEEN和EXISTS子句进行取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别。

17)使用通配符匹配

SELECT prod_id,prod_name FROM products WHERE prod_name LIKE 'jet%';

由通配符或者通配符和字面值共同组成的搜索条件。通配符匹配从字符串首端开始进行模式匹配,不是从串的中间某个位置开始匹配。

18)%通配符

SELECT prod_id,prod_name FROM products WHERE prod_name LIKE '%anvil%';

尽量不使用通配符,因为通配符执行起来很慢;尽量不在搜索模式开始处使用通配符,开始处的通配符搜索起来最慢。

19)_(下划线)通配符:匹配单个字符。

SELECT prod_id,prod_name FROM products WHERE prod_name LIKE '_ ton anvil';

 

注意:1)MySQL运算符

操作符说明
=等于
<>  或   !=不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN在指定的两个值之间

2)关系数据库设计理论认为,如果没有明确规定检索结果的排序方式,检索结果没有顺序之分;MySQL中也没有顺序之分。

3)在SQL中,有的区分大小写,有的不区分大小写,所以应该按照规范书写SQL语句。

4)mySQL第一行为行0。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值