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
<列名> < '' 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数据操作语言之查询(一)的更多相关文章
- DML数据操作语言之查询(二)
当我们查询出了N条记录之后 ,我们知道一共是几条记录,或者这些记录某一字段(列值)的最大值,最小值,平均值等,就可以使用聚合函数. 1.聚合函数 聚合函数会将null 排除在外.但是count(*)例 ...
- 6.1课堂笔记—DML(数据操作语言),DQL查询语句
一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%st ...
- DML数据操作语言
DML数据操作语言 用来对数据库中表的数据记录进行更新.(增删改) 插入insert -- insert into 表(列名1,列名2,列名3...) values (值1,值2,值3...):向表中 ...
- DML数据操作语言之增加,删除,更新
1.数据的增加 数据的增加要用到insert语句 ,基本格式是: insert into <表名> (列名1,列名2,列名3,......) values (值1,值2,值3,..... ...
- DML数据操作语言之复杂查询
1.视图(View) 我们知道,在关系型数据库中,用来保存实际数据记录的是数据表.和表同等概念也是用来保存东西是:视图. 但是数据表是用来保存实际数据记录的,而视图是用来保存常用select语句的. ...
- DML数据操作语言之谓词,case表达式
谓词:就是返回值是真值的函数. 前面接触到的“>” “<” “=”等称为比较运算符,它们的正式名称就是比较谓词.因为它们比较之后返回的结果是真值. 由于谓词 返回的结果是一个真值 ,即tr ...
- DML数据操作语言之常用函数
所谓函数,就是输入某一值,得到相应的输出结果的功能.相当于一个加工厂,给了原料,最终产出成品. 其中原料 就是参数(parameter). 产品 就是返回值. 函数大致可以分为以下五个种类: 算术函数 ...
- MySQL SQL DML (数据操作语言)
包括 SELECT, UPDATE, DELETE, INSERT SELECT 从数据库表中获取数据 用法 SELECT name FROM students; SELECT name,age FR ...
- DML数据操作语言练习
--创建表T_HQ_BM2 --create table t_hq_bm2 as select * from t_hq_bm; commit; --添加行内容 --insert into t_hq_b ...
随机推荐
- $CDQ$分治总结
A.\(CDQ\) 分治 特别基础的教程略. \(CDQ\)分治的优缺点: ( 1 )优点:代码量少,常数极小,可以降低处理维数. ( 2 )缺点:必须离线处理. \(CDQ\)分治与其他分治最本质的 ...
- 【经验随笔】 Tomcat多个APP使用相同名称环境变量导致问题
背景介绍 之前遇到一个问题,在一个tomcat下部署了两个APP,其中一个APP不能正常从底层接口获取数据.如果将两个APP分到不同服务器上的tomcat部署,又都正常了.分析了一下: 远程调试跟代码 ...
- SFTP环境搭建及客户代码调用公共方法封装
一.背景 在开发应用软件的过程中,广泛使用FTP在各子系统间传送文本数据.但FTP存在安全问题,开放到外网存在安全漏洞,容易被攻击.替换方案是使用SFTP,SFTP提供更高的安全性,当然传输的效率也会 ...
- Android Foreground Service (前台服务)
一.如何保活后台服务 在Android Services (后台服务) 里面,我们了解了Android四大组件之一的Service,知道如何使用后台服务进行来完成一些特定的任务.但是后台服务在系统内存 ...
- MySQL增量订阅&消费组件Canal POC
POC的目的:1.与MYSQL的对接方式,配置文档2.订阅的延迟3.订阅后宕机消息会不会丢失4.能不能从指定的点开始重新订阅5.高并发写入的时候,日志的顺序是否还能保持,不考虑消费的情况订阅是否会延迟 ...
- APNS IOS 消息推送沙盒模式和发布模式
在做.NET向IOS设备的App进行消息推送时候,采用的是PushSharp开源类库进行消息的推送,而在开发过程中,采用的是测试版本的app,使用的是测试的p12证书采用的是ApnsConfigura ...
- TensorFlow-谷歌深度学习库 体验一二三
一个TensorFlow的运算可以看作是一个数据流图. 一个图呢则由一组操作和数据集组成. 操作(operation)代表运算单元 数据(tensor) 代表在各运算单元流动的数据单元 要想使用一个数 ...
- EOS 的世界里可能再也没有小偷了
EOS 针对以下两种情况设计了应急措施: 1. 账户被盗(私钥被盗或有权限的其他账户被盗) 2. 账户遗失(私钥遗失或有权限的其他账户遗失) ## 1.账户被盗 EOS 有可能会强制要求所有账户的 O ...
- 初探JodaTime
在学习java之初时就使用过jdk自带的java.util.Calendar ,近期的项目中需要达到类似功能的时候使用了JodaTime. Joda-Time 令时间和日期值变得易于管理.操作和理解. ...
- Microsoft AI - Custom Vision
概述 前几天的 Windows Developer Day 正式发布了 Windows AI Platform,而作为 Windows AI Platform 的模型定义和训练,更多还是需要借助云端来 ...