Mysql笔记
一、检索数据(SELECT)
1、检索单列
SELECT prod_name
FROM products;
2、检索多个列
SELECT prod_id,prod_name,prod_price
FROM products;
3、检索所有列
SELECT *
FROM products;
4、检索不同行
去重
SELECT DISTINCT vent_id
FROM products;
5、限制结果
返回不多于5行
SELECT prod_name
FROM products
LIMIT 5;
下一个5行
SELECT prod_name
FROM products
LIMIT 5,5;
6、限定列名
限定属于products表的prod_name
限定属于Mydb数据库中的products表
SELECT products.prod_name
FROM Mydb.products;
二、排序检索数据(ORDER BY)
1、排序数据
SELECT prod_name
FROM products
ORDER BY prod_name;
2、按多个列排序
先按价格排序 价格相同再按名称排序
SELECT prod_ID,prod_price,prod_name
FROM products
ORDER BY prod_price,prod_name;
3、指定排序方向
按降序排序
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC;
三、过滤数据(WHERE)
1、使用WHERE子句
SELECT prod_name,prod_price
FROM products
WHERE prod_price=2.50;
2、WHERE子句操作符
操作符 说明
———————————————————————————————————
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定两个值之间
2.1、检查单个值
返回prod_name='fuses’的行
SELECT prod_name,prod_price
FROM products
WHERE prod_name = 'fuses'
列出价格小于10美元的所有产品
SELECT prod_name,prod_price
FROM products
WHERE prod_price < 10;
列出价格小于等于10美元的所有产品
SELECT prod_name,prod_price
FROM products
WHERE prod_price <= 10;
2.2、不匹配检查
列出不是由供应商1003制造的所有产品
SELECT vent_id,prod_name
FROM products
WHERE vent_id <> 1003;
2.3、范围值检查(BETWEEN)
输出价格在5美元和10美元之间的所有产品
SELECT prod_name,prod_price
FROM products
WHERE prod_price BETWEEN 5 AND 10
2.4、空值检查(NULL)
SELECT prod_name
FROM products
WHERE prod_price IS NULL
四、数据过滤
1、组合WHERE子句
1.1、AND操作符
SELECT prod_id,prod_price,prod_name
FROM products
WHERE vent_id=1003 AND prod_price <=10
1.2、OR操作符
SELECT prod_name,prod_price
FROM products
WHERE vent_id = 1002 OR vent_id = 1003;
1.3、计算次序
列出价格10美元以上,由1002或1003制造的所有产品
AND优先级高于OR
错误例子:
SELECT prod_name,prod_price
FROM products
WHERE vent_id = 1002 OR vent_id = 1003 AND prod_price>=10;
正确例子:
SELECT prod_name, prod_price
FROM products
WHERE (vent_id = 1002 OR vent id = 1003) AND prod_price >=10;
2、IN操作符
合法的取值全部括在圆括号内
SELECT prod_name, prod_price
FROM products
WHERE vent_id IN (1002,1003)
ORDER BY prod_name;
3、NOT操作符
SELECT prod_name, prod_price
FROM products
WHERE vent_id NOT IN (1002,1003)
ORDER BY prod_name;
五、用通配符进行过滤
1、LIKE操作符
1.1、百分号(%)通配符
%任何字符出现任意次数
比如找出以词jet起头的产品
SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE 'jet%';
通配符可以在搜索模式中任意位置使用
SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE '%anvil%';
找出以以s起头以e结尾的所有产品
SELECT prod_name
FROM products
WHERE prod_name LIKE 's%e';
注意%不能匹配NULL值
1.2、下划线(_)通配符
下划线(_)只匹配单个字符
SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE '_ ton anvil';