数据库知识整理<五>
简单的数据查询:
5.1查询的基本结构:
Sql语句:select [distinct] (* | column [alias],...) from table [where condition] [order bycolumn];
5.2投影操作:
投影操作是指在Sql查询中,使用select子句,选择将对表中的那些列进行操作,这些列将出现在结果中。
- 基本的Sql语句的查询:select 列名列表 from 表名;
- 表名前缀:select 表名.列明 from 表名;如 select student.name from student;
- 列别名:在列名或表名用AS关键字来提供别名。如 select 列A as A,列B as B,..from 表名 as T;当然列别名时也可以加上表名前缀来识别。
- 计算列:在数据库管理系统中,我们可以执行返回计算列的select查询,返回计算列意味着数据不存在于数据库中,但是可以从数据库构造或者计算得来。例如在一个学生成绩表中我们有分数和是否通过的字段,那么我们就可以通过这两者的乘积来判断最终分数是否为零即Sql语句的写法为:select studentId as id,mark*ifPassed as finalResult from studnetScore;但是这个finalResult这个字段实际上在数据库表中是不存在的。在Sql语句中我们可以使用特殊的连接符号将同为字符的数据类型相同的字段链接起来。我们也可以使用“+”号来连接,加好链接的数据类型要一样,不一样的时候就要用str()这个函数进行连接,这个函数可以传递不同数据类型的参数,并且将它们链接起来组成单个字符串,传进来的参数会自动被转换成字符串,所以可以传递任意数据类型的参数。如sql语句为:select classId,time+''+str(id) as classDetails from class;
- 排除重复的数据:select distinct 列A,列B from 表;如 select distinct name from student;
- 返回限定行数的查询:使用top关键字,限制从数据库返回记录的行数 select top rowcount column A,column B from table;其中rowcount可以是一个绝对的数字,指示返回的总行数,也可以是一个数字后跟percent关键字,指示返回总行数的百分之几。如 select top 5 percent name from student;意思是从student表中查出百分之五的数据。
5.3选择操作:
选择操作就是通过查询加上where 条件来进行查询。如:select 列名列表 from 表 where 条件;条件是多种多样的。
- 单条件选择操作:select 列A,列B from 表 where 列C = 值;
- 多条件选择操作:select 列A,列B 表 where 条件1 (and/or) 条件2;and表示同时满足条件,or至少满足其中一个。
- 执行范围测试:关键字between,select 列A,列B from table where 列C between 下限 and 下限;如 select id,name from student where score between 80 and 90;当然也可以在between前面加上not代表不在这个范围内。
- 定义集合关系:上面我们可以知道属于某个范围之内或者之外,那么我们要是只想是否只属于某几个值中的一个呢,那么 这时应该用到集合看起来更优美。select 列A,列B from 表 where 列C in (集合值);这种集合方式又分为三种方式来实现。第一种:值集合为常量的 select 列A,列B from 表 where 列C in ('value1','value2','value3');第二种:条件部分也可以是独立的select语句 select 列A,列B from 表 where 列C in (select 列D from 表2);第三种:与not一起使用,表示不在某个范围内。
- 模糊查询:关键字like,select 列A,列B from 表 where 列C like 模式;模式由字符常量加上通配符组成,通配符代表一个或多个字符。%—包含零个或更多的字符的任意字符串;_(下划线)—任意单个字符。Sql语句表示:select * from table where name like '%李%';查出姓名中含有李的人信息。单个百分号也能使用,单个在前表示姓名中以'李'结尾的人名,单个在后表示以'李'开头的条件。当然如果是在某个百分数作为条件时,那么就需要转译。转译的方式如:使用转义符Escape Char 关键字或者 使用 '['符号来转义,select * from table where Comment like '%50[%%';
- 处理空值数据:强制为空或者不强制为空在实际操作中是相当有用的,比如 select A,B from table where C is (not) null;
5.4排序操作:
使用关键字order by 来进行排序。子句后面可以是单个或者多个列名,下面就分别介绍:
- 单列排序:select 列A,列B from t order by 列A (ASC or desc);asc升序,desc降序排列。默认是升序的排列方式所以asc可以不写。
- 多列排序:select 列A,列B,列C,列D from t order by 列A,列B,列C,列D;只是他们之间的排列时会讲究它的顺序的,先按照最前面的A来进行排列,然后依次往后。
总结:数据库的查询是数据库知识中最重要的知识,也是最复杂的语句。比如模糊查询、不重复数据的查询、排序这些都是经常用到的。要多注意这几点的语句。
数据库知识整理<五>的更多相关文章
- 数据库知识整理<六>
聚合函数与分组 6.1使用聚合函数进行数据统计: 聚合函数常见的有以下几种: count:返回该结果集中行的数目. sum:返回结果集中所有值的总和. avg:返回结果集中所有值的平均值. max:返 ...
- 数据库知识整理<一>
关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...
- 数据库知识整理<八>
联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...
- 数据库知识整理<二>
又继续写的博客,希望自己能坚持每天写博客.分享自己的点滴,对自己成长有帮助.今天下午高强度打了三个小时篮球,小腿都抽筋了.很爽,失落的心情似乎变得开明了一些.想到了一句话:“像SB式的坚持总会有好的收 ...
- 数据库知识整理<三>
保证数据的完整性: 3.1数据完整性概述: 数据完整性的意义:我们知道数据库能防止储存垃圾数据,RDBMS实现该功能主要是通过维护数据完整性来实现的.根据数据完整性实施方法我们将其分为四类:实体完整性 ...
- 数据库知识整理<四>
使用DML语句更改数据: 所谓DML语句是指数据库操作语句,其中包括的是对数据库数据的修改.删除.插入. 4.1添加新数据: 插入单行的记录:基本的SQL语句为-insert into <表明& ...
- 数据库知识整理<七>
组合查询: 7.1使用子查询: 嵌套在其他查询中的查询,我们称之为子查询.子查询本身也可能包含一个子查询.子查询也称为内部查询,而包含子查询的语句也称为外部查询. 所有的子查询可以被分为两个类别:子查 ...
- 【OGG】OGG基础知识整理
[OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...
- MySQL 索引知识整理(创建高性能的索引)
前言: 索引优化应该是对查询性能优化的最有效的手段了.索引能够轻易将查询性能提高几个数量级. // 固态硬盘驱动器有和机械硬盘启动器,有着完全不同的性能特性: 然而即使是固态硬盘,索引的原则依然成立, ...
随机推荐
- plsql中文乱码显示问号的解决办法
问题现象: PLSQL执行sql语句,不识别中文,输出的中文标题显示成问号????. 解决办法: 1. 登陆plsql,执行sql语句,输出的中文标题显示成问号????:条件包含中文,则无数据输出: ...
- Android IOS WebRTC 音视频开发总结(七一)-- H265/H264有何不同
本文整理自自网络,非原创,喜欢相关文章请关注我们的微信公众号:blackerteam H.265 H.265是ITU-TVCEG继H.264之后所制定的新的视频编码标准.H.265标准围绕着现有的视频 ...
- highcharts相关属性
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- iframe的用法
iframe 元素会创建包含另外一个文档的内联框架(即行内框架). 属性: 创建内联框架(JSP页面) <%@ page language="java" import=&qu ...
- C# 远程网络唤醒介绍及代码
一.定义 网络唤醒:唤醒休眠状态下的计算机,而不是已关机的计算机. 优势:可通过定时功能实现自动唤醒计算机,减少人力使用. 实现方法:通过被唤醒机的MAC地址进行广播发送请求,唤醒计算机. 二.硬件设 ...
- Jmeter上传文件
Jmeter上传文件 一.Fiddler抓包获取表单信息 操作被测系统,上传文件,Fiddler抓包获取提交表单信息如下:
- docker网络配置之自定义网桥
使用特定范围的 IP (仅适用于v1.x)不适用于新版的v1.1x Docker 会尝试寻找没有被主机使用的 ip 段,尽管它适用于大多数情况下,但是它不是万能的,有时候我们还是需要对 ip 进一步规 ...
- javascript 函数执行上下文
在js里,每个函数都有一个执行的上下文,我们可以通过this来访问. 如: 全局函数 function test(){ var local = this; } 我们发现local等于window(do ...
- android框架整理
http://blog.csdn.net/ma969070578/article/details/27808043 闲来无事.想搭个框架试试 分析一般应用 将资料整理整理 粗略统计 需要以下资料 1. ...
- [INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突
windows server 2008 r2 enterprise下的解决办法为:删除C:\Program Files (x86)\Oracle\Inventory\ContentsXML目录下的in ...