为了更好的学习SQL语句,我们先来设定几张表格:
Store_Info表:
store_name | sales | Date |
A | 500 | 01-01-2000 |
B | 200 | 02-01-2000 |
A | 1500 | 02-10-2000 |
D | 1000 | 03-08-2000 |
Country_Info表:
English_name | China_name |
Amercia | 美国 |
China | 中国 |
Japan | 日本 |
Armenia | 亚美尼亚 |
SELECT 一个最常用的方式是将资料从数据库中的表格内选出。即 SELECT "表中参数名" FROM “表格名”。比如,我们要查Store_Info表中的商品名称store_name,SQL语句就可以这样写 SELECT store_name FROM Store_Info; 结果就能得到
store_name |
A |
B |
A |
D |
我们从结果发现,查到的商品名称中出现了重复的商品,而我们可能只需要查所有不同的商品名称,我们只要把上面的结果做去重就行了。怎么做呢?很简单,只要在原先的SQL语句中加入DISTINCT就可以了。即 SELECT DISTINCT "表中参数名" FROM “表格名”。SQL语句我们这样写 SELECT DISTINCT tore_name FROM Store_Info;
store_name |
A |
B |
D |
很多时候,我们并不是要查出表格内全部的商品名称,而是想查某一个商品或某一范围内的商品,那么这时就需要用到WHERE这个指令。即 SELECT "表中参数名" FROM “表格名” WHERE "条件"。SELECT store_name FROM Store_Info WHERE Sales > 1000; 结果就能得到
store_name |
A |
D |
从上面的SQL语句看到WHERE 后面只写了一个条件,那么WHERE后面可以是两个条件或者多个条件吗?答案是肯定的,我们只要在一个条件后 加上 AND(或 OR) 就可以再加上一个条件。即 SELECT "表中参数名" FROM “表格名” WHERE "条件1" AND(或 OR) "条件2"。我们来试试查价格在1000以内,且时间是“02-01-2000”的商品 SELECT store_name FROM Store_Info WHERE Date = "02-01-2000" and Sales < 1000; 结果就能得到
store_name |
B |
上面我们都是知道了价格范围或具体时间,来查商品名称的。那么当我们知道了几个商品名称,怎么来查这些商品的信息呢?这时我们就可以用到 IN (在...里)。即 SELECT "表中参数名" FROM “表格名” WHERE "表中参数名" IN ('值1', '值2', ...)。我们来查下商品A、商品B的信息,要求是2000年2月份的。SELECT * FROM Store_Info WHERE store_name IN ('A', 'B') AND Date BETWEEN '02-01-2000' AND '02-29-2000'; 结果就能得到
store_name | sales | Date |
B | 200 | 02-01-2000 |
A | 1500 | 02-10-2000 |
在使用 IN 的条件,我们查到想要的结果,同时会发现,我们在SQL语句中使用了 BETWEEN '02-01-2000' AND '02-29-2000' 这样的条件,表示在02-01-2000到02-29-2000之间的所有时间。这也是在数据查询里面常用的一个查询条件。即 SELECT "表中参数名" FROM “表格名” WHERE "表中参数名" BETWEEN '值1' AND '值2'。
上面我们在查询的时候,条件基本上都是很明确的。那么如果我们不清楚具体的查询条件,而是只知道某个关键词,我们可以用SQL查想到的数据信息吗? 答案也是可以的。这就需要用到LIKE(像...)。即 SELECT "表中参数名" FROM “表格名” WHERE "表中参数名" LIKE {套式}。例如:查亚美尼亚的英文,我们只知道好像单词中有“men”。那我SQL语句就可以这样写 SELECT English_name From Country_Info WHERE English_name LIKE "%men%"; 结果就可以得到
English_name |
Armenia |
LIKE 后的 {套式} 有这样的集中写法:
1)‘A_Z’ 表示所有以A起头,且以Z结尾的字符串。如:'ABZ'、 'A到Z'、'ASDSDSADWEWQEQZ'等。
2)'ACD%' 表示所有以ACD起头的字符串。
3)'%XYZ' 表示所有以XYA结尾的字符串。
4)'%EFG%' 表示所有包含EFG的字符串。
到目前为止,我们就能简单的使用SQL语句查到我们想要的数据了,但工作中我们使用SQL语句查询的数据比较多,而且比较乱,如果能简单的排个顺序就好了。这时ORDER BY 语法就出现了,它可以让查出的结果数据 ASC 顺序排列,也可以DESC 倒序排列。即
SELECT "表中参数名" FROM “表格名” ORDER BY "表中参数名" DESC。如要查商品价格,且按倒序排列。SQL语句就可以这样写了 SELECT sales FROM Store_Info ORDER BY sales DESC; 结果可以得到
store_name | sales |
A | 1500 |
D | 1000 |
A | 500 |
B | 200 |
标签:语句,基本,name,表中,2000,SQL,WHERE,SELECT From: https://www.cnblogs.com/xiaocai84/p/17487029.html