SELECT语句基础
1.查询指定列:SELECT关键字
--语法:
--SELECT <列名>,…… --希望查询列的名称
--FROM <表名> --指定选取数据的表
--从Shohin中取 3 列
SELECT shohin_id,shohin_mei,hanbai_tanka --列的顺序可以任意指定,逗号(",")分隔,查询结果的顺序和 SELECT 子句中的顺序相同
FROM Shohin;
2.查询表的所有列:星号(*)
--语法
--SELECT * --星号(*)代表所有列
--FROM <表名>;
【备注】使用星号(*)的话就无法设定列的显示顺序
3.为列设定别名:AS关键字
SELECT shohin_id AS Id,shohin_mei AS Name,shiire_tanka Price
FROM Shohin; --不用AS关键字也可以
SELECT shohin_id AS "编号",shohin_mei AS '名称',shiire_tanka '价格'
FROM Shohin; --设定汉语别名:加上双引号(")或单引号(')
4.常数的查询
SELECT '产品' AS Product,
38 AS Price,
'2016-09-30' AS '生产日期'
【备注】字符串和日期使用单引号(')。
5.从结果中删除重复行:DISTINCT
(1) SELECT DISTINCT shobin_bunrui FROM dbo.Shohin;
(2) SELECT DISTINCT shiire_tanka FROM dbo.Shohin; --DISTINCT 对 NULL 类型的处理:存在多条NULL值得行时,会结合为一条NULL数据。
(3)多列之前使用DISTINCT
SELECT DISTINCT shobin_bunrui,torokubi
FROM dbo.Shohin
--DISTINCT 会将多个列的数据进行组合,将重复的数据结合为一条。
--【注意】DISTINCT关键字只能用在第一个列名之前。
6.筛选记录:WHERE
WHERE 子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于这个数字”等条件,找出只符合该条件的记录。
--语法:
--SELECT <列名>,……
--FROM <表名>
--WHERE <条件表达式>;
SELECT shohin_id,shohin_mei,shohin_bunrui
FROM dbo.Shohin
WHERE shohin_bunrui = '衣服'; --shouhin_bunrui = '':为条件表达式
【备注】WHERE子句:首先通过该子句查询出符合指定条件的记录,再选取出SELECT语句指定的列
【注意】SQL子句的书写格式是固定的,不能随意更改。如WHERE子句必须紧跟在FROM子句后。
7.注释的写法
-- 单行注释
/*
多行
注释
*/
算法运算符和比较运算符
1.算术运算符
SELECT shobin_mei,hanbai_tanka,hanbai_tanka*2 AS 'hanbai_tanka_x2'
FROM dbo.Shohin;
2.比较运算符
= <> >= > <= <
--示例1:
SELECT shohin_mei,shobin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka = 500;
--示例2:
SELECT shobin_mei,shohin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka <> 500;
--示例3:
SELECT shobin_mei,shobin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka != 500
--示例4:
SELECT *
FROM dbo.shobin
WHERE hanbai_tanka - shiire_tanka >=500;
3.对字符串使用不等号的注意事项
--DDL:创建表
CREATE TABLE Chars
(chr CHAR(3) NOT NULL,
PRIMARY KEY (chr));
--DML:插入数据
INSERT INTO Chars VALUES ('1');
INSERT INTO Chars VALUES ('2');
INSERT INTO Chars VALUES ('3');
INSERT INTO Chars VALUES ('10');
INSERT INTO Chars VALUES ('11');
INSERT INTO Chars VALUES ('222');
--示例:选取出大于'2'的数据的SELECT语句
SELECT *
FROM dbo.Chars
WHERE chr > '2';
【注意】chr为字符串类型,对字符串类型的数据比较大小时,跟数字不一样。
4.不能对NULL使用比较运算符
--示例1:
SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shiire_tanka = NULL; --错误的 SELECT 语句
--示例2
SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shiire_tanka IS NULL; --选取 NULL 的记录
--示例3
SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shiire_tanka IS NOT NULL; --选取不为 NULL 的记录
【注意】希望选取NULL记录时,使用IS NULL;希望选取不是NULL的记录时,使用IS NOT NULL。