1. SELECT:查询内容,语法:SELECT 列名称 FROM 表名称
为嘉禾等地区用户提供了全套网页设计制作服务,及嘉禾网站建设行业解决方案。主营业务为成都网站制作、成都网站建设、嘉禾网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
2. SELECT DISTINCT 查询非重复内容,语法:SELECT DISTINCT 列名称 FROM 表名称
3. WHERE 查询条件, 子句中可以指定任何条件,条件与条件之间用and 和 or 隔开
语法:SELECT 列名称 FROM 表名称 WHERE条件1 AND 条件2
4. AND 和 OR 运算符,将 WHERE 中的多个条件结合起来。操作符包括:=(等于)、或=!(不等于)、(大于)、(小于)、=(大于等于)、=(小于等于)
空值条件:IS NULL;非空值IS NOT NULL;查询多个值IN()
5. ORDER BY 排序,默认为升序,字段后加DESC为降序
6. GROUP BY 分组 ,对结果进行分组
7. LEFT JOIN 左连接,两张表合并保留左表的全部内容,只要掌握左连接
语法:SELECT列名称 FROM 表1 LEFT JOIN 表2 ON 表1.某列 = 表2.某列
了解:RIGHT JOIN(右连接),INNER JOIN(内连接)、FULL JOIN(全连接)
8. UNION all上下合并,两张表上下合并(了解)
9. LIKE 模糊查询(了解)
语法: SELECT 列名称 FROM 表名称 WHERE 某列 like “%字符%”
10.SUM 求和
语法:SELECT SUM(列名称) FROM 表名称
11. COUNT 计数
语法:SELECT COUNT(列名称) FROM 表名称
12. IF 判断 语法:同excel
13. MIN,MAX等
14. round 四舍五入
15. concat 字符串连接
16. UPDATE:修改内容,语法:update 表名 set 修改字段= 新内容 where 修改条件
17. substring 字符串截取
18. cast 定义数值类型(了解)
19. CASE … WHEN … THEN …. END 满足某一个条件时执行/替换,可用于条件计数
20. DATEDIFF 两个日期之间间隔的天数
21. SUBDATE 日期往前数 ,语法:SUBDATE(date,INTERVAL expr unit)
例子:SUBDATE(“2018-10-1”,INTERVAL 1 day) 代表10月1日往前数1天,结果是9月30;SUBDATE(“2018-10-1”,INTERVAL 1 month) 代表10月1日往前数1月,结果是2018-9-1
mysql select * from test;
+----+-----+
| id | val |
+----+-----+
| 1 | 1+2 |
| 2 | 2+3 |
| 3 | 3+4 |
+----+-----+
3 rows in set (0.00 sec)
mysql SELECT SUBSTRING_INDEX(val,'+',1) AS a,SUBSTRING_INDEX(val,'+',-1) AS b F
ROM test;
+------+------+
| a | b |
+------+------+
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
+------+------+
3 rows in set (0.00 sec)
你可以利用这种方法试一下。
update 表名 set C=substr(B,A,1)
这样腻?
你A是数字,不是字符吧?
mysql经常会用来查询特定字段,偶尔会需要展示特定字段中值的某部分,然后还有模糊查询的时候,如果需要匹配中间的某部分值,这个时候like就很尴尬,会多出一些不相干的记录
一、获取特定的几位:
1、取url字段后三位字符
select SUBSTRING(url, -3) from link;
#这种只能针对固定长度,比说url共8个字符,可以下面这种写法
select RIGHT(`url`,length(`url`)-5) from link;
2、从左开始第3位取(包括第三位)
select SUBSTRING(url, 3) from link;
3、取左边的3位
select SUBSTRING(url, 1, 3) from link;
#这种只能针对固定长度,比说url共8个字符,可以下面这种写法
select LEFT(`url`,length(`url`)-5) from link;
4、中间截取(从第1位开始取7位,如sDate字段值是 2013-06-07)
select SUBSTRING(sDate, 1,7) from forumdata;
查询结果就是 2013-06
二、查询特定的几位:
1、正常的模糊查询
select * from cm_order where ordersn like '%31%';
2、一个字段共有13位,查询倒数四五位为31的
select * from cm_order where SUBSTRING(ordersn, 9,2) = 31;
SELECT * from cm_order where RIGHT(`ordersn`,length(`ordersn`)-8) like '31%';
这种如果正常的模糊查询会出来很多不相干的数据,但是这种只能针对定长的模糊查询,效率方面比正常的模糊查询好很多。
一个表一个表,一个字段一个字段的去查,比如:select * from 表1 where 字段1=值
把表导入到sql文件里面,然后打开这个文件,用"查找"的功能找这个值。但是如果表和数据库很大的话,恐怕也不容易导出和打开这个sql文件。
用左右连接就可以了。left join ,right join ,inner join 关联查询就可以