zoukankan      html  css  js  c++  java
  • SQL入门学习1-查询基础

    2-1 SELECT语句基础

    SELECT语句作用
    SELECT 语句用于从表中选取数据。
    结果被存储在一个结果表中(称为结果集)。

    重点

    • 使用SELECT语句从表中选取数据。
    • 为列设定显示用的别名
    • SELECT语句中可以使用常数或者表达式。
    • 通过制定DISTINCT可以删除重复的行
    • SQL语句使用注释
    • 通过Where语句,从表中取出符合查询条件的数据。

    表的查询

    从表中选出必要的数据。(query)
    语法:

    SELECT <列名> ,  ……
    FROM <表名>
    

    注意,SELECT语句和FROM是两条子语句,必须同时存在。
    例:

    SELECT Name, Age,Phone
    FROM Test;
    

    则会输出

    name    | age |    phone
    -----------+-----+-------------
     我是帅哥  |  20 | 15522222222
     我是帅哥1 |  20 | 15522222223
    (2 行记录)
    

    查询表汇总所有的列
    可以使用 代表所有列的 星号*
    注意,使用星号的话,就无法设定列的显示顺序,此时就会按照CREATE TABLE 语句的定义对列进行排序。


    为列设定别名

    SQL语句可以使用AS关键字,为列设定别名。
    语法:

        SELECT  <原列名字>  AS <新列别名>
        FROM 表名;
    

    实例:

    SELECT  shohin_id  AS  id,
                    shohin_mei AS name,
                    shiire_tanka AS  tanka
    FROM Shohin;
    

    使用双引号可以设定包含空格的别名,且可以使用中文的别名。


    常数的查询

    书写常数
    可以将表中的一列数据设置为一列常数。
    例如:

    SELECT  1 AS column1 , 2 AS column2 , 'aa' AS column3 , test_id, test_num
    FROM Test;
    

    解释:将column1列所有记录都设为常数1,将column2列所有记录值都设为常数2,column3列,所有值都设置为字符串常量'aa'.同时显示Test表中,test_id, test_num列的值。


    从结果中删除重复行

    使用SELECT DISTINCT来实现删除重复数据。
    例:

    SELECT DISTINCT shohin_bunrui
    

    执行结果,会将记录中相同值的记录进行删除,只会保留不同值的记录。
    注意

    1. 在使用DISTINCT时,NULL也被视为一类数据。存在多条NULL数据时,只保留一个。
    2. DISTINCT关键字,只能加载第一个列名前,不能增加在其他地方。

    使用WHERE

    与SELECT区别
    SELECT是将表汇总存储的数据全选出来,但是平时只需要筛选出满足某种条件的记录。
    SELECT语句通过WHERE子句来指定查询数据的条件。
    语法:

    SELECT <列名>, ...
    FROM <表名>
    WHERE <条件表达式>;
    

    WHERE执行流程:
    1,会将列表的值,与WHERE语句条件相比较。如果相等Shohin表中的数据。
    2.选出与SELECT语句指定的列。

    WHERE注意:
    SQL中子句的书写顺序是固定的不能够随意修改。WHERE子句必须几根在FROM子句之后


    注释的书写方法

    1. 一行注释
      书写在--之后,只能在同一行。
    2. 多行注释
      使用/*可以跨越多行

    2-2 算术运算符和比较运算符

    注意

    1. 包含NULL的运算,其结果也是NULL。
    2. 判断是否为NULL,需要使用IS NULL 或者IS NOT NULL 运算符

    算术运算符

    四则运算
    四则运算有+-*/
    SQL中能够将列进行四则运算但是要求列的数据类型为INTEGER
    注意:若将CHAR类型或者VARCHAR类型进行四则运算,则会报错。
    例:

    SELECT age *2  , name 
    FROM Test ;
    

    需注意
    四则运算中,若有一个操作数为NULL,那么该表达式的结果就为NULL
    例:NULL + 1的结果就为NULL

    FROM子句是否真的必要
    SELECT语句很多时候都会搭配一个FROM子句。但是FROM子句不是一定必要的。
    若不实用FROM子句,结果表只会输出一行的记录。需要使用这种的情况很少。
    另外Oracle是不允许省略FROM子句的。
    

    比较运算符

    用在SELECT 后的选项会出现错误。
    平时用在WHERE子句中。
    可选运算符为:=><>=<=<>
    运算符对各类型效果:

    • INTEGER
      正常比较效果。
    • DATE 日期类型
      若使用<。则表示在 DATE日期 之前
      '2015-4-17' < '2015-4-20'
    • 字符串类型
      对字符串使用比较运算符号时,是按照字典顺序进行比较的。

    比较运算符与四则运算
    比较运算符与四则运算能够配套使用。
    比较运算符的优先级比四则运算要低
    例:

    SELECT    A, B 
    FROM Test 
    WHERE A-B > 500 ;
    

    NULL的运算符

    不能对NULL使用比较运算符
    比较运算符的结果不会包括带有NULL比较的记录项
    例如: A < > 2800 如果ANULL。那么A也不会出现在比较结果当中。

    比较运算符的操作数不能为NULL
    比较运算符的操作数为NULL,则结果不会显示数据项。
    流入: A = NULL ,即使 ANULL也不会显示。

    **使用IS NULLIS NOT NULL书写条件表达式。
    例:

    SELECT  a 
    FROM  Test
    WHERE a IS NULL;
    

    2-3 逻辑运算符

    基本逻辑运算符

    • NOT
      用于否定一个条件。
      例:
    ``` SQL
    SELECT    a 
    FROM Test
    WHERE NOT a > 100 ;
    ```
    等价于
    ``` SQL
    SELECT a
    FROM Test 
    WHERE a <= 100;
    ```
    
    • AND运算符和OR运算符
      AND运算符和OR运算符可以将多个条件进行组合。
    • 逻辑运算符的优先级
      与正常的OR/AND/NOT 一样, 由低变高。

    含有NULL时的真值

    对值为NULL 使用比较运算符后的判断结果,结果为UNKNOWN
    这个值即不为真,也不为假。因此对此值使用NOT之后不能得到相反值。
    TRUE/FALSE/UNKNOWN称为三值逻辑。
    注意
    UNKNOWN与任何其他的真值进行逻辑运算,结果都为UNKNOWN

  • 相关阅读:
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    how to use automapper in c#, from cf~
  • 原文地址:https://www.cnblogs.com/subaiBlog/p/5400395.html
Copyright © 2011-2022 走看看