SQL 基础知识-查询基础

一、SELECT 语句基础

1.查询指定列:SELECT 关键字

<code>--语法:
--SELECT , ... -- 希望查询列的名称
--FROM -- 指定选取数据的表/<code>
<code>-- 从 Shohin 中取 3 列
SELECT shohin_id, shohin_mei, hanbai_tanka  -- 列的顺序可以任意指定,逗号(“,”)分隔,查询结果的顺序和 SELECT 子句中的顺序相同
FROM Shohin;/<code>
SQL 基础知识-查询基础

  2.查询表的所有列:星号(*)

<code>--语法
--SELECT * -- 星号(*)代表所有列
--FROM ;/<code>
SQL 基础知识-查询基础

  【备注】使用星号(*)的话就无法设定列的显示顺序

  3.为列设定别名:AS 关键字

<code>SELECT shohin_id AS Id, shohin_mei AS Name, shiire_tanka Price
FROM Shohin; -- 不用 AS 关键字也可以/<code>
SQL 基础知识-查询基础

<code>SELECT shohin_id AS "编号", shohin_mei AS '名称', shiire_tanka '价格'
FROM Shohin; -- 设定汉语别名:加上双引号(")或单引号(')/<code>
SQL 基础知识-查询基础

  4.常数的查询

<code>SELECT '产品' AS Product,            -- '产品':字符串常数
38 AS Price, -- 38:数字常数
'2016-09-30' AS '生产日期' -- '2009-02-24':日期常数/<code>
SQL 基础知识-查询基础

  【备注】字符串和日期使用单引号(')。

  5.从结果中删除重复行:DISTINCT

SQL 基础知识-查询基础

原图

  (1)

<code>SELECT DISTINCT shohin_bunrui FROM dbo.Shohin;  -/<code>
SQL 基础知识-查询基础

使用 DISTINCT 移除 shohin_bunrui 列中的重复数据

  (2)DISTINCT 对 NULL 类型的处理:存在多条 NULL 值的行时,会结合为一条 NULL 数据。

<code>SELECT DISTINCT shiire_tanka FROM dbo.Shohin;/<code>
SQL 基础知识-查询基础

  (3)多列之前使用 DISTINCT

<code>SELECT DISTINCT shohin_bunrui, torokubi
FROM dbo.Shohin/<code>
SQL 基础知识-查询基础

  DISTINCT 会将多个列的数据进行组合,将重复的数据结合为一条。

  【注意】DISTINCT 关键字只能用在第一个列名之前。

  6.筛选记录:WHERE

  WHERE 子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于这个数字”等条件,找出只符合该条件的记录。

<code>--语法: 

--SELECT , ...
--FROM
--WHERE ;/<code>
SQL 基础知识-查询基础

<code>SELECT shohin_id, shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE shohin_bunrui = '衣服';  -- shohin_bunrui = '衣服':为条件表达式/<code>
SQL 基础知识-查询基础

选取行之后,再输出列

  【备注】WHERE 子句:首先通过该子句查询出符合指定条件的记录,再选取出 SELECT 语句指定的列。

  【注意】SQL 子句的书写格式是固定的,不能随意更改。如 WHERE 子句必须紧跟在 FROM 子句后。

  7.注释的写法

  注释对于 SQL 的执行没有任何影响。

<code>--  单行注释

/*
多行注释
*//<code>

二、算术运算符和比较运算符

  1.算术运算符

<code>SELECT shohin_mei, hanbai_tanka, hanbai_tanka * 2 AS 'hanbai_tanka_x2'
FROM dbo.Shohin;/<code>
SQL 基础知识-查询基础

图 商品单价的两倍

四则算术运算符含义运算符加法+减法-乘法*除法/

  

  括号(“(”“)”)可以提高表达式的优先级。

  2.需要注意 NULL

<code>SELECT 5 + NULL, 10 - NULL, 1 * NULL, 4 / NULL, NULL / 9;/<code>
SQL 基础知识-查询基础

  【备注】所有包含 NULL 的计算,结果肯定为 NULL。

  3.比较运算符

比较运算符运算符含义=相等<>不等>=大于等于>大于<=小于等于

<code>--示例1:
SELECT shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka = 500;/<code>
SQL 基础知识-查询基础

选取 hanbai_tanka 列为 500 的记录

<code>--示例2
SELECT shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka <> 500;/<code>
<code>--示例3
SELECT shohin_mei, shohin_bunrui
FROM dbo.Shohin
WHERE hanbai_tanka != 500;/<code>
SQL 基础知识-查询基础

选取 hanbai_tanka 列的值不是 500 的记录

<code>--示例4
SELECT *
FROM dbo.Shohin
WHERE hanbai_tanka - shiire_tanka >= 500;/<code>
SQL 基础知识-查询基础

  

  3.对字符串使用不等号时的注意事项

SQL 基础知识-查询基础

创建表

SQL 基础知识-查询基础

原图

  

<code>--示例:选取出大于'2'的数据的 SELECT 语句
SELECT *
FROM dbo.Chars
WHERE chr > '2';/<code>
SQL 基础知识-查询基础

  【注意】chr 为字符串类型,对字符串类型的数据进行大小比较时,跟数字不一样。

  

  4.不能对 NULL 使用比较运算符

SQL 基础知识-查询基础

<code>--示例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 的记录/<code>
SQL 基础知识-查询基础

SQL 基础知识-查询基础

  【注意】希望选取 NULL 记录时,使用 IS NULL;希望选取不是 NULL 的记录时,使用 IS NOT NULL。

三、逻辑运算符

  1.NOT 运算符:取反

<code>--示例:
SELECT *
FROM dbo.Shohin
WHERE NOT hanbai_tanka >= 1000;  --等价于 hanbai_tanka < 1000/<code>
SQL 基础知识-查询基础

取 hanbai_tanka 列不大于 1000 的记录(hanbai_tanka < 1000)

  2.AND 运算符和 OR 运算符

  AND 运算符:并且,在两侧的查询条件都成立时整个查询条件才成立。

  OR 运算符:在两侧的查询条件就算只有一个成立时整个查询条件都成立。

<code>--示例
SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shohin_bunrui = '厨房用具'
AND hanbai_tanka >= 3000;/<code>
SQL 基础知识-查询基础

<code>SELECT shohin_mei, shiire_tanka
FROM dbo.Shohin
WHERE shohin_bunrui = '厨房用具'
OR hanbai_tanka >= 3000;/<code>
SQL 基础知识-查询基础

  【备注】多个查询条件进行组合时,需要使用 AND 运算符或者 OR 运算符。

  2.通过括号进行强化

SQL 基础知识-查询基础

<code>--示例1
SELECT shohin_mei,
shohin_bunrui,
torokubi
FROM dbo.Shohin
WHERE shohin_bunrui = '办公用品'
AND torokubi = '2009-09-11'
OR torokubi = '2009-09-20';/<code>
SQL 基础知识-查询基础

SQL 基础知识-查询基础

SQL 基础知识-查询基础

<code>--示例2
SELECT shohin_mei,
shohin_bunrui,
torokubi
FROM dbo.Shohin
WHERE shohin_bunrui = '办公用品'
AND (torokubi = '2009-09-11'
OR torokubi = '2009-09-20');/<code>
SQL 基础知识-查询基础

SQL 基础知识-查询基础

  【备注】AND 运算优先于 OR 运算,想要优先执行 OR 运算时可以使用括号。


分享到:


相關文章: