#####一、直接量mysql
select '直接量', host, user from mysql.user;
#####二、计算两个列的合sql
select 'Totle number: ', list1+ list2 from table_name;
#####三、打印显示列的别名函数
select list1 AS '别名' from table_name;
#####四、链接多个列ui
select CONCAT(list1, ' ', list2) AS '别名' from table_name;
#####五、表的别名code
select * from table_name AS 别名; #表的别名不须要加引号
#####六、查看带有空格的列排序
select `list name` from table_name;
##函数使用(字符函数) #####一、LEFT(显示列最左边的三个字符)图片
select LEFT(listtname, 3) from table_name;
#####二、RIGHT(显示列最右边的三个字符)it
select RIGHT(listtname, 3) from table_name;
#####三、SUBSTRING(显示左边第三个字符到第八个字符的值)io
select SUBSTRING(listname, 3, 8) from table_name;
#####四、LTRIM(去掉列左边的空格)table
select LTRIM(listname) from table_name;
#####五、RTRIM(去掉列右边的空格)
select RTRIM(listname) from table_name;
#####六、UPPER(把全部小写转换为大写)
select UPPER(listname) from table_name;
#####七、LOWER(把全部大写转换为小写)
select LOWER(listname) from table_name;
#####八、CONCAT(链接多个列)
select CONCAT(list1, list2, list3, list4) from table_name;
##函数使用(复合函数)
select RIGHT(RTIRMR(listtname), 5) from table_name;
##函数使用(日期/时间函数) #####一、NOW
select NOW();
##函数使用(数值函数) #####一、ROUND(对任意数值进行四舍五入)
select ROUND(list_name, 0) from table_name; #值为0时,表示没有小数位 #值为负数时,表示对小数点左侧前几位进行四舍五入 # 值为正数时,表示将数字四舍五入到指定的那么多个小数位
#####二、RAND(产生一个随机数)
select RAND(); select RAND(listname) from table_name;
#####三、PI(返回一个圆周率数值)
select PI();
#####四、CAST(转换函数)
select CAST(listname as DATETIME) AS '别名' from table_name;
#####五、IFNULL(把一个空值转换为一个有意义的值)
select IFNULL(listname, 'number') from table_name;
##排序数据 #####一、ORDER BY DESC
select list1, list2 from table_name ORDER BY list1; select list1, list2 from table_name ORDER BY list1 DESC; #降序排序 select * from table_name ORDER BY list1, list2; #根据多个列进行排序 select CONCAT(list1, ' ', list2) as '别名' from table_name ORDER BY 别名; #根据计算字段和别名进行排序
##基于列的逻辑 #####一、CASE WHEN THEN ELSE END (简单格式---对单一的列)
select CASE listtname WHEN 'V' THEN 'Version' WHEN 'S' THEN 'Some' ELSE 'Just so so' END as 'Bag' from table_name;
#####二、CASE WHEN THEN ELSE END (查询格式---对多个列)
select CASE WHEN list1='V' THEN 'Version' WHEN list2='S' THEN 'Some' ELSE 'Just so so' END as 'Bag' from table_name;
##基于行的逻辑 #####一、WHERE
select * from list_name where user = 'root'; select * from list_name where number > 5; #number大于5 select * from list_name where number < 5; #number 小于5 select * from list_name where number >= 5; #number 大于等于5 select * from list_name where number <= 5; #number 小于等于5 select * from list_name where number != 5; #number 不等于5
#####二、LIMIT(限制输出行数)
select host, user from mysql.user limit 2; select * from table_name ORDER BY list_name DESC LIMIT 5; #对list_name进行倒序排序,只取5行数据
##布尔逻辑 一、AND OR NOT BETWEEN IN IS NULL
select * from table_name where state >= 5 AND state <=20; #state的值大于等于5可是小于等于20 select * from table_name where state BETWEEN 5 AND 20; #该语句同上面一条结果相同 select list1, list2 from table_name where state NOT BETWEEN state 5 AND 20; #取反 select * from table_name where state = 'LI' OR state = 'YN'; #state值为LI,或者state值为YN select * from table_name where state IN ('LI', 'YN'); #该语句同上面一条结果相同 select list1, list2 from table_name where state NOT IN ('LI', 'YN'); #取反 select list1, list2 from table_name where list_name IS NULL; #取值为空的行 select list1, list2 from table_name where list_name IS NOT NULL #取值不为空的行
##模糊匹配,使用表以下: ####一、LIKE
select * from SongTitles WHERE Artist LIKE '%Beat%' ; #查找包含Beat的行 select * from SongTitles WHERE Artist LIKE '_he%'; #查找开头为任意字符,后面跟着he字符的行 # '%' 号为任意多个字符,'_'号为单个字符
##数据汇总, 使用表以下:Fees, Grades
####一、DISTINCT(消除重复)
select DISTINCT Student from Grades; #消除Student列的重复值 select DISTINCT CONCAT(Student, ' ', GradeType) AS 'Clear' from Grades; # 链接二个列,并消除重复的行
####二、SUM(计算合)
select SUM(Fee) AS 'TotalGym Fee: ' from Fees WHERE FeeType='Gym'; #计算全部学生的健身费用总合
####三、AVG(计算平均值)
select AVG(Grade) from Grades WHERE GradeType='Quiz'; #计算Quiz的平均成绩
####四、MIN(计算最小值)
select MIN(Grade) from Grades WHERE GradeType='Quiz'; #计算Quiz的最小成绩
####五、MAX(计算最大值)
select MAX(Grade) from Grades WHERE GradeType='Quiz'; #计算Quiz的最大成绩
####六、AVG, MIN, MAX,SUM
select AVG(Grade) AS '平均值: ', MAX(Grade) AS '最大值: ', MIN(Grade) AS '最小值: ', SUM(Grade) AS '总合: ' from Grades WHERE GradeType='Quiz'; #计算Quiz的平均值,最大值,最小值,总合。
####七、COUNT (计算行数)
select COUNT(*) from Grades WHERE GradeType ="Homework"; #显示GradeType为Homework的全部行数 select COUNT(DISTINCT FeeType) from Fees; #取消FeeType列重复的值,而后计算行数
####八、GROUP BY (分组数据)
select GradeType AS 'Group: ', MAX(Grade), MIN(Grade), SUM(Grade), AVG(Grade) from Grades GROUP BY GradeType; #根据GradeType列分组,而且计算平均值,最大值,最小值,总合。
####九、聚合查询条件
select Student, GradeType, AVG(Grade) from Grades WHERE GradeType='Quiz' GROUP BY Student, GradeType HAVING AVG(Grade)>=71.5; #根据Student,GradeType两个列进行分组而且计算出平均值,而后查询GradeType列为‘Quiz’的行,最后显示Grade列平均值大于71.5的行。