zoukankan      html  css  js  c++  java
  • DML数据操作语言之查询(一)

    1.select语句基础

    基本语句格式:  select <列名>,.... from <表名>; 

    select子句中列举出希望从表中查询出的列的名称,from子句则指定了选取出数据的表的名称。

    查询结果表中列的顺序和select子句中列名的顺序相同。

    查询出表中所有的列,可以使用星号(*)来代表所有的列。 select * from <表名>; 。这样就无法指定查询结果表中列的顺序。

    为查询结果表的列名设置别名,使用as: select <列名> as <别名> ,...... from <表名>; 

    别名是英文单词时,无需使用引号。别名是中文时,需要使用双引号" ",注意不是单引号。

    为查询结果表增加常数列: select <常数> as <别名> , ...... from <表名>; 

    从查询结果表中去除某列的重复行,使用 distinct: select distinct <列名> from <表名>; 

    当查询结果表是多列,根据某两列的值或者多列的值都相同时,认为是重复行, select distinct <列名1>,<列名2>,...... from <表名>; 列名1,列名2....都相同时,去掉重复列。

    注意:distinct关键字只能在第一个列名之前出现。

    上面所查询出来的查询结果表 包含了原始表的所有行记录(如果不去重),但是实际上要根据某些条件来选出符合条件的行记录,

    根据where子句来选择记录: 

    select  <列名>,<列名>,.......  from <表名>  where <条件表达式>;

     首先通过where子句查询出符合指定条件的行记录,然后在在这些行记录中,根据select子句中选取指定的列来组成查询结果表。

    一条SQL语句中select子句,from子句,where子句 三者的顺序是固定的 ,不能随意更改。

    单行注释:  -- 注释内容 

    多行注释:  /* 注释内容 */ 

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

    算术运算符 :+   —   *   /       可以使用括号来提升运算优先级。        算术运算符可以出现在 select子句  和 where子句中

    如:                        

    select  (<列名> + 5 ) * 2  ,....... from  <表名>  where  <条件表达式> ;

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

    比较运算符:   = (相等)   <> (不相等) >= (大于等于)   <=(小于等于)  > (大于)  < (小于)      比较运算符出现在 where子句中

    其中不相等符号<>  这是标准SQL的写法 ,但是不同的数据库管理系统(DBMS)可能会提供更加常用的  !=

    比较运算符可以对字符(char , vchar)数字(int ,lang),日期(date)等几乎所有的数据类型的列的值进行比较。如:

    select  <列名>,.......  from  <表名>  where  
    <列名> = 2500 and
    <列名> >= '2019-09-27' and
    <列名> < '220' and
    <列名> is not null;

    对于字符型的值,使用比较运算符,是按照字典顺序进行比较的。 如 ‘110’ 小于 ‘22’ , 'abd'  大于 ‘abc’

    对于日期型的值,使用比较运算符,该日期之前的日期 小于该日期。该日期之后的日期 大于改日期。

    选取某列值为null的记录时,需要在条件表达式中使用  is null运算符。希望选取某列值不是null的记录时,需要在表达式中使用 is  not  null运算符。

    3.逻辑运算符

    通过逻辑运算符 可以将多个查询条件进行组合。      逻辑运算符出现在where子句中。

    常用的逻辑运算符有三个:

    not  : 相当于 “非”    如:

    select  ......  from  ......   where   not   t.id <= 100 ;          -- 将查出 t.id > 100  的记录

    and :相当于 “与” 

    select  ......    from  ......    where   t.id > 100  and  t.age = 25    --将查出t.id>100 并且 t.age = 25 的记录

    or  : 相当于 “或”

    select  .....   from .....  where  t.id > 100 or  t.age  =  25  --- 将查出 至少满足其中之一的查询条件的记录

    通过括号进行强化:

    and运算符的 优先级 高于 or运算符。 类似于四则混合运算  *  /的优先级高于  + - 

    可以利用()来 来对or连接的两个条件式先进行组合筛选出记录 ,然后再于 and运算符 进行联合来筛选记录。

    select .......    from  .....    where  (t.age = 25 or t.birthdat > '2000-09-15') and
    t.id  > 100 ; 

    如果不加(),如下: 将进行and运算符的连接 然后再进行 or运算符的连接。

    select .......    from  .....    where  t.age = 25 or t.birthdat > '2000-09-15'  and
    t.id  > 100 ;

    含有null 时的真值:

    不确定。

  • 相关阅读:
    oracle 日期和时间转换
    layui 分页 java后端封装
    excel 时间格式
    excel的编程VBA
    excel条件格式
    python列表变成字符串
    Django的ORM源码学习
    robot 源码解读6【元类和描述符类】
    @staticmethod
    python 类定义后调用名称也执行内部代码
  • 原文地址:https://www.cnblogs.com/wangliyue/p/4164992.html
Copyright © 2011-2022 走看看