zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

技术圈高级认证,MySQL高级SQL语句,别藏了,就是你应该知晓的好文 上

2023-03-14 22:59:57 时间

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') ;

image

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');

image

SELECT

---- SELECT ---- 显示表格中一个或数个栏位的所有资料
语法: SELECT "栏位" FROM "表名";
SELECT Store_Name FROM Store_Info;

image

DISTINCT

---- DISTINCT ---- 不显示重复的资料
语法: SELECT DISTINCT "栏位" FROM "表名";
SELECT DISTINCT Store_Name FROM Store_Info;

image

WHERE

---- WHERE ---- 有条件查询
语法:SELECT "栏位” FROM "表名" WHERE "条件";
SELECT Store_Name FROM Store_Info WHERE Sales > 1000;

image

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);

image

IN

---- IN ---- 显示己知的值的资料
语法: SELECT "栏位" FROM "表名" WHERE "栏位" IN ('值1','值2', ...);
SELECT * FROM Store_Info WHERE Store_Name IN ('Los Angeles','Houston');

image

BETWEEN

---- BETWEEN ---- 显示两个值范围内的资料
语法:SELECT "栏位" FROM "表名" WHERE "栏位" BETWEEN '值1' AND '值2';
SELECT * FROM Store_Info WHERE Date BETWEEN '2020-12-06' AND '2020-12-10';

image

通配符

---- 通配符 ---- 通常通配符都是跟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;

image