目录
先创建两个表
use huo; 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','2022-5-05');
insert into store_info values('Houston','250','2022-5-07');
insert into store_info values('Los Angeles','300','2022-5-08');
insert into store_info values('Boston','700','2022-5-30');
SELECT
显示表格中一个或数个字段的所有数据记录
语法:SELECT "字段" FROM "表名";
SELECT Store_Name FROM store_info;
DISTINCT
不显示重复的数据记录
语法:SELECT DISTINCT "字段" FROM "表名";
SELECT DISTINCT Store_Name FROM store_info;
WHERE
有条件查询
语法:SELECT"字段"FROM"表名 "WHERE" 条件";
SELECT Store_Name FROM store_info WHERE Sales > 1000;
AND OR
且 或
语法:SELECT"字段"EROM"表名"WHERE"条件1"{[ANDIOR]"条件2"}+;
SELECT Store_Name FROM store_info WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200);
IN
显示己知的值的数据记录
语法:SELECT "字段" ROM "表名" WHERE "字段" IN(值1,'值2',...);
SELECT * FROM store_info WHERE Store_Name IN ('Los Angeles','Houston');
BETWEEN
显示两个值范围内的数据记录
语法:SELECT"字段"TROM"表名"WHERE"字段"BETWEEN值1AND1值2; SELECT * FROM store_info WHERE Date BETWEEN '2022-5-05' AND '2022-5-08';
通配符
通常通配符都是跟 LIKE 一起使用的
通配符 | 含义 |
---|---|
% | 百分号表示零个、一个或多个字符 |
_ | 下划线表示单个字符 |
A Z | 所有以'A'起头,另一个任何值的字符,且以,'Z'为结尾的宁符串.例如,'ABZ'和'A2Z'都符合这一个模式,而'AKKZ'并不符合(因为在A和Z之间有两个字符,而不是一个字符). |
ABC% | 所有以,'ABC'起头的字符串.例如'ABCD'和'ABCABC'都符合这个模式. |
%XYZ | 所有以'XYZ'结尾的字符串.例如,'WXYZ'和'ZZXYZ'都符合这个模式 |
%AN% | 所有含有'AN'这个模式的字符串.例如,'LOS ANGELES'和'SAN FRANCISCO'都符合这个模式 |
_AN% | 所有第二个字母为,'A'和第三个字母为'N'的字符串.例如,'SAN FRANCISCO'符合这个模式,而'LOS ANGELES'则不符合这个模式 |
LIKE
匹配一个模式来找出我们要的数据记录
语法:SELECT "字段" FROM "表名" WHERE "字段" LIKE{模式};
SELECT * FROM store_info WHERE Store_Name like '%os%';
SELECT * FROM store_info WHERE Store_Name like 'Lo%';
SELECT * FROM store_info WHERE Store_Name like '_o%n';
ORDER BY
按关键字排序
语法:SELECT "字段" ROM "表名" [WHERE "条件"] ORDER BY "字段"[ASC,DESC]; #ASC是按照升序进行排序的,是默认的排序方式.
#DESC是按降序方式进行排序.
SELECT Store_Name,Sales,Date FROM store_info ORDER BY Sales DESC;
SELECT Store_Name,Sales,Date FROM store_info ORDER BY Sales;
函数
数学函数
函数 | 含义 |
---|---|
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) | 返回大于或等于 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.8,3,6,2.1);
聚合函数
函数 | 含义 |
---|---|
avg() | 返回指定列的平均值 |
count() | 返回指定列中非 NULL 值的个数 |
min() | 返回指定列的最小值 |
max() | 返回指定列的最大值 |
sum(x) | 返回指定列的所有值之和 |
SELECT avg(Sales) FROM store_info;
select count(name) from info;
SELECT count(DISTINCT name