SQL基本功(二)--查询基础

前文回顾:

SQL知识点--插入记录

SQL知识点--更新记录、删除记录

SQL基本功(一)--SQL和数据库

目录

SELCET 查询

算术运算符和比较运算符

字符串使用不等号规则

​​​​​​​不能对 NULL 使用比较运算符

逻辑运算符

 NOT 运算符

​​​​​​​AND 运算符和 OR 运算符

知识检验:


SELCET 查询

  • 从表中选取数据时需要使用 SELECT 语句,也就是只从表中选出(SELECT)必要数据的意思。通过 SELECT 语句查询并选取出必要数据的过程称为匹配查询或查询(query)。
  • SQL 语句使用换行符或者半角空格来分隔单词,在任何位置进行分隔都可以,(子句过长时,为方便起见可以换行)。但是如果在中间插入空行(无任何字符的行)会造成执行错误。
  • select
     male,
    female 
    from 
    table
  • 设定汉语别名时需要使用双引号( " )括起来,字符串使用单引号
  • 在 SELECT 语句中使用 DISTINCT 可以删除重复行,DISTINCT 关键字只能用在第一个列名之前,在使用 DISTINCT 时, NULL 也被视为一类数据。 NULL 存在于多行中时 , 也会被合并为一条 NULL 数据

注释的书写方法

  • 1行注释
    • 书写在“--”之后,只能写在同一行。
  • ​​​​​​​ 多行注释
    • ​​​​​​​书写在“/*”和“*/”之间,可以跨多行。

​​​​​​​算术运算符和比较运算符

  • 四则运算所使用的运算符 ( + 、 - 、 * 、 / ) 称为算术运算符。运算符就是使用其两边的值进行四则运算或者字符串拼接、数值大小比较等运算,并返回结果的符号。加法运算符 ( + ) 前后如果是数字或者数字类型的列名的话,就会返回加法运算后的结果。(PS.所有包含 NULL 的计算,结果肯定是 NULL)

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

​​​​​​​像符号 = 这样用来比较其两边的列或者值的符号称为比较运算符,符号 = 就是比较运算符,一定要让不等号在左,等号在右。

运算符含义
=和~相等
<>和~不相等
>=大于等于~
>大于~
<=小于等于~
<小于~

字符串使用不等号规则

  • 被定为字符串类型,并且在对字符串类型的数据进行大小比较时,使用的是和数字比较不同的规则。典型的规则就是按照字典顺序进行比较,也就是像姓名那样,按照条目在字典中出现的顺序来进行排序。该规则最重要的一点就是,以相同字符开头的单词比不同字符开头的单词更相近。
    • 如'10' 和 '11' 同样都是以 '1' 开头的字符串,首先判定为比 '2' 小。
    • 1-1 节包含在第 1 章当中,所以肯定比第 2 章更靠前。

​​​​​​​​​​​​​​​​​​​​​不能对 NULL 使用比较运算符

SQL提供了专门用来判断是否为 NULL 的 IS NULL 运算符,如果想查询出为NULL的空值,使用IS NULL为其添加条件,希望选取 NULL 记录时,需要在条件表达式中使用 IS NULL 运算符。希望选取不是 NULL 的记录时,需要在条件表达式中使用 IS NOT NULL 运算符。

逻辑运算符

 NOT 运算符

  • NOT 不能单独使用,必须和其他查询条件组合起来使用,NOT 运算符用来否定某一条件,但是不能滥用。

​​​​​​​AND 运算符和 OR 运算符

  • 在 WHERE 子句中使用 AND 运算符或者 OR 运算符,可以对多个查询条件进行组合。AND 运算符在其两侧的查询条件都成立时整个查询条件才成立,其意思相当于“并且”。OR 运算符在其两侧的查询条件有一个成立时整个查询条件都成立,其意思相当于“或者”(AND 运算符的优先级高于 OR 运算符。想要优先执行 OR 运算符时可以使用括号。)

知识检验:

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、代码清单中的 SELECT 语句能够从 Product 表中取出“销售单价( sale_price )比进货单价( purchase_price )高出 500日元以上”的商品。请写出两条可以得到相同结果的 SELECT 语句。执行结果如下所示。

SELECT product_name, sale_price, purchase_price
  FROM Product
 WHERE sale_price - purchase_price >= 500;
-- SELECT语句①
SELECT product_name, sale_price, purchase_price
  FROM Product
 WHERE sale_price >= purchase_price + 500;


-- SELECT语句②
SELECT product_name, sale_price, purchase_price
  FROM Product
 WHERE sale_price - 500 >= purchase_price;

3、请写出一条 SELECT 语句,从 Product 表中选取出满足“销售单价打九折之后利润高于 100 日元的办公用品和厨房用具”条件的记录。查询结果要包括 product_name 列、 product_type 列以及销售单价打九折之后的利润(别名设定为 profit )。
提示:销售单价打九折,可以通过 sale_price 列的值乘以 0.9 获得,利润可以通过该值减去 purchase_price 列的值获得。

SELECT
	product_name,
	product_type,
	sale_price * 0.9 - purchase_price AS profit 
FROM
	product 
WHERE
	sale_price * 0.9 - purchase_price > 100 
	AND ( product_type = '办公用品'
	OR product_type = '厨房用具');
	 

 

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你隔壁的小王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值