数据库知识整理<五>
简单的数据查询:
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 索引知识整理(创建高性能的索引)
前言: 索引优化应该是对查询性能优化的最有效的手段了.索引能够轻易将查询性能提高几个数量级. // 固态硬盘驱动器有和机械硬盘启动器,有着完全不同的性能特性: 然而即使是固态硬盘,索引的原则依然成立, ...
随机推荐
- win10 Administrator没有管理员权限解决方案
方法/步骤 在运行框 里面输入“gpedit.msc”. 打开组策略编辑器,计算机配置->windows设置->安全设置->->本地策略->安全选项 找到“用户账户控制: ...
- JS转义 escape()、encodeURI()、encodeURIComponent()区别详解
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
- 百度地图API示例之设置地图最大、最小级别
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
- android开发--(SimpleAdapter)运用
SimpleAdapter的参数说明 第一个参数 表示访问整个android应用程序接口,基本上所有的组件都需要 第二个参数表示生成一个Map(String ,Object)列表选项 第三个 ...
- WebStorage 和 Cookie的区别
sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务器间不必 ...
- CSS+HTML网页设计与布局(学习笔记1)
1.在宽度未知时,使div块居中,可以添加以下属性: display:table;margin:0 auto;
- jQuery鼠标事件汇总
鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的. 1.click事件:点击鼠标左键时触发 $('p').click(function(){}); 示例: $('p').click(func ...
- linq 对Sum()函数的支持
首先看一段SQL语句: SELECT SUM(TASKAPPR) AS APPRCOUNT, SUM(TASKLOCKED) AS LOCKEDCOUNT, SUM(TASKCHECKED) AS C ...
- nginx环境下配置nagios-关于nagios配置文件nginx.conf
接上文:nginx环境下配置nagios-关于nginx.conf 配置如下: ; location ~ .*\.(php|php5)?$ { ...
- div层叠顺序额
在模态窗体中打开新div,结果该div不显示 该div不是没有显示,而是显示了,但是被这个模态状体挡住了 解决方法:修改z-index这个参数 该参数越大则显示在越上层,即可见