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
<列名> < '' 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 时的真值:

不确定。

DML数据操作语言之查询(一)的更多相关文章

  1. DML数据操作语言之查询(二)

    当我们查询出了N条记录之后 ,我们知道一共是几条记录,或者这些记录某一字段(列值)的最大值,最小值,平均值等,就可以使用聚合函数. 1.聚合函数 聚合函数会将null 排除在外.但是count(*)例 ...

  2. 6.1课堂笔记—DML(数据操作语言),DQL查询语句

    一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%st ...

  3. DML数据操作语言

    DML数据操作语言 用来对数据库中表的数据记录进行更新.(增删改) 插入insert -- insert into 表(列名1,列名2,列名3...) values (值1,值2,值3...):向表中 ...

  4. DML数据操作语言之增加,删除,更新

    1.数据的增加 数据的增加要用到insert语句  ,基本格式是: insert into <表名> (列名1,列名2,列名3,......) values (值1,值2,值3,..... ...

  5. DML数据操作语言之复杂查询

    1.视图(View) 我们知道,在关系型数据库中,用来保存实际数据记录的是数据表.和表同等概念也是用来保存东西是:视图. 但是数据表是用来保存实际数据记录的,而视图是用来保存常用select语句的. ...

  6. DML数据操作语言之谓词,case表达式

    谓词:就是返回值是真值的函数. 前面接触到的“>” “<” “=”等称为比较运算符,它们的正式名称就是比较谓词.因为它们比较之后返回的结果是真值. 由于谓词 返回的结果是一个真值 ,即tr ...

  7. DML数据操作语言之常用函数

    所谓函数,就是输入某一值,得到相应的输出结果的功能.相当于一个加工厂,给了原料,最终产出成品. 其中原料 就是参数(parameter). 产品 就是返回值. 函数大致可以分为以下五个种类: 算术函数 ...

  8. MySQL SQL DML (数据操作语言)

    包括 SELECT, UPDATE, DELETE, INSERT SELECT 从数据库表中获取数据 用法 SELECT name FROM students; SELECT name,age FR ...

  9. DML数据操作语言练习

    --创建表T_HQ_BM2 --create table t_hq_bm2 as select * from t_hq_bm; commit; --添加行内容 --insert into t_hq_b ...

随机推荐

  1. jquery的动画学习--jquery权威指南

        前面的fadeIn和fadeOut还有fadeTo以及sildeToggle还有sildeUp\sildeDown还有toggle还有show.hide等都经常用,就不再手写了,需要注意的是f ...

  2. 【POJ3207】Ikki's Story IV - Panda's Trick

    POJ 3207 Ikki's Story IV - Panda's Trick liympanda, one of Ikki's friend, likes playing games with I ...

  3. $CDQ$分治总结

    A.\(CDQ\) 分治 特别基础的教程略. \(CDQ\)分治的优缺点: ( 1 )优点:代码量少,常数极小,可以降低处理维数. ( 2 )缺点:必须离线处理. \(CDQ\)分治与其他分治最本质的 ...

  4. 【BZOJ3140】消毒(二分图匹配)

    [BZOJ3140]消毒(二分图匹配) 题面 Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a.b.c 均为正 ...

  5. [BZOJ1031] [JSOI2007] 字符加密Cipher (后缀数组)

    Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的信息排成一圈,显然,它们有很多种不同的读法.例如下图,可以读作 ...

  6. Bootstrap 在手机页时,导航下拉自动回收

    $(".menu-main").collapse("hide"); //.menu-main就是下来导航的类名

  7. jq事件

    1,ready:当DOM载入就绪可以查询及操纵时绑定一个要执行的函数,在使用之前必须确保body元素的onload事件,,没有注册函数,否则不会触发ready函数. $(document).ready ...

  8. web 直播&礼物赠送------腾讯云(四)

    直播项目搁置了将近1年,以为都搁浅了,没想到头头又提起来了,这次直播技术更替为了腾讯云,消息系统没变,采用的依然是融云,新增了礼物赠送功能. 项目完成基本就是这样子: 一,播放器 由阿里云转腾讯云,w ...

  9. Java 8 中 ConcurrentHashMap工作原理的要点分析

    简介: 本文主要介绍Java8中的并发容器ConcurrentHashMap的工作原理,和其它文章不同的是,本文重点分析了对不同线程的各类并发操作如get,put,remove之间是如何同步的,以及这 ...

  10. freemarker的classic_compatible设置,解决报空错误

    前段时间接触freemaker时,本来后端写各接口运行正常,但加入了模板后,频繁报空指针问题,整了许久,最后还是请教了别人解决了这个问题,现在记录下来,方便以后碰到了可以查阅. 错误样例如下: ERR ...