#查询特定的行
SELECT product_id, product_name, purchase_price
FROM Product;
#查询全部行
SELECT *
FROM Product;
#查询常数
SELECT '商品' AS string, 38 AS number, '2009-02-24' AS date,
product_id, product_name
FROM Product;
#设定别名:AS关键字
SELECT product_id AS id,
product_name AS name,
purchase_price AS price
FROM Product;
#WHERE子句
SELECT <列名>, ……
FROM <表名>
WHERE <条件表达式>;
SELECT product_name, product_type
FROM Product
WHERE product_type = '衣服';
2-1 SELECT 语句基础
注1:1、原则上希望大家能够以子句为单位进行换行(子句过长时,为方便起见可以换行)2、插入空行(无任何字符的行)会造成执行错误
注2:别名可以使用中文,使用中文时需要用双引号(")括起来 。请注意不是单引号(')。(但是mysql也可以用单引号吧?)使用双引号可以设定包含空格 (空白)的别名。但是如果忘记使 用双引号就可能出错,因此并不推荐。大家可以像product_ list这样使用下划线(_)来代替空白。
注3:WHERE 子句中的“ product_type = '衣服' ”就是用来表示查询条件的表达式(条件表达式)。首先通过 WHERE 子句查询出符合指定条件的记录,然后再选取出 SELECT 语句指定的列
注4:注释是 SQL 语句中用来标识说明或者注意事项的部分。--(1行注释)/* */(多行注释)
关键字:
AS
DISTINCT
注:使用 DISTINCT 时,NULL 也被视为一类数据;DISTINCT 关键字只能用在第一个列名之前
2-2 算术运算符和比较运算符
运算以行为单位执行
运算符:使用其两边的值进行四则运算或者字符串拼接、数值大小比较等运算,并返回结果的符号
算术运算符:+ - * / 注:1、括号()2、NULL 。所有包含 NULL 的计算,结果肯定是 NULL(如NULL / 0)
比较运算符:比较其两边的列或者值的符号 注:不能对NULL使用比较运算符,希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符
=、!=、<>
注:字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。
例如在表2-3中,>'2' 的只有'3','222'。
chr列的数据按照字典顺序进行排序的结果:'1' '10' '11' '2' ' 222' '3'
chr 列被定为字符串类型,并且在对字符串类型的数据进行大小比较时,使用的是和数字比较不同的规则。典型的规则就是按照字典顺序进行比较,也就是像姓名那样,按照条目在字典中出现的顺序来进行排序。该规则最重要的一点就是,以相同字符开头的单词比不同字符开头的单词更相近
2-3 逻辑运算符
NOT:NOT运算符用来否定某一条件,但是不能滥用。
AND 逻辑积
OR 逻辑和
AND运算符的优先级高于OR运算符。想要优先执行OR运算符时可以使用括号。
真值表 三值逻辑 (结合进阶教程)
● AND 的情况:false > unknown > true
● OR 的情况:true > unknown > false