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。