select从表中选取数据时需要使用select语句,也就是只从表中选出(select)必要数据的意思。通过(select)语句查询并选取出必要数据的过程称为匹配查询或或查询(query)。
1、基本列的查询:
--查询一列或多列
select <列名>,<列名>,...
from <表名>;
--查询全部的列
select *
from <表名>;
查询多列时,需要使用逗号进行分隔,查询结果中列的顺序和select 子句中的顺序相同 。使用星号进行全部查询的话,就无法设定列的显示顺序,会按照表的顺序进行显示。
2、为列设置别名:
select <列名> as <别名>,<列名> as <别名>,...
from <表名>;
--例子:
select student_id as id
from student;
select student_id as "学号"
from student;
为列设置别名是,使用as关键字。别名可以使用中文,中文需要用双引号(")括起来。
3、常数的查询:
select '商品' as string, 38 as number, '2009-02-24' as date,product_id, product_name
from product;
第1列'商品' 是 字符串常数 ,第2 列38 是 数字常数 ,第3 列'2009-02-24' 是 日期常数,将与product_id列和product_name 列一起被查询出来。结果如下:
+--------+--------+------------+------------+--------------+
| string | number | date | product_id | product_name |
+--------+--------+------------+------------+--------------+
| 商品 | 38 | 2009-02-24 | 001 | T恤 |
| 商品 | 38 | 2009-02-24 | 0004 | 菜刀 |
| 商品 | 38 | 2009-02-24 | 0005 | 高压锅 |
| 商品 | 38 | 2009-02-24 | 0006 | 叉子 |
| 商品 | 38 | 2009-02-24 | 0007 | 擦菜板 |
| 商品 | 38 | 2009-02-24 | 0008 | 圆珠笔 |
+--------+--------+------------+------------+--------------+
4、查询结果删除重复项:
select distinct <列名>
from <表名>;
示例:
--不删除重复项:
select product_type
from product;
--查询结果:
+--------------+
| product_type |
+--------------+
| 衣服 |
| 厨房用具 |
| 厨房用具 |
| 厨房用具 |
| 厨房用具 |
| 办公用品 |
+--------------+
--删除重复项:
select distinct product_type
from product;
--查询结果:
+--------------+
| product_type |
+--------------+
| 衣服 |
| 厨房用具 |
| 办公用品 |
+--------------+
distinct在使用时null也被视为一类数据。
distinct也可以在多列之前使用,只能写在第一个列之前。
select distinct <列名>,<列名>,...
from <表名>;
--例子
select distinct type,color,...
from clothe;
--将type和color同时相同的查询记录合并为一条记录
5、使用where选择记录
select 语句通 where子句 来指定查询数据的条件, 在where子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于 这个数字”等条件。where的位置是固定的,只能在from后面。
select <列名>,...
from <表名>
where <条件表达式>;
--例子1
select product_name,product_type
from product
where product_type='衣服';
--解释:选择product_type='衣服'的记录,只显示product_name,product_type两列
--例子2
select product_name
from product
where product_type='衣服';
--解释:选择product_type='衣服'的记录,只显示product_name一列