第二章:基础查询与排序
2.1 SELECT语句基础
SELECT语句
SELECT语句包含了SELECT和FROM;
SELECT <列名>,
FROM <表名>;
举例:在navicat中使用。name用上了着重号,以区分关键字;平时读取普通列的数据,可以不用加着重号;
SELECT `name`
FROM city
*号表示查询这个表内所有字段的数据;
SELECT * FROM address;
SELECT * FROM film;
SELECT 字段1,字段2,…,From 表名;
表示选择某个表中的,某一列或者 某几列的数据;
SELECT film_id,title,length
FROM film;
2.1.1 从表中选取数据
WHERE语句
当不需要取出全部数据,而是选取出满足某些条件的数据时,使用WHERE语句。
查询 city城市的表中country_id大于100的数据;需要注意:where后面紧紧跟随from句,所以from后面不加分号;
SELECT <列名>, ……
FROM <表名>
WHERE <条件表达式>;
SELECT city, country_id,last_update
FROM `city`
WHERE city = 'Aden';
SELECT city, country_id,last_update
FROM `city`
WHERE country_id = 101; #正确
SELECT * FROM city; #错误
WHERE country_id > 100;
SELECT * FROM city #正确
WHERE country_id > 100;
2.1.3 相关法则
-
星号()代表全部列的意思。
-
SQL中可以随意使用换行符,不影响语句执行(但不可插入空行)。
-
在SELECT语句中使用DISTINCT可以删除重复行。
SELECT DISTINCT film_id
FROM film;
- 注释是SQL语句中用来标识说明或者注意事项的部分。分为1行注释"-- ", “#“多行注释”/* */”。
2.2 算术运算符和比较运算符
2.1.1 从表中选取数据
2.2.1 算术运算符
加法 +
减法 -
乘法 *
除法 /
2.2.2 比较运算符
运算符 含义
= 和 ~ 相等
<> 和 ~ 不相等
= 大于等于 ~
大于 ~
<= 小于等于 ~
< 小于 ~
练习题-第一部分(请给出代码、包含代码及代码执行结果的截图)
2.1
编写一条SQL语句,从 product(商品) 表中选取出“登记日期(regist_date)在2009年4月28日之后”的商品,查询结果要包含 product name 和 regist_date 两列。
SELECT product_name, regist_date
FROM product
WHERE regist_date > '2009-04-28';
2.3
2.2.3 章节中的SELECT语句能够从 product 表中取出“销售单价(sale_price)比进货单价(purchase_price)高出500日元以上”的商品。请写出两条可以得到相同结果的SELECT语句。
-- SELECT语句写法 2
SELECT product_name, sale_price, purchase_price
FROM product
WHERE sale_price >= purchase_price + 500;
-- SELECT语句写法 2
SELECT product_name, sale_price, purchase_price
FROM product
WHERE sale_price - 500 >= purchase_price;
备注:本人为新手学习,基础和理论知识薄弱,笔记主要为自己记录自己的学习过程,方便后期自己多次复现和思考,内容有些杂乱,且作业未完全完成,请大家不要介意,多多批评指正。