对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如只取 10 条数据、对查询结果进行排序或分组等等,今天就给大家分享MySQL一些常用高级SQL语句,感兴趣的朋友一起看看吧
MySQL高级SQL语句
use kgc; create table location (Region char(20),store_name char(20)); insert into location values ('East','Boston') ; insert into location values ('East','New York'); insert into location values ('west','Los Angeles'); insert into location values ('west','Houston') ;
create table Store_Info (Store_Name char(20),sales int(10),Date char(10)); insert into Store_Info values ('Los Angeles','1500','2020-12-05'); insert into Store_Info values ('Houston','250','2020-12-07'); insert into Store_Info values ('Los Angeles','300','2020-12-08'); insert into Store_Info values ('Boston','700','2020-12-08');
SELECT
---- SELECT ---- 显示表格中一个或数个栏位的所有资料 语法: SELECT "栏位" FROM "表名"; SELECT Store_Name FROM Store_Info;
DISTINCT
---- DISTINCT ---- 不显示重复的资料 语法: SELECT DISTINCT "栏位" FROM "表名"; SELECT DISTINCT Store_Name FROM Store_Info;
WHERE
---- WHERE ---- 有条件查询 语法:SELECT "栏位” FROM "表名" WHERE "条件"; SELECT Store_Name FROM Store_Info WHERE Sales > 1000;
AND OR
---- AND OR ---- 且 或 语法:SELECT "栏位" FROM "表名” WHERE "条件1" {[ANDIOR] "条件2"}+; SELECT Store_Name FROM Store_Info WHERE Sales > 1000 OR (Sales <500 and sales> 200);
IN
---- IN ---- 显示己知的值的资料 语法: SELECT "栏位" FROM "表名" WHERE "栏位" IN ('值1','值2', ...); SELECT * FROM Store_Info WHERE Store_Name IN ('Los Angeles','Houston');
BETWEEN
---- BETWEEN ---- 显示两个值范围内的资料 语法:SELECT "栏位" FROM "表名" WHERE "栏位" BETWEEN '值1' AND '值2'; SELECT * FROM Store_Info WHERE Date BETWEEN '2020-12-06' AND '2020-12-10';
通配符
---- 通配符 ---- 通常通配符都是跟LIKE一起使用的 % : 百分号表示零个、一个或多个字符 _ : 下划线表示单个字符 'A_Z':所有以‘A'起头,另一个任何值的字符,且以Z'为结尾的字符串。例如,'A.BZ'和‘A.22'都符合这一个模式,而‘AKK2'并不符合(因为在A和Z之间有两个字符,而不是一个字符)。 'ABC%':所有以'ABC'起头的字符串。例如,'ABCD'和'ABCABC'都符合这个模式。 '%XYZ':所有以'XYZ'结尾的字符串。例如,'WXYZ'和‘ZZXYZ'都符合这个模式。 '%AN%':所有含有'AN'这个模式的字符串。例如,'LOS ANGELES'和'SAN FRANCISCO'都符合这个模式。 '_AN%':所有第二个字母为‘A'和第三个字母为'N'的字符串。例如,'SAMN FRANCITSCO'符合这个模式,而'LOS ANGELES'则不符合这个模式。 ---- LIKE ---- 匹配一个模式来找出我们要的资料 语法:SELECT "栏位" FROM "表名" WHERE "栏位" LIKE {模式}; SELECT * FROM Store_Info WHERE Store_Name like '%os%'; ---- ORDER BY ---- 按关键字排序 语法:SELECT "栏位" FROM "表名" [WHERE "条件"] ORDER BY "栏位" [ASC,DESC]; #ASC是按照升序进行排序的,是默认的排序方式。 #DESC是按降序方式进行排序。 SELECT Store_Name,Sales,Date FROM Store_Info ORDER BY Sales DESC;
函数 数学函数
abs(x) #返回x的绝对值 rand() #返回0到1的随机数 mod(x,y) #返回x除以y以后的余数 power(x,y) #返回x的y次方 round(x) #返回离x最近的整数 round(x,y) #保留x的y位小数四舍五入后的值 sqrt(x) #返回x的平方根 truncate(x,y) #返回数字x截断为y位小数的值 ceil(×) #返回大于或等于x的最小整数 floor(x) #返回小于或等于x的最大整数 greatest(x1,x2...) #返回集合中最大的值 least(x1,x2...) #返回集合中最小的值 SELECT abs(-1),rand(),mod(5,3),power(2,3),round(1.89); SELECT round(1.8937,3),truncate(1.235,2),ceil(5.2),floor(2.1),least(1.89,3,6.1,2.1);
聚合函数
聚合函数: avg() #返回指定列的平均值 count() #返回指定列中非 NULL值的个数 min() #返回指定列的最小值 max() #返回指定列的最大值 sum(x) #返回指定列的所有值之和 SELECT avg(Sales) FROM Store_Info; SELECT count(store_N以上就是MySQL一些常用高级SQL语句的详细内容,更多请关注0133技术站其它相关文章!