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;