MySql必知必会
1.检索数据-SELECT语句
1.1检索单个列
SELECT pro_name
FROM products;
1.2检索多个列
SELECT prod_id,prod_name,prod_price
FROM products;
1.3检索所有列
SELECT *
FROM products;
1.4检索不同的行
SELECT DISTINCT vend_id
FROM products;
DISTINCT关键字应用于所有列而不仅是前置它的列
若指定的列完全相同,则返回一行,否则全部检索
1.5限制结果
SELECT prod_name
FROM products
LIMIT 5;
返回前5行
带一个值是从第一行开始
SELECT prod_name
FROM products
LIMIT 5,5;
从5行开始的5行
第一个数为开始位置
第二个数为要检索的行数
注意
第一行为行0,因此 LIMIT 1,1表示检索出第二行
MySql 5的LIMIT语法
LIMIT 4 OFFSET 3 --等价于 LIMIT 3,4
从3行开始取4行
1.6使用完全限定的表名
SELECT product.prod_name
FROM crashcoures.products;
表名.字段名
数据库名.表名
2.排序检索数据
2.1排序数据
SELECT prod_name
FROM products
ORDER BY prod_name;
2.2按多个列排序
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price,prod_name;
检索3个列,并按其中的两个列对结果进行排序
首先按价格,再按名称排序(仅在多个行具有相同的价格时,才按名称排序)
2.3指定排序方向
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC;
按价格降序排序产品
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC,prod_name;
DESC 关键字只应用于直接位于其前面的列名
prod_price列以降序排序,而prod_name列按升序排序
与DESC相反的关键字时ASC(升序)
升序是默认的
SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;
位置SELECT--FROM--ORDER BY--LIMIT
最昂贵的物品的值
3.过滤数据
3.1使用WHERE子句
SELECT prod_name,prod_price
FROM products
WHERE prod_price = 2.50;
返回prod_price = 2.50的行
位置SELECT--FROM--WHERE--ORDER BY--LIMIT
3.2WHERE子句操作符
操作符 | 说明 |
---|---|
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
BETWEEN | 在指定的两个值之间 |
3.2.1检查单个值
SELECT prod_name,prod_price
FROM products
WHERE prod_name = 'fuses';
MySql在执行匹配时默认不区分大小写
字符串需要单引号来限定
SELECT prod_name,prod_price
FROM products
WHERE prod_price < 10;
3.2.2不匹配检查
SELECT vend_id,prod_name
FROM products
WHERE vend_id <> 1003;
SELECT vend_id,prod_name
FROM products
WHERE vend_id != 1003;
3.2.3范围值检查
SELECT prod_name,prod_price
FROM products
WHERE prod_price BETWEEN 5 AND 10;
BETWEEN 5 AND 10 等价于[5,10]
3.2.4空值检查
SELECT cust_id
FROM customers
WHERE cust_email IS NULL;