Product表为:
算术运算符
SELECT
product_name,
sale_price,
sale_price * 2 AS "sale_price_x2"
FROM
Product;
结果:
SQL语句中可以使用的四则运算的主要运算符
含义 | 运算符 |
---|---|
加 | + |
减 | - |
乘 | * |
除 | / |
注:实际上所有包含 NULL 的计算,结果肯定是 NULL。
比较运算符
SELECT
product_name,
product_type
FROM
Product
WHERE
sale_price = 500;
结果:
比较运算符
运算符 | 含义 |
---|---|
= | 和~相等 |
<> | 和~不相等 |
>= | ~~~~~ |
<= | ~~~~~ |
> | ~~~~~ |
< | ~~~~~ |
使用比较运算符对计算结果进行比较
SELECT
product_name,
sale_price,
purchase_price
FROM
Product
WHERE
sale_price - purchase_price >= 500;
结果:
对字符串使用不等号时的注意事项
创建Chars表
CREATE TABLE chars (
chr CHAR (3) NOT NULL,
PRIMARY KEY (chr)
)
插入数据
START TRANSACTION;
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');
COMMIT;
选取出大于2
的数据的SELECT语句
SELECT
chr
FROM
Chars
WHERE
chr > '2';
查询出:
说明:典型的规则就是按照字典顺序进行比较,也就是像姓名那样,按照条目在字典中出现的顺序来进行
排序。该规则最重要的一点就是,以相同字符开头的单词比不同字符开头的单词更相近。
Chars 表 chr 列中的数据按照字典顺序进行排序的结果如下所示
1 |
---|
10 |
11 |
2 |
222 |
3 |
以书籍的章节为例
1 |
---|
1-1 |
1-2 |
2 |
2-1 |
3 |
注:字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。
不能对NULL使用比较运算符
注意到商品“叉子”和“圆珠笔”的进货单价是 NULL。
SELECT
product_name,
purchase_price
FROM
product
WHERE
purchase_price = 2800;
查询出:
而选取出进货单价不是2800日元的记录
SELECT
product_name,
purchase_price
FROM
product
WHERE
purchase_price <> 2800;
查询出:
执行结果中并没有“叉子”和“圆珠笔”。这两条记录由于进货单价不明(NULL),因此无法判定是不是 2800 日元。
SQL
提供了专门用来判断是否为 NULL 的 IS NULL
运算符
SELECT
product_name,
purchase_price
FROM
product
WHERE
purchase_price IS NULL;
查询出:
反之,希望选取不是** NULL** 的记录时,需要使用 IS NOT NULL
运算符
SELECT
product_name,
purchase_price
FROM
product
WHERE
purchase_price IS NOT NULL;
查询出:
注:希望选取NULL记录时,需要在条件表达式中使用IS NULL
运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL
运算符。