⑴ 8、如何理解sql语言是面向集合的操作方式这句话的含义
意思是说,你所有的操作都是面向表里面的数据的,数据往往不是单条的,你需要关注的是满足什么特点的一个数据行的集合。
⑵ sql 集合函数的使用
use northwind
select avg(商品单价的字段名) from procts
select max(商品单价的字段名) from procts
select min(商品单价的字段名) from procts
⑶ sql 怎么才能学好
首先你这语句不正确:sal>(SELECT AVG(sal) FROM emp) 应该成e.sal.....,再你这结果有遗漏,少了一条数据。下面是初学者的理解sql和写sql的过程:
这个你可以这样理解:
首先是将所有用到的表都找出来:员工emp, 部门(dept)和工资等级表(salgrade)
其次:将这些表进行联结,并找出所需字段
SELECT e.empno,e.ename,d.dname,m.ename
FROM emp e,dept d, emp m
WHERE e.deptno(+)= d.deptno AND m.empno(+) = e.mgr;
--工资等级表(salgrade)无法联结,先放下,并选择emp为基表,因为要领导,所以需要自联结,此处应注意还有一个人没有领导,所以采用左联结,所以你原始的语句不完整
此时思考:薪金高于公司平均薪金的所有员工,则添加sal>(SELECT AVG(sal) FROM emp)
SELECT e.empno,e.ename,d.dname,m.ename
FROM emp e, dept d, emp m, salgrade s
WHERE e.deptno(+) = d.deptno AND m.empno(+) = e.mgr
AND e.sal>(SELECT AVG(sal) FROM emp);
再思考:公司的工资等级,则添加:e.sal BETWEEN s.losal AND s.hisal 条件过滤
SELECT e.empno,e.ename,d.dname,m.ename
FROM emp e, dept d, emp m, salgrade s
WHERE e.deptno(+) = d.deptno AND m.empno(+) = e.mgr
AND e.sal>(SELECT AVG(sal) FROM emp)
AND e.sal BETWEEN s.losal AND s.hisal;
至此则检查,看看有没有遗漏的,结束。
其实写SQL,初学者不仅仅要多练,还应该掌握一些方法和好的思维。其中比较好的方法是将SQL分解(特别是复杂的sql),就像上面的一样,逐一理解,逐层来写,这样久而久之就形成了一种好的逻辑思维,写起来就特别的顺畅,有逻辑,而且有时这样写出的语句往往是比较好的。另一个好的思维就是集合的思想,sql语句要有集合的思想(也就是数学中的集合),摒弃所谓单纯的面向对象和过程的思维。你可以去找找这方面的书籍,好像有一本叫SQL的沉思还不错,记不清了。
简单的SQL也许这些对你没有帮助,但是复杂的SQL,这是很好的解决思路。一不小心就说了这么多。
⑷ “SQL语言”具有哪些特点
SQL语言集数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)和数据控制(data control)功能于一体,充分体现了关系数据语言的特点和优点。其主要特点包括:
1.综合统一
SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境,例如用户在数据库投入运行后,还可根据需要随时地逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩充性。
2.高度非过程化
非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而用SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。
3.面向集合的操作方式
SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
非关系数据模型采用的是面向记录的操作方式,任何一个操作其对象都是一条记录。例如查询所有平均成绩在80分以上的学生姓名,用户必须说明完成该请求的具体处理过程,即如何用循环结构按照某条路径一条一条地把满足条件的学生记录读出来。
4.以同一种语法结构提供两种使用方式
SQL语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、PB)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的作法,为用户提供了极大的灵活性与方便性。
⑸ 简答:sql语言的特点
sql语言的特点:
1、SQL风格统一
SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、査询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境。
在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。
2、高度非过程化
非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”。
因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。
3、面向集合的操作方式
SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
4、以同一种语法结构提供两种使用方式
SQL既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入SQL命令对数据库进行操作。
作为嵌入式语言,SQL语句能够嵌入到高级语言程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的操作方式,为用户提供了极大的灵活性与方便性。
5、语言简洁,易学易用
SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、 ALTER、DROP、 SELECT、 INSERT、 UPDATE、 DELETE、GRANT、 REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。
⑹ sql 集合怎么比较
比如
ts1 和 ts2
可以用minus 来检查
select * from ts1
minus
select * from ts2
然后
select * from ts2
minus
select * from ts1
如果都返回0行数据,那么说明两者相同
⑺ SQL Server 集合查询
差是except 交是intersection
UNION的语法格式为:
SELECT <COLUMN_NAME>
FROM <TABLE_NAME >
WHERE < CONDITION>
UNION [ALL]
SELECT < COLUMN_NAME >
FROM < TABLE_NAME >
WHERE < CONDITION >
[, ...n ]
其中COLUMN_NAME为查询字段的名称。字段的定义(UNION 运算的一部分)不必完全相同,但它们必须能够通过隐式转换相互兼容。UNION 指定组合多个结果集并返回为单个结果集。ALL表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。
EXCEPT和INTERSECT运算符的使用语法如下所示。
SELECT <COLUMN_NAME>
FROM <TABLE_NAME >
WHERE < CONDITION>
{ EXCEPT | INTERSECT }
SELECT < COLUMN_NAME >
FROM < TABLE_NAME >
WHERE < CONDITION >
[,...n ]
运算符的查询选择列表中的所有对应项必须是相容的。有关更多信息,参见 SQL Reference 中的数据类型相容性表。
ORDER BY 子句(如果使用该子句的话)必须放在最后一个带有集合运算符的查询后面。对于每个运算符来说,如果列的名称与查询的选择列表中对应项的名称相同,则该列名只能在 ORDER BY 子句中使用。
在具有相同数据类型和相同长度的列之间进行的运算会产生一个具有该类型和长度的列。针对 UNION、EXCEPT 以及 INTERSECT 集合运算符的结果,参见 SQL Reference 中结果数据类型的规则。