oracle
并操作 union  自动去除重复    如果想保留重复,需要使用union all
交操作intersect  自动去除重复    如果想保留重复,需要使用intersect all
差操作 except 自动去除重复    如果想保留重复,需要使用except all
 
聚集函数
平均值:avg
最小值:min
最大值:max
总和:sum
计数:count
sum和avg必须是数字
使用group by可以将其作用在一组元组集上。
有时候,对分组限定条件比对元组限定有用,使用having子句。
select count(*)
from customer 计算关系中元组的个数。自动去除重复。
ps:where应在having之前。
 
空值:可以使用where 。。is (not) null检测空值和非空值。
如果算数运算的一个输入有个为空。则该算数表达式为空。
如果比较运算符有空值作为比较对象,则结果为false。
总而言之:除了count(*)外所有聚集函数都忽略输入中的空值,空值的忽略有可能造成无输入参加函数运算。规定count在无输入的情况下值无0,其他返回空值。
 
嵌套子查询:子查询是嵌套在另一个查询中的select-from-where表达式。
集合成员测试:连接词in测试集合中的成员。
select distinct customer-name
from borrower
where customer-name in(select customer-name from depositor)
 
select distinct customer-name
from borrower,loan
where borrower.loan-number=loan.loan-number and branch-name="Perryridge"and
(branch-name,customer-name) in
(select branch-name,customer-name
from depositor,account
where depositor,account-number=account.acount-number)
 
not in 用法
找出所有在银行中有贷款但无账户的用户。
select distinct customer-name
from borrower
where customer-name not in(select customer-name from depositor) 
in和not in也能用于枚举集合。
 
集合的比较:
>some ,<some,>=some,<>some
=some等价于in,不过<>some并不等价于not in。在sql中,关键词any同义于some。
>all对应词组“比所有。。。大”
<>all等价于not in
=some等价于in <>all等价于not in
sql中聚集函数不能进行复合。因而max(avg(...))是不允许的。
所以为了找出平均余额最高的分支机构
select branch-name
from account
group by branch-name
having avg(balance)>=all(select avg(balance)
from account group by branch-name)
 
测试子查询的结果是否有元组。exists结构在作为参数的子查询非空时返回true
select customer-name
from borrower
where exists(select *
                      from despositor
                       where despositor.customer-name=borrower.customer-name)
在一个子查询中,合法的做法是只是用在该子查询中或包含该子查询的查询中定义的元组变量。如果一个元组变量既在子查询中定义,又在包含该子查询的查询中定义,则子查询中的定义有效。
 
测试是否存在重复的元组
如果作为参数的子查询的结果中没有重复元组,使用unique结构测试将返回true。
 
 
删除
delete from account
where branch-name in (select branch-name
from branch
where branch-city="NeedMan")
插入:
insert into account
values("","",1200)
更新:update acoount
set balance=balance*1.06
where balance>10000
 
关系的连接
内连接:
**表 inner join **表 on 关联条件
左外连接:
左外连接的计算如下:首先计算内连接的结果,然后,对左边关系loan中的每个与右边关系borrower中的任何元组在内连接时都不匹配的元组t,在结果中都加入一个元组r。r的从左边关系中得到的属性值被赋为t中的值,而r的其他属性值被赋值为空。
自然连接:**表 nature inner join **表
和on进行内连接的结果相似。但是关联条件的属性只出现一次。
 
sql-92中每一种连接操作都包含一个连接类型和连接条件。连接条件决定了两个关系中哪些元组相互匹配,以及连接结果中出现哪些属性。连接类型决定了如何处理连接条件不匹配的元组。
外连接,连接条件是必须的,内连接,连接条件是可选的。(如果忽略,将产生笛卡尔乘积)
关键字natural出现在连接类型前面,关键字 on,using出现在连接表达式的末尾。关键字inner和outer是可选的,因为根据连接类型的其余内容可以推断出是内连接还是外连接。
连接条件using(A1,A2,....,An)类似于自然连接的条件,只是连接属性不再是两个关系中所有的公共属性,而是属性A1,A2,...,An.A1,A2,...,An都必须是两边关系中的公共属性,而且在结果关系中只出现一次。
全外连接时左外连接和右外连接
 
sql中的域类型
sql-92标准支持很多种预定义的域类型,其中包括下列类型:
char(n)为固定长度的字符串。
varchar(n)
int
smallint
numeric(p,d)

sql要点的更多相关文章

  1. Oracle配置SQL空间操作要点说明

    前面配置PL/SQL直接通过SQL查询SDE空间数据库,网上已有诸多示例, 常见问题如下: ORA-06520: PL/SQL: 加载外部库时出错ORA-06522: Unable to load D ...

  2. 防止SQL注入的6个要点

    SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.防止SQL注入,我们可以从以下6个要点来进行: 1.永远不要信任用户的输入 ...

  3. SQL 2016 AlwaysOn 无域AlwaysOn配置要点

    环境准备: (1)操作系统:Windows Server 2016 Datacenter (2)SQL Server 2016 配置SQL  2016 AlwaysOn 要点 1,因为没有域所以需要在 ...

  4. 优化SQL Sever查询语句的几个要点

    1.不要在Where子句中的“=”左边进行函数.算术运算或其他表达式运算,否则系统将可能无法正确使用索引. 2.尽量不要在Where条件中使用函数,否则将不能利用索引. 3.在Where条件中使用明确 ...

  5. PL/SQL编程要点和注意点

    http://www.itpub.net/thread-1560427-3-1.html 1. 非关键字小写,关键字大写,用下划线分隔,用前缀区分变量与表列名.不强求变量初始值.2. 永远只捕获可预测 ...

  6. java笔试要点(java.sql包)

    提供JAVA存取数据库能力的包是 ( ) A: java.sql B: java.awt C: java.lang D: java.swing 解析: A,java.sql包提供Java存取数据库能力 ...

  7. sql server实用要点全解

    本文介绍sql server的相关的查询语句和标准T-sql语法 写在前面 sqlsever使用注意点 可以运行 services.msc 打开服务窗口 自增列默认无法手动设置,使用 set iden ...

  8. SQL Server 服务器磁盘测试之SQLIO篇(二)

    上次放出了一篇文章,针对磁盘卷簇大小默认4KB和自定义64KB进行了测试,测试内容为随机和顺序读写,大小为8KB和64KB,有人觉得这并没有照顾到SQL Server所有的IO使用情景.这篇测试文章, ...

  9. LinqToDB 源码分析——生成与执行SQL语句

    生成SQL语句的功能可以算是LinqToDB框架的最后一步.从上一章中我们可以知道处理完表达式树之后,相关生成SQL信息会被保存在一个叫SelectQuery类的实例.有了这个实例我们就可以生成对应的 ...

随机推荐

  1. Sharepoint页面项目展示画廊纯前端实现,后端用list/library简单维护

    需求背景: Sharepoint页面项目展示画廊.图片+文字,要求图片与文字用Sharepoint Library维护,然后在sharepoint页面上被调用,生成项目展示画廊. 解决方案(纯前端), ...

  2. HDU 1892 See you~ (二维树状数组)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1892 See you~ Problem Description Now I am leaving h ...

  3. java强制类型转换

    在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,St ...

  4. Python之路第一课Day1--随堂笔记

    课堂大纲: 一.Python介绍 二.发展史 三.Python 2 or 3? 四.安装 五.Hello World程序 六.变量 七.用户输入 八.模块初识 九..pyc是个什么鬼? 十.数据类型初 ...

  5. *HDU 2108 计算几何

    Shape of HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  6. Lua字符串库

    1. 基础字符串函数:    字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度:    2). string.rep(s,n) 返回字符串s重复n次的结 ...

  7. 多线程相关------互斥量Mutex

    互斥量(Mutex) 互斥量是一个可以处于两态之一的变量:解锁和加锁.只有拥有互斥对象的线程才具有访问资源的权限.并且互斥量可以用于不同进程中的线程的互斥访问. 相关函数: CreateMutex用于 ...

  8. 如何激活win10 win10激活工具下载

    http://www.2cto.com/os/201511/448815.html 官方的win10出来了,可是装在上电脑后要花钱才能用,费用要好几百呢,感觉很不值得,这里我教给大家个免费激活官方wi ...

  9. 学术作为一种志业 马克斯·韦伯Max Weber。

    注:原内容来自优酷自频带:梁文道 一千零一夜 学术作为一种志业马克斯·韦伯Max Weber. 韦伯是社会学的三大创始人之一.另外两个,一个是法国的涂尔干,还有一个就是我们中国人都知道的马克思.在其& ...

  10. 从程序员到CTO的Java技术路线图(我爱分享)

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...