MySQL学习笔记
一、基础语言
1、select
1.1 基础查询
示例表:
//查询表中所有数据
SELECT * FROM T_Product;
//查询表中某些字段
SELECT product_name,stock FROM T_Product;
//去除查询字段中的重复值
select distinct product_name from T_Product;
select distinct product_name from T_Product where price>55;
//根据条件查询
SELECT * FROM T_Product where product_name="java书";
1.2 根据查询条件
1.2.1 根据范围(BETWEEN AND)
查找属性值在指定范围内的元组
//查询库存在8-30之间的产品名称、价格、库存
SELECT product_name,price,stock FROM T_Product WHERE stock BETWEEN 8 AND 30;
查询库存不在8-30之间的产品名称、价格、库存
SELECT product_name,price,stock FROM T_Product WHERE stock NOT BETWEEN 8 AND 30;
1.2.2 确定集合(IN)
查找属性值属于指定集合的元组
SELECT product_name,price FROM T_Product WHERE VERSION IN (2019,2018);
SELECT product_name,price FROM T_Product WHERE VERSION NOT IN (2019,2018);
1.2.3 字符匹配(LIKE)
进行字符串的匹配:
语法:[NOT] LIKE ‘<匹配串>’ [ESCAPE ‘<换码字符>’]
<匹配串>可以是完整的字符串,也可以含有通配符%和_。
%代表任意长度的字符串。
_代表任意单个字符。
SELECT * FROM T_Product WHERE price LIKE 50.00;
SELECT product_name,price FROM T_Product WHERE note LIKE 'java%';
注意:若查询条件中的字符串本身就含有通配符 % 或 _,此时需要使用ESCAPE '<换码字符>'短语对通配符进行转义。
//此时%不再具有通配符的含义及作用
SELECT product_name,price FROM T_Product WHERE note LIKE 'java\%高级' ESCAPE '\';
1.2.4 空值查询(NULL)
SELECT product_name FROM T_Product WHERE price IS NULL;
注意: IS不能用(=)代替
1.2.5 多重条件查询
//and & or的应用
SELECT * FROM T_Product WHERE (product_name="java书" or stock=99) and price=55;
1.2.6 ORDER BY子句
对查询结果按照一个或多个属性列的升序或降序(DESC)排列,默认为升序
//产品名称按照字母顺序排序,价格反序排列
SELECT product_name,stock FROM T_Product order by product_name,stock DESC;
1.2.7 GROUP BY
GRO