跟随我在oracle学习php(19)
Order by子句
形式:
order by 排序字段1 [排序方式], 排序字段2 [排序方式], .....
说明:
对前面取得的数据(含from子句,where子句,group子句,having子句的所有结果)来指定按某个字段的大小进行排列(排序),排序只有2种方式:
正序: ASC(默认值),可以省略
倒序: DESC
如果指定多个字段排序(虽然不常见),则其含义是,在前一个字段排序中相同的那些数据里,再按后一字段的大小进行指定的排序。
limit子句
形式:
limit [起始行号start], 要取出的行数num
说明:
表示将前面取得的数据并前面排好之后(如果有),对之指定取得“局部连续的若干条”数据。
起始行号start:第一行的行号为0, 可以省略,则为默认行号(0)。
要取得的行数:如果结果集中从指定的行号开始到最后没有这么多行,则就只取到最后。
此子句非常有用——主要用于网页上最常见的一个需求(现象):分页。
分页原理:
分页的前提:人为指定每页显示的条数,$pageSize = 3;
显示(取得)第1页数据:select * from 表名 limit 0, $pageSize;
显示(取得)第2页数据:select * from 表名 limit 3, $pageSize;
显示(取得)第3页数据:select * from 表名 limit 6, $pageSize;
..................................................
$n:当前页码 $pageSize:每页显示多少条
显示(取得)第$n页数据:select * from 表名 limit ($n-1)*$pageSize, $pageSize;
group by 分组子句
形式:
group by 字段1 排序方式1,字段2 排序方式2, .....
通常都只进行一个字段的分组。
含义:
什么叫分组?就是将数据以某个字段的值为“依据”,分到不同的“组别”里。
分组的结果通常:
1,数据结果只能是“组”——没有数据本身的个体
2,数据结果就可能“丢失”很多特性,比如没有性别,身高,姓名,等等。
3,实际上,结果中通常只剩下“组”作为整体的信息:
首先是该组的本身依据值,
另外,这几个可能的值:组内成员的个数,组内某些字段的最大值,最小值,平均值,总和值。
其他字段,通常就不能用了。
4,如果是2个字段或以上分组,则其实是相当于对前一分组的组内,再进行后一依据的分组。
上述说明的结果,其实是反映在select语句中,就是select的“取出项”(输出项)就基本只剩下以上信息了
在分组查询中,基本都依赖于一下几个函数(聚合函数,统计函数):
count(*): 统计一组中的数量,通常用“*”做参数
max(字段名):获取该字段中在该组中的最大值。
min(字段名):获取该字段中在该组中的最小值。
sum(字段名):获取该字段中在该组中的总和。
avg(字段名):获取该字段中在该组中的平均值。
group_concat(字段名):获取该分组内的这个字段所有信息,每条逗号分隔
having子句
having子句其实概念跟where子句完全一样:
where是针对表的字段的值进行“条件判断”
having是只针对group by之后的“组”数据进行条件判断,即
其不能使用:字段名>10
但可以使用:count(字段名)>10, 或 max(price) > 2000, 但如果字段是分组依据,也可以。
当然,通常也可以使用select中的有效的字段别名,比如:
select count(*) as f1 , max(f1) as f2 from tab1 group by f3 having f1 > 5 and f2 < 1000;
连接查询:字段的扩展
两张表字段的集合
Exp:select * from teacher join course on teacher.tno=course.tno
联合查询:数据的扩展
Exp:Select sname,ssex from student
Union
Select tname,tsex from teacher
子查询:把一个查询的结果当做另一个查询的条件
exp:SELECT sno,cno FROM score WHERE degree=(SELECT degree FROM score ORDER BY degree DESC LIMIT 1);
视图
单词:view
什么是视图:
视图可以看作是一个“临时存储的数据所构成的表”(非真实表),其实本质上只是一个select语句。只是将该select语句(通常比较复杂)进行一个“包装”,并设定了一个名字,其后就可以通过该名字并把该名字当作一个表来使用。
如果一个select语句比较复杂,又在多个页面需要使用它,则可以将它做成一个视图,方便使用。
又如果,某个数据表中的某些字段不想给别人看(不同公司之间的数据业务交换的时候),但另一个又需要给人看,此时也可以使用视图。
视图创建形式:
create view 视图名 [(列名1,列名2,...)] as 一条复杂select语句;
可以将select语句所取得的列重新命名,但也可以不重新命名,则使用select语句中的给定列名。
视图的使用
其实就是当作一个查询表来用(通常只用于select)
select * from 视图名 where 条件 order by .....。
修改视图:
alter view 视图名 [(列名1,列名2,...)] as select语句;
删除视图:
drop view [if exists] 视图名;
跟随我在oracle学习php(19)的更多相关文章
- Oracle 学习笔记 19 -- 触发器和包浅析(PL/SQL)
触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的 ...
- 跟随我在oracle学习php(10)
正则表达式 做验证 做匹配 用符号来描述书写规则:/ 中间写正则表达式 /^ :匹配开头,$:匹配结尾 : /^ve/以ve开头的 /ve$/以ve结尾\d:一个任意的数字\w:一个任意的数字或字母\ ...
- 跟随我在oracle学习php(18)
修改表: 一般概述 通常,创建一个表,能搞定(做到)的事情,修改表也能做到.大体来说,就可以做到: 增删改字段: 增:alter table 表名 add [column] 字段名 字段类 ...
- 跟随我在oracle学习php(17)
通用设定形式 定义一个字段的时候的类型的写法. 比如: create table tab1 (f1 数据类型 ); 数据类型: 类型名[(长度n)] [unsigned] [zerofil ...
- 跟随我在oracle学习php(16)
数据库的增删改查 增:create database [if not exists ] 数据库名 [charset 字符集] [collate 字符排序规则]: 说明: 1,if n ...
- 跟随我在oracle学习php(15)
开发环境 独立开发环境:组成 Windows/Linux php Apache MySQL 集成开发环境:phpstudy wamp xammp 关系数据库: SQL: Struct Query La ...
- 跟随我在oracle学习php(14)
CSS3的@keyframes用法详解: 此属性与animation属性是密切相关的,关于animation属性可以参阅CSS3的animation属性用法详解一章节. 一.基本知识: keyfram ...
- 跟随我在oracle学习php(13)
常用的css样式 [class~="col-6"]:选择我所有类名中包含有col-6独立单词的元素 [class*="col-"]:选择所有类名中含有" ...
- 跟随我在oracle学习php(12)
DOM 文档对象模型 body:(什么时候)找到标签 操作标签找到标签:(都会返回一个js对象)document.getElementById() 通过iddocument.getElementsBy ...
随机推荐
- 用Flow编写更好的js代码
关于本文: 原文地址 翻译地址 译者:野草 本文发表于前端早读课[第897期] 你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的 ...
- 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到F盘下任意目录
package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- JS动态添加行列
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Add-Delete Row.a ...
- random shutil shevle xml
random 模块 import random print(random.random())#(0,1)----float 大于0且小于1之间的小数 print(random.randint(1,3) ...
- 顺手写一下HTTP协议
本文目录 一 什么是HTTP协议 二 Http的特点 三 Http报文 回到目录 一 什么是HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写 ...
- net应用程序池自动关闭的解决方法
while (true) { using (ServerManager sm = ServerManager.OpenRemote("localhost")) { string p ...
- asp.net简繁体转换
简繁体转换添加Microsoft.VisualBasic.dll引用 //简转繁 string str= Microsoft.VisualBasic.Strings.StrConv("民生银 ...
- asp.net 获取网站根目录总结
.CSHttpContext.Current.Server.MapPath();//所在文件夹路径System.Web.HttpContext.Current.Request.PhysicalAppl ...
- HDU4514 湫湫系列故事——设计风景线 ——树的直径/树形dp+判环
中文题面,给出一个图,问能不能成环,如果可以就输出YES.否则输出该树的直径. 这里的判环我们用路径压缩的并查集就能很快的判断出来,可以在输入的同时进行判断.这题重点就是求树的直径. 树直径的性质可以 ...
- Linux系统安装笔记
1.下载CentOS系统镜像: 很多资料都是CentOS6的,7的比较少,所以我决定还是用CentOS6来学习. 地址:http://vault.centos.org/6.8/isos/x86_64/ ...