• 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

  • 相关阅读:
    [转]C#里 泛型Where和 new()的使用
    测试
    C#中的static、readonly与const的比较
    将字符串格式化变为两位
    在VS中对字段进行包装
    安装mysql的心得
    关于mysql数据库的乱码问题
    timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
    解决向数据库mysql插入double数据小数点不显示问题
    JDBOOK
  • 原文地址:https://www.cnblogs.com/subaiBlog/p/5400395.html
Copyright © 2020-2023  润新知