本章节所用表来自此资源,请自行下载
链接:https://pan.baidu.com/s/1-FLtGR84ebXPt-PkjSRt1A
提取码:vw58
自行创建数据库,导入资源内文件,使用dos命令查看数据库表如下:
用正则表达式进行搜索
一、使用MySQL正则表达式
1.基本字符的匹配
使用 REGEXP 关键字
select prod_name from products where prod_name regexp ‘1000’ order by prod_name;
显示结果如下:
其中regexp关键字后边跟的‘1000’就是一个正则表达式
语句分析:
这条语句表示从products表中检索prod_name中含有1000的prod_name,最后按照prod_name排序
语法:select … from…where … regexp 正则表达式 ….
2.进行or匹配
正则表达式中搜索两个串之一使用 | ,例子如下:
select prod_name from products where prod_name regexp “1000|2000” order by prod_name;
显示结果如下:
语句分析:
这条语句中表示从products表中检索prod_name中含有1000或者2000的prod_name,最后按照prod_name排序
语法:select … from…where … regexp (”正则表达式1”|”正则表达式2|3|…”) ….
3.匹配几个字符之一
想要匹配特定的字符可以使用 [ ] 来完成 ,例子如下:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] ton’ ORDER BY prod_name;
显示结果如下:
语句分析:
这条语句中表示从products表中检索prod_name中含有1 ton或者2 ton或者3 ton的prod_name,最后按照prod_name排序
语法:select … from…where … regexp ‘[…] ..’ ….
4.匹配范围
select prod_name from products where prod_name regexp ‘[0-9] ton’ order by prod_name;
显示结果如下:
语句分析:
这条语句中表示从products表中检索prod_name中含有1 ton或者2 ton或者3 ton或者…..9 ton的prod_name,最后按照prod_name排序
5.匹配特殊字符
例如匹配包含‘.’的字符
select vend_name from vendors where vend_name regexp ‘.’ order by vend_name;
这显然不是我们期望的结果,其实‘.’表示匹配任意字符,但是我们想要匹配名字中带有‘.’的数据就需要加上转义字符“\”
再次尝试:**
select vend_name from vendors where vend_name regexp ‘\.’ order by vend_name;
结果对比如下:
创建计算字段
一、计算字段
二、拼接字段
1、concat字段拼接
想要将两个列拼接起来,在MySQL中我们使用concat()来完成
select Concat(vend_name,’(‘,vend_country,’)’) from vendors order by vend_name;
显示结果如下:
2、使用别名
mysql中我们使用as来进行对返回的数据列名修改别名;
select Concat(vend_name,’(‘,vend_country,’)’) as nameAndCountry from vendors order by vend_name;
显示结果如下:
三、执行算数计算
select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems;
显示结果如下:
使用函数
一、文本处理函数
二、日期和时间函数处理
三、数值处理函数
数据汇总
一、聚合函数
常见的聚合函数如下:
这些都是我们经常用到然后必须牢记的聚集函数。
下面进行一一介绍:
1.平均值函数
select avg(prod_price) as avg_price from products;
SQL分析:查询products表中prod_price的平均值,并以avg_price做别名
显示结果如下:
2.查询某列行数
select count(*) as num_cust from customers;
显示结果如下:
3.最大值
select max(prod_price) as max_price from products;
显示结果如下:
4.最小值
select min(prod_price) as max_price from products;
显示结果如下:
5.求和函数
select sum(prod_price) as max_price from products;
显示结果如下:
**




