sqlserver真人发音,记一次sqlserver连接Oracle
sqlserver真人发音,记一次sqlserver连接Oracle详细介绍
本文目录一览: SQL Server 2000的正确读音
SQLServer [sik?u 's?:v?]。
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer索引结构及其使用(一)
一、深入浅出理解索引结构
实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:
其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
如果您认识某个字,您可以快速地从自动中查到这个字。但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。很显然,这些字并不是真正的分别位于“张”字的上下方,现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。我们可以通过这种方式来找到您所需要的字,但它需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。我们把这种目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。
通过以上例子,我们可以理解到什么是“聚集索引”和“非聚集索引”。进一步引申一下,我们可以很容易的理解:每个表只能有一个聚集索引,因为目录只能按照一种方法进行排序。
二、何时使用聚集索引或非聚集索引
下面的表总结了何时使用聚集索引或非聚集索引(很重要):
动作描述 使用聚集索引 使用非聚集索引 列经常被分组排序 应 应 返回某范围内的数据 应 不应 一个或极少不同值 不应 不应 小数目的不同值 应 不应 大数目的不同值 不应 应 频繁更新的列 不应 应 外键列 应 应 主键列 应 应 频繁修改索引列 不应 应
事实上,我们可以通过前面聚集索引和非聚集索引的定义的例子来理解上表。如:返回某范围内的数据一项。比如您的某个表有一个时间列,恰好您把聚合索引建立在了该列,这时您查询2004年1月1日至2004年10月1日之间的全部数据时,这个速度就将是很快的,因为您的这本字典正文是按日期进行排序的,聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可;而不像非聚集索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到具体内容。
三、结合实际,谈索引使用的误区
理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区,以便于大家掌握索引建立的方法。
1、主键就是聚集索引
这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。虽然SQL SERVER默认是在主键上建立聚集索引的。
通常,我们会在每个表中都建立一个ID列,以区分每条数据,并且这个ID列是自动增大的,步长一般为1。我们的这个办公自动化的实例中的列Gid就是如此。此时,如果我们将这个列设为主键,SQL SERVER会将此列默认为聚集索引。这样做有好处,就是可以让您的数据在数据库中按照ID进行物理排序,但笔者认为这样做意义不大。
显而易见,聚集索引的优势是很明显的,而每个表中只能有一个聚集索引的规则,这使得聚集索引变得更加珍贵。
从我们前面谈到的聚集索引的定义我们可以看出,使用聚集索引的好处就是能够根据查询要求,迅速缩小查询范围,避免全表扫描。在实际应用中,因为ID号是自动生成的,我们并不知道每条记录的ID号,所以我们很难在实践中用ID号来进行查询。这就使让ID号这个主键作为聚集索引成为一种资源浪费。其次,让每个ID号都不同的字段作为聚集索引也不符合“大数目的不同值情况下不应建立聚合索引”规则;当然,这种情况只是针对用户经常修改记录内容,特别是索引项的时候会负作用,但对于查询速度并没有影响。
在办公自动化系统中,无论是系统首页显示的需要用户签收的文件、会议还是用户进行文件查询等任何情况下进行数据查询都离不开字段的是“日期”还有用户本身的“用户名”。
通常,办公自动化的首页会显示每个用户尚未签收的文件或会议。虽然我们的where语句可以仅仅限制当前用户尚未签收的情况,但如果您的系统已建立了很长时间,并且数据量很大,那么,每次每个用户打开首页的时候都进行一次全表扫描,这样做意义是不大的,绝大多数的用户1个月前的文件都已经浏览过了,这样做只能徒增数据库的开销而已。事实上,我们完全可以让用户打开系统首页时,数据库仅仅查询这个用户近3个月来未阅览的文件,通过“日期”这个字段来限制表扫描,提高查询速度。如果您的办公自动化系统已经建立的2年,那么您的首页显示速度理论上将是原来速度8倍,甚至更快。
在这里之所以提到“理论上”三字,是因为如果您的聚集索引还是盲目地建在ID这个主键上时,您的查询速度是没有这么高的,即使您在“日期”这个字段上建立的索引(非聚合索引)。下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条):
(1)仅在主键上建立聚集索引,并且不划分时间段:
Select gid,fariqi,neibuyonghu,title from tgongwen
用时:128470毫秒(即:128秒)
(2)在主键上建立聚集索引,在fariq上建立非聚集索引:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:53763毫秒(54秒)
(3)将聚合索引建立在日期列(fariqi)上:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:2423毫秒(2秒)
虽然每条语句提取出来的都是25万条数据,各种情况的差异却是巨大的,特别是将聚集索引建立在日期列时的差异。事实上,如果您的数据库真的有1000万容量的话,把主键建立在ID列上,就像以上的第1、2种情况,在网页上的表现就是超时,根本就无法显示。这也是我摒弃ID列作为聚集索引的一个最重要的因素。得出以上速度的方法是:在各个select语句前加:
declare @d datetime
set @d=getdate()
并在select语句后加:
select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())
2、只要建立索引就能显著提高查询速度
事实上,我们可以发现上面的例子中,第2、3条语句完全相同,且建立索引的字段也相同;不同的仅是前者在fariqi字段上建立的是非聚合索引,后者在此字段上建立的是聚合索引,但查询速度却有着天壤之别。所以,并非是在任何字段上简单地建立索引就能提高查询速度。
从建表的语句中,我们可以看到这个有着1000万数据的表中fariqi字段有5003个不同记录。在此字段上建立聚合索引是再合适不过了。在现实中,我们每天都会发几个文件,这几个文件的发文日期就相同,这完全符合建立聚集索引要求的:“既不能绝大多数都相同,又不能只有极少数相同”的规则。由此看来,我们建立“适当”的聚合索引对于我们提高查询速度是非常重要的。
3、把所有需要提高查询速度的字段都加进聚集索引,以提高查询速度
上面已经谈到:在进行数据查询时都离不开字段的是“日期”还有用户本身的“用户名”。既然这两个字段都是如此的重要,我们可以把他们合并起来,建立一个复合索引(compound index)。
很多人认为只要把任何字段加进聚集索引,就能提高查询速度,也有人感到迷惑:如果把复合的聚集索引字段分开查询,那么查询速度会减慢吗?带着这个问题,我们来看一下以下的查询速度(结果集都是25万条数据):(日期列fariqi首先排在复合聚集索引的起始列,用户名neibuyonghu排在后列):
(1)select gid,fariqi,neibuyonghu,title from Tgongwen where fariqi>''2004-5-5''
查询速度:2513毫秒
(2)select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi>''2004-5-5'' and neibuyonghu=''办公室''
查询速度:2516毫秒
(3)select gid,fariqi,neibuyonghu,title from Tgongwen where neibuyonghu=''办公室''
查询速度:60280毫秒
从以上试验中,我们可以看到如果仅用聚集索引的起始列作为查询条件和同时用到复合聚集索引的全部列的查询速度是几乎一样的,甚至比用上全部的复合索引列还要略快(在查询结果集数目一样的情况下);而如果仅用复合聚集索引的非起始列作为查询条件的话,这个索引是不起任何作用的。当然,语句1、2的查询速度一样是因为查询的条目数一样,如果复合索引的所有列都用上,而且查询结果少的话,这样就会形成“索引覆盖”,因而性能可以达到。同时,请记住:无论您是否经常使用聚合索引的其他列,但其前导列一定要是使用最频繁的列。
四、其他书上没有的索引使用经验总结
1、用聚合索引比用不是聚合索引的主键速度快
下面是实例语句:(都是提取25万条数据)
select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''
使用时间:3326毫秒
select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid<=250000
使用时间:4470毫秒
这里,用聚合索引比用不是聚合索引的主键速度快了近1/4。
2、用聚合索引比用一般的主键作order by时速度快,特别是在小数据量情况下
select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by fariqi
用时:12936
select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by gid
用时:18843
这里,用聚合索引比用一般的主键作order by时,速度快了3/10。事实上,如果数据量很小的话,用聚集索引作为排序列要比使用非聚集索引速度快得明显的多;而数据量如果很大的话,如10万以上,则二者的速度差别不明显。
3、使用聚合索引内的时间段,搜索时间会按数据占整个数据表的百分比成比例减少,而无论聚合索引使用了多少个:
select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi>''2004-1-1''
用时:6343毫秒(提取100万条)
select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi>''2004-6-6''
用时:3170毫秒(提取50万条)
select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''
用时:3326毫秒(和上句的结果一模一样。如果采集的数量一样,那么用大于号和等于号是一样的)
select gid,fariqi,neibuyonghu,reader,title from Tgongwen
where fariqi>''2004-1-1'' and fariqi<''2004-6-6''
用时:3280毫秒
4、日期列不会因为有分秒的输入而减慢查询速度
下面的例子中,共有100万条数据,2004年1月1日以后的数据有50万条,但只有两个不同的日期,日期精确到日;之前有数据50万条,有5000个不同的日期,日期精确到秒。
select gid,fariqi,neibuyonghu,reader,title from Tgongwen
where fariqi>''2004-1-1'' order by fariqi
用时:6390毫秒
select gid,fariqi,neibuyonghu,reader,title from Tgongwen
where fariqi<''2004-1-1'' order by fariqi
用时:6453毫秒
五、其他注意事项
“水可载舟,亦可覆舟”,索引也一样。索引有助于提高检索性能,但过多或不当的索引也会导致系统低效。因为用户在表中每加进一个索引,数据库就要做更多的工作。过多的索引甚至会导致索引碎片。
所以说,我们要建立一个“适当”的索引体系,特别是对聚合索引的创建,更应精益求精,以使您的数据库能得到高性能的发挥。
当然,在实践中,作为一个尽职的数据库管理员,您还要多测试一些方案,找出哪种方案效率、最为有效。
sqlserver中有“ circle”这个单词吗?
其实这里不存在“circle”,只是你误以为大家读“circle”来指代SQL吧。SQL读快起来就有点英文“circle”的发音。
结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。
不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
已经建立SQL 表,如何在字段中插入GUID数据?
sqlserver:insert into 表名 (字段名) values (newid())。
oracle:insert into 表名(字段名) values (sys_guid())。
mysql:insert into 表名(字段名) values(UUID())。
sql一般指结构化查询语,结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
GUID(全称:Globally Unique Identifier),是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。
GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
GUID一词有时也专指微软对UUID标准的实现。另外,还有磁盘分区表方案的含义,全局唯一标识分区表是一个实体硬盘的分区表的结构布局的标准。
SQL SERVER服务器是做什么用的?
sql
server
browser这个服务作用的字面解释是:将sql
server连接信息提供给客户端计算机。
sql
server
browser以
windows
服务的形式运行,侦听对
microsoft
sql
server
资源的传入请求,并提供计算机上安装的
sql
server
实例的相关信息。sql
server
browser可用于执行下列操作:
浏览可用服务器列表
连接到正确的服务器实例
连接到专用管理员连接
(dac)
端点
这个东西么 去网上去找,你问这个问题就让人觉得你是一个很不爱钻研的人,这样子就算告诉你这个问题,你也不会有成长多少。
这个一般是数据库服务器
专门用来接收存储数据的
一般大型软件都用的上他
存储和查询数据的
SQL是一种结构化数据库查询语言,其发音为“sequel”或“S-Q-L”。尽管MICROSOFT以其特有的方式加入了所有权声明,但它在大多数据库应用中近乎成为一种标准。简言之,它是一种使用你选择的标准从数据库记录中选择某些记录的方法。
SQL是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语言中的约束也是根据这个分类来划分的,比如:你在ORACLE中建立数据库链,那么只有DML类语言能对链接的数据库进行操作。
SQL作为一个ANSI标准,一直在不断改进,现在最新的标准是SQL99。ORACLE不但对标准的SQL完全兼容,而且有自己更为方便的增强SQL,所以这里介绍的主要是ORACLE8中使用的SQL。
oracle与sql的区别(常用函数)
许多软件公司都理解开发不依赖于特定数据库类型(例如Oracle SQL Server DB )的应用程序的重要性 它可以让客户们选择自己习惯的平台 一般来说 软件开发人员都能够识别出他们的负责数据库维护的客户 和必须使用现有平台和个性化的客户
关于Oracle和SQL Server之间的区别 已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别 在这篇文章里面 我将会从应用程序的角度向你描述SQL erver 和oracle平台之间的区别 并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法 与此同时 我不会再论讨对于应用程序来说 两个平台之间显而易见的区别 例如表的分割和索引
定义通用接口和语言有很少的几种通用语言和接口可以让应用程序不依赖于数据库 想来也可以以同样的方式应用在关系型数据库上面: ANSI是美国国家标准局定义的 这是一家志愿者成员的组织(用私人基金运转) 他们在有关设备和程序等广泛领域内开发了国家承认的标准 在数据库领域 ANSI定义了编写SQL命令的标准 假设命令可以运行在任何的数据库上 而不需要更改命令的语法
ODBC是开放数据库连接(ODBC)接口 微软定义的 它可以让应用程序访问数据库管理系统(DBMS)中的数据 使用SQL作为访问数据的标准 ODBC允许最大的互联性 这意味着一个单个的应用程序可以访问不同的数据库管理系统 然后 应用程序终端用户可以添加开放数据库连接(ODBC)数据库驱动来将应用程序与他们所选择的数据库管理系统链接上 OLE DB是ODBC的继承者 是一组允许例如基于VB C++ Access等任何可以连接到类似SQL Server Oracle DB MySQL等后台的 前台 的软件组件 在许多种情况下 OLE DB组件都比原有的ODBC提供了好得多的性能
JDBC(Java数据库连接)应用程序接口是Java编程语言和广泛范围的数据库 SQL数据库和其他表列数据源(例如电子表格或者普通文本文件)之间 进行不依赖于数据库的连接的行业标准 JDBD应用程序接口为基于SQL的数据库访问提供了调用级别的应用程序接口 真实世界中的通用接口不幸的是 并不是所有数据库级别的命令都是ANSI 每个数据库平台都有自己的扩展功能 对于ANSI或者通用接口 一般来说都代表着几本功能 因此也可能意味着丧失了性能方面的竞争力 对于小型数据库和小型应用程序来说 要维护对数据库的通用访问是简单的 但是当数据库和/或应用程序变得越来越大 越来越复杂 你就不得不向代码中添加功能
SQL Server和Oracle的常用函数对比
数学函数
绝对值
S:select abs( ) value
O:select abs( ) value from dual
取整(大) S:select ceiling( ) value O:select ceil( ) value from dual
取整(小)
S:select floor( ) value O:select floor( ) value from dual
取整(截取)
S:select cast( as int) value O:select trunc( ) value from dual
四舍五入S:select round( ) value O:select round( ) value from dual
e为底的幂S:select Exp( ) value O:select Exp( ) value from dual
取e为底的对数S:select log( ) value O:select ln( ) value from dual;
取 为底对数
S:select log ( ) value
O:select log( ) value from dual;
取平方
S:select SQUARE( ) value
O:select power( ) value from dual
取平方根
S:select SQRT( ) value
O:select SQRT( ) value from dual
求任意数为底的幂S:select power( ) value O:select power( ) value from dual
取随机数
S:select rand() value
O:select sys dbms_random value( ) value from dual;
取符号
S:select sign( ) value
O:select sign( ) value from dual
三角函数相关
圆周率S:SELECT PI() value
O:不知道
sin cos tan 参数都以弧度为单位
例如 select sin(PI()/ ) value得到 (SQLServer)
Asin Acos Atan Atan 返回弧度
弧度角度互换(SQLServer Oracle不知道)
DEGREES 弧度 〉角度
RADIANS 角度 〉弧度
数值间比较
求集合最大值
S:select max(value) value from
(select value
union
select value
union
select value
union
select value)a
O:select greatest( ) value from dual
求集合最小值
S:select min(value) value from
(select value
union
select value
union
select value
union
select value)a
O:select least( ) value from dual
如何处理null值(F 中的null以 代替) S:select F IsNull(F ) value from Tbl O:select F nvl(F ) value from Tbl
字符串函数
求字符序号
S:select ascii( a ) value
O:select ascii( a ) value from dual
从序号求字符
S:select char( ) value
O:select chr( ) value from dual
连接
S:select + + value
O:select CONCAT( )|| value from dual
子串位置 返回 S:select CHARINDEX( s sdsq ) value O:select INSTR( sdsq s ) value from dual
模糊子串的位置 返回 参数去掉中间%则返回 // 本文转自 C++Builder 研究 ?i= &d=dwn rn S:select patindex( %d%q% sdsfasdqe ) value O:oracle没发现 但是instr可以通过第四个参数控制出现次数select INSTR( sdsfasdqe sd ) value from dual 返回
求子串S:select substring( abcd ) value O:select substr( abcd ) value from dual
子串代替 返回aijklmnef S:SELECT STUFF( abcdef ijklmn ) value O:SELECT Replace( abcdef bcd ijklmn ) value from dual
子串全部替换
S:Replace
O:select Translate( fasdbfasegas fa 我 ) value from dual
长度S:len datalength
O:length
大小写转换 lower upper
单词首字母大写
S:没发现
O:select INITCAP( abcd dsaf df ) value from dual
左补空格(LPAD的第一个参数为空格则同space函数)
S:select space( )+ abcd value
O:select LPAD( abcd ) value from dual
右补空格(RPAD的第一个参数为空格则同space函数)
S:select abcd +space( ) value
O:select RPAD( abcd ) value from dual
删除空格S:ltrim rtrim O:ltrim rtrim trim
重复字符串S:select REPLICATE( abcd ) value
O:没发现
发音相似性比较(这两个单词返回值一样 发音相同) S:SELECT SOUNDEX ( Smith ) SOUNDEX ( Smythe ) O:SELECT SOUNDEX ( Smith ) SOUNDEX ( Smythe ) from dual SQLServer中用SELECT DIFFERENCE( Smithers Smythers ) 比较soundex的差返回 为同音 最高
日期函数
系统时间
S:select getdate() value
O:select sysdate value from dual
前后几日
直接与整数相加减
求日期S:select convert(char( ) getdate() ) value
O:select trunc(sysdate) value from dual
select to_char(sysdate yyyy mm dd ) value from dual
求时间S:select convert(char( ) getdate() ) value O:select to_char(sysdate hh :mm:ss ) value from dual
取日期时间的其他部分
S:DATEPART和DATENAME函数(第一个参数决定)
O:to_char函数第二个参数决定
参数 下表需要补充
year yy yyyy quarter qq q (季度) month mm m (m O无效) dayofyear dy y (O表星期) day dd d (d O无效) week wk ww (wk O无效)
weekday dw (O不清楚)
Hour hh hh hh (hh hh S无效) minute mi n (n O无效) second ss s (s O无效)
millisecond ms (O无效)
当月最后一天
S:不知道
O:select LAST_DAY(sysdate) value from dual
本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate ) vaule FROM DUAL;
字符串转时间
S:可以直接转或者select cast( as datetime) value
O:SELECT To_date( : : yyyy mm dd hh mi ss ) vaule FROM DUAL;
求两日期某一部分的差(比如秒)
S:select datediff(ss getdate() getdate()+ ) value O:直接用两个日期相减(比如d d = )
SELECT (d d )* * * vaule FROM DUAL;
根据差值求新的日期(比如分钟)
S:select dateadd(mi getdate()) value
O:SELECT sysdate+ / / vaule FROM DUAL;
求不同时区时间
S:不知道
O:SELECT New_time(sysdate ydt gmt ) vaule FROM DUAL;
时区参数 北京在东 区应该是Ydt
AST ADT大西洋标准时间
BST BDT白令海标准时间
CST CDT中部标准时间
EST EDT东部标准时间
GMT格林尼治标准时间
HST HDT阿拉斯加—夏威夷标准时间
MST MDT山区标准时间
NST纽芬兰标准时间
PST PDT太平洋标准时间
YST YDT YUKON标准时间
Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:
函数Oracle Microsoft SQL Server
把字符转换为ASCII ASCII ASCII
字串连接CONCAT (expressiοn + expressiοn)
把ASCII转换为字符CHR CHAR
返回字符串中的开始字符(左起)INSTR CHARINDEX
把字符转换为小写LOWER LOWER
把字符转换为大写UPPER UPPER
填充字符串的左边LPAD N/A
清除开始的空白LTRIM LTRIM
清除尾部的空白RTRIM RTRIM
字符串中的起始模式(pattern)INSTR PATINDEX
多次重复字符串RPAD REPLICATE
字符串的语音表示SOUNDEX SOUNDEX
重复空格的字串RPAD SPACE
从数字数据转换为字符数据TO_CHAR STR
子串SUBSTR SUBSTRING
替换字符REPLACE STUFF
将字串中的每个词首字母大写INITCAP N/A
翻译字符串TRANSLATE N/A
字符串长度LENGTH DATELENGTH or LEN
列表中最大的字符串GREATEST N/A
列表中最小的字符串LEAST N/A
lishixinzhi/Article/program/Oracle/201311/16561
insert into 语句怎么写?(Sqlserver)
插入书写方式:
1、INSERTINTOt1(field1,field2) VALUE(‘001‘,‘002‘);
最好的做法明确插入的每一列,列于查错,而且漏列的几率会降低。
2、INSERTINTOt1(field1,field2)values(‘001‘,‘002‘),(‘003‘,‘004‘)......;
能够批量插入数据最好批量插入,但是数据过于庞大时,最好分批次批量插入。
3、INSERTINTOt2(field1,field2)SELECTcol1,col2FROMt1WHERE??;
这里由于可以指定插入到talbe2中的列,以及可以通过相对较复杂的查询语句进行数据源获取,可能使用起来会更加的灵活,但我们也必须注意,在指定目标表的列时,一定要将所有非空列都填上,否则将无法进行数据插入。
容易出错的地方,当我们写成如下方式3的变形简写格式:
变形: INSERTINTOt2SELECTid,name,addressFROMt1。
此时,如果略掉了目标表的列的话,则默认会对目标表的全部列进行数据插入,且SELECT后面的列的顺序必须和目标表中的列的定义顺序完全一致才能完成正确的数据插入,这是一个很容易被忽略的地方,值得注意。
扩展资料
[WITH
[,...n]]INSERT{ [TOP(expression)[PERCENT]]
[INTO]
{