ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL:二 查询基础

2020-10-04 20:34:39  阅读:234  来源: 互联网

标签:product 基础 查询 运算符 SQL NULL WHERE SELECT


SELECT语句基础

列的查询

  • 通过 SELECT 语句查询并选取出必要数据 的过程称为匹配查询或查询(query)。 
  • 查询结果中列的顺序和 SELECT 子句中的顺序相同 
SELECT <列名 1>,<列名 2>……  
FROM <表名>;

 

查询出表中所有的列

  • 想要查询出全部列时,可以使用代表所有列的星号(*)
  • 如果使用星号的话,就无法设定列的显示顺序了 。这时就会按 照CREATE TABLE 语句的定义对列进行排序。
SELECT * FROM <表名>;

 

随意使用换行符

SQL 语句使用换行符或者半角空格来分隔单词,在任何位置进行分隔都可以, 即使像下面这样通篇都是换行符也不会影响SELECT语句的执行。但是这样可能会 由于看不清楚而出错。原则上希望大家能够以子句为单位进行换行 (子句过长时, 为方便起见可以换行)。

为列设定别名

  • SQL 语句可以使用 AS关键字为列设定别名
  • 别名可以使用中文,使用中文时需要用双引号(")括起来 
  • 查询出来的结果,列名以别名显示
SELECT  product_id      AS id,
        product_name    AS name, 
        purchase_price  AS "进货单价"
FROM Product;                                 

 

常数的查询

  • SELECT 子句中不仅可以书写列名,还可以书写常数

  • SELECT '商品' AS string FROM Product;

    • 查询结果:列名为string,下面所有行中显示常数,即“商品”

从结果中删除重复行

  • 在SELECT 子句中使用 DISTINCT 来实现删除重复行
  • 在使用DISTINCT 时,NULL 也被视为一类数据。NULL 存在于多 行中时,也会被合并为一条 NULL 数据
  • DISTINCT 关键字只能用在第一个列名之前
SELECT DISTINCT product_type  
FROM Product;

 

根据WHERE语句来选择记录

  • SELECT 语句通过WHERE 子句来指定查询数据的条件
  • 在 WHERE 子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于 这个数字”等条件
  • 首先通过 WHERE 子句查询出符合指定条件的记录,然后再选取出SELECT 语句指定的列
  • SQL中子句的书写顺序是固定的,不能随意更改。WHERE 子句必须 紧跟在FROM 子句之后,书写顺序发生改变的话会造成执行错误
SELECT <列名>, …… 
FROM <表名> 
WHERE <条件表达式>;

 

注释的书写方法

  • 1行注释

    • 书写在“--”之后,只能写在同一行
  • 多行注释

    • 书写在 “ /* ” 和 “ */ ” 之间,可以跨多行

 

算术运算符和比较运算符

算术运算符

  • 四则运算所使用的运算符(+、-、*、/)称为算术运算符。
  • 运算符就是使用其两边的值进行四则运算或者字符串拼接、数值大小比较等运算,并返回结果的符号
  • 括号中 运算表达式的优先级会得到提升,优先进行运算
  • 运算是以行为单位执行的
SELECT product_name, sale_price, 
            sale_price * 2 AS "sale_price_x2" 
FROM Product;

 

需要注意NULL

  • 所有包含 NULL 的计算,结果肯定是 NULL

比较运算符

  • 符号 = 这样用来比较其两边的列或者值的符号称为比较运算符
  • 一定要让不等 号在左,等号在右
SELECT product_name, product_type  
FROM Product 
WHERE sale_price = 500;

 

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

  • 字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。

不能对NULL使用比较运算符

  • SQL 提供了专门用来判断是否为 NULL 的IS NULL 运算符
  • 希望选取不是NULL 的记录时,需要使用 IS NOT NULL 运 算符

 

逻辑运算符

NOT运算符

  • NOT运算符用来否定某一条件
SELECT product_name, product_type, sale_price 
FROM Product 
WHERE NOT sale_price >= 1000;

 

AND运算符和OR运算符

  • 在 WHERE 子句中使用 AND 运算符或者OR 运算符,可以对多个查 询条件进行组合。
  • AND 运算符在其两侧的查询条件都成立时整个查询条件才成立,其 意思相当于“并且”。 
  • OR 运算符在其两侧的查询条件有一个成立时整个查询条件都成立, 其意思相当于“或者” 。
SELECT  product_name, purchase_price  
FROM Product 
WHERE  product_type = '厨房用具' AND sale_price >= 3000;

SELECT product_name, purchase_price  
FROM Product 
WHERE product_type = '厨房用具' OR sale_price >= 3000;

 

通过括号强化处理

  • AND 运算符优先于 OR 运算符
SELECT product_name, product_type, regist_date  
FROM Product 
WHERE product_type = '办公用品'   
AND (   regist_date = '2009-09-11'        
     OR regist_date = '2009-09-20');

 

逻辑运算符和真值

  • NOT、AND 和 OR 称为逻辑运算符
  • 逻辑就是对真值进行操作的意思。真值就是值为真(TRUE)或假 (FALSE)其中之一的值

 

 

 

含有NULL时的真值

  • 真值是除真假之外的第三种值——不确定(UNKNOWN)
  • SQL 之外的语言也基本上只使用真 和假这两种真值。与通常的逻辑运算被称为二值逻辑相对,只有 SQL 中 的逻辑运算被称为三值逻辑。

 

标签:product,基础,查询,运算符,SQL,NULL,WHERE,SELECT
来源: https://www.cnblogs.com/dc2019/p/13768261.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有