SQL基于
‘壹’ 使用sql语句实现基于单个表的查询
表 名呢?列名呢? 什么都没有 我猜么?
select * from BOOK;
select * from BOOK where type = 'computer';
select type,count(*) from book group by type;
select * from readerinfo ;
select * from borrowinfo;
select bname,count(bkname) from book ,borrowinfo where book.bkid= borrowinfo.bkid;
select bkname,count(bname) from book,borrowinfo where book.bkid= borrowinfo.bkid;
select bname from book,borrowinfo where book.bkid= borrowinfo.bkid and type='computer';
select bkname from borrowinfo where book.bkid= borrowinfo.bkid and bname='李刚';
select count(bkname) from borrowinfo where book.bkid= borrowinfo.bkid and bname='李刚';
大概这样 字段 你看得懂把?
‘贰’ SQL Server 2005 是基于什么类型的关系
SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。
具体资料参考:http://ke..com/view/765751.htm
参考资料: http://ke..com/view/765751.htm
‘叁’ 如何用sql基于此会话显示系统时间
MySQL:select now()
SQLServer:SELECT GETDATE()
‘肆’ SQL的主要用途是什么
SQL(结构化查询语言)用于存取数据以及查询、更新和管理关系数据库系统。
SQL基于关系代数和元组关系演算,包括一个数据定义语言和数据操纵语言。SQL的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。尽管很大程度上是一种声明式编程(4GL),但是其也含有过程式编程的元素。
SQL是对埃德加·科德的关系模型的第一个商业化语言实现,这一模型在其1970年的一篇具有影响力的论文《一个对于大型共享型数据库的关系模型》中被描述。
尽管SQL并非完全按照科德的关系模型设计,但其依然成为最为广泛运用的数据库语言。SQL在1986年成为美国国家标准学会(ANSI)的一项标准,在1987年成为国际标准化组织(ISO)标准。此后,这一标准经过了一系列的增订,加入了大量新特性。
(4)SQL基于扩展阅读:
SQL是高级的非过程化编程语言,它允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式。而它的界面,能使具有底层结构完全不同的数据库系统和不同数据库之间,使用相同的SQL作为数据的输入与管理。
它以记录项目〔records〕的合集(set)〔项集,record set〕作为操纵对象,所有SQL语句接受项集作为输入,回提交的项集作为输出,这种项集特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它拥有极大的灵活性和强大的功能。
在多数情况下,在其他编程语言中需要用一大段程序才可实践的一个单独事件,而其在SQL上只需要一个语句就可以被表达出来。这也意味着用SQL可以写出非常复杂的语句,在不特别考虑性能下。
‘伍’ sql优化器基于规则优化器和基于成本优化器的区别
Oracle有两种优化器:RBO和CBO。 RBO的最大的问题在于它是靠硬编码在ORACLE数据库代码中的一系列规定的规则来决定目标SQL的执行计划的,而并没有考虑目标SQL中所涉及的对象的时间数据量,实际数据分布情况,这样一旦规定规则并不适用于该SQL中所涉及的实际对象时,RBO根据规定规则产生的执行计划就很可能不是当前情况下的最优执行计划了。
下面我们来看如下的例子:
select * from EMP_TEMP where manager_id=100;
假设在EMP_TEMP的manager_id上事先有名为IDX_MGR_TEMP的单键值B数索引,如果我们用的是RBO,则不管EMP_TEMP的数据量多大,也不管MANAGER_ID的数据分布如何,ORACLE执行的时候始终会选择做对IDX_MGR_TEMP的范围索引扫描,并回表取得EMP_TEMP中的记录。ORACLE是不会选择全表扫描EMP_TEMP表的,因为对于RBO而言,全表扫描的等级值要高于索引范围扫描值的等级值。
RBO的这种选择在表EMP_TEMP的数据量不大,而且满足manager_id=10的条件的记录少的情况下是影响不大的,如果表EMP_TEMP的数据量非常大,例如1000万条记录,
而且这1000万条记录的MANAGER_ID的值都是100,在这种极端的情况下,如果是RBO,显然它任然用IDX_MGR_TEMP索引范围扫描,这个时候性能肯定是很差的。因为相当于以单块顺序扫描所有的1000万行索引,然后再回表1000万次。显然没有使用多块以全表扫描方式直接扫描表EMP_TEMP的执行效率高。所以为了解决RBO的这个先天的缺陷,从ORACLE 7开始,ORACLE就引入了CBO。CBO在选择目标SQL的执行计划时,是用执行成本作为判断原则的。CBO会从目标SQL诸多可能的执行路径中选择一条成本值最小的执行路径作为其执行计划,各条执行路径的成本是根据目标SQL语句所涉及的表,索引,列等相关对象的统计信息计算出来的。这些信息存储在ORACLE的数据库的数据字典里,且从多个维度描述了ORACLE数据库里相关对象的实际数据量,实际数据分布等详细信息。
NOTE:ORACLE在对一条执行路径计算成本时,并不一定从头到尾完整计算完,只是要ORACLE在计算过程中发现算出来的部分成本值已经大于之前保存下来的到目前为止的最小成本值,就会马上终止对当前执行路径成本值的计算,并转而开始计算下一条新的执行路径的成本。这个过程会一直持续下去,直到目标SQL的给各个可能的执行路径全部计算完毕或已经达到预先定义好的待计算的执行路径数量的阀值。
RBO是根据硬编码在ORACLE数据库中来决定目标SQL的执行计划的,并没有考虑目标SQL所所涉及的对象的实际数据量,实际分布情况等。而CBO则恰恰相反,它会根据目标SQL的相关的对象的实际数据量,实际数据分布情况的统计信息来决定其执行计划,即意味着CBO是随着目标SQL中所涉及的对象的统计信息的变化而变化的。这就意味着只有统计信息相对准确,则用CBO来解析目标SQL会比同等条件下的RBO来解析得到正确执行计划的概率要高。
当然CBO并不是完美的,它的缺陷主要表现在:
1,CBO会默认目标SQL语句的WHERE条件中出现的各个列之间是独立的,没有关系的。
2,CBO会假设所有的目标SQL都是单独执行的,并且互不干扰。
3,CBO对直方图统计信息有诸多限制。
4,CBO在解析多个表关联的目标SQL时,可能会漏掉正确的执行计划。
‘陆’ SQL是干什么用的用的哪些方面
SQL可以有两个解释:
一个是微软的SQL Server,是一个大型的数据库系统软件,专门用于大批量的数据存储和管理。
另一个解释是Structured Query Language(结构化查询语言)的缩写,它是目前使用最广泛的数据库语言,SQL是由IBM发展起来的,后来被许多数据库软件公司接受而成为了业内的一个标准。就象SQL的名字一样,我们可以通过容易理解的查询语言,来和数据库打交道,从数据库中得到我们想要的数据。
对于SQL语言,有两个组成部分: DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
‘柒’ 请问什么语言能基于SQL开发,初学者,麻烦说个最简单的
这个要看你说的接口接的是什么。
SQL语言,只是操作数据库的标准语言。
一般的数据库相关程序开发会用到:
1、程序语言(C,java,python ....)
2、嵌入SQL语句,或者使用数据库操作模块
3、数据库系统(mysql,Mssql,oracle ...)
所以你要确定,你们要做的开发,是哪个环节的,这3块都有相应的接口
‘捌’ 所有数据库管理系统软件都基于sql语言吗
目前主流的数据库仍然是关系数据库,都是基于SQL语言的,新出现的NoSQL、NewSQL等数据库,都是对关系数据库的补充,而不是完全替代。
‘玖’ sql如何创建一个基于视图的视图
CREATE VIEW VV_View(Sno,SUM_Cno,AVG_Score)
AS
SELECT Sno,COUNT(Cno),AVG(Score)
FROM CS_View
GROUP BY Sno