sqlserver中
A. 如何在sql Server中使用正则表达式
sqlserver中,主要有regexp_like,regexp_replace,regexp_substr,regexp_instr四个正则表达式函数。
1、regexp_like:
regexp_like(x,pattern[,match_option]),查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_option的取值如下:
'c'
说明在进行匹配时区分大小写(缺省值);
'i'
说明在进行匹配时不区分大小写;
'n'
(.)点号能表示所有单个字符,包括换行(俺还不知道什么地方有用到换行.只知道sql里面可以用chr(10)表示换行、
'm'
字符串存在换行的时候当作多行处理.这样$就可匹配每行的结尾.不然的话$只匹配字符串最后的位置、
示例:
select
*
from
emp
where
regexp_like(ename,'^a[a-z]*n$');
可以查找ename中以a开头以n结尾的行.例如ename为arwen或arwin或anden.但Arwen不能被匹配.因为默认是区分大小写.如果是
select
*
from
emp
where
regexp_like(ename,'^a[a-z]*n$','i')
则可以查找ename为Arwen的行记录。
2、regexp_instr:
REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[,
match_option]]]])用于在x中查找pattern。返回pattern在x中出现的位置。匹配位置从1开始。可以参考字符串函数
INSTR(),参数相关:
'start'
开始查找的位置;
'occurrence'
说明应该返回第几次出现pattern的位置;
'return_option'
说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后
的字符的位置;
'match_option'
修改默认的匹配设置.与regexp_like里面的相同.
示例:
DECLARE
V_RESULT
INTEGER
;
BEGIN
SELECT
REGEXP_INSTR('hello
world','o',1,1,0)
INTO
V_RESULT
FROM
DUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
结果为5,即字母o第一个次出现的位置。
如果regexp_instr('hello
world','o',1,1,n)其中n为除0之外的整数。比如1,3。则结果为6.表示第一次出现字母o的后面一个字符的位置。
如果regexp_instr('hello
world','o',1,2,0)则结果为9.表示第二次出现字母o的位置.
3、regexp_replace:
REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[,
match_option]]]])用于在x中查找pattern,并将其替换为replae_string。可以参考字符串函数
REPLACE(),参数同REGEXP_INSTR函数
示例:
DECLARE
V_RESULT
varchar2(90);
BEGIN
SELECT
REGEXP_REPLACE('hello
world','o','x',1,1)
INTO
V_RESULT
FROM
DUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
结果为hellx
world.
如果REGEXP_REPLACE('hello
world','o','x'),则结果为hellx
wxrld.
如果
REGEXP_REPLACE('hello
world','o','x',1,2)则结果为hello
wxrld.
4、regexp_substr:
REGEXP_SUBSTR(x,pattern[,start[,occurrence[,
match_option]]])用于在x中查找pattern并返回。可以参考字符串函数
SUBSTR(),参数同REGEXP_INSTR函数.
例如:
DECLARE
V_RESULT
VARCHAR2(255);
BEGIN
SELECT
REGEXP_SUBSTR('hello
world','l{2}')
INTO
V_RESULT
FROM
DUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END
;
结果为ll
查询到匹配的字符串才返回匹配的字符.没查到就返回空。
B. sql server中,N''表示什么意思
N'string' 表示string是个Unicode字符串
Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。
Unicode字符串常量支持增强的排序规则。
(2)sqlserver中扩展阅读:
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字节编码。
历史上存在两个独立的尝试创立单一字符集的组织,即国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟。前者开发的 ISO/IEC 10646 项目,后者开发的统一码项目。因此最初制定了不同的标准。
C. sqlserver中如何打印表头
如果想要把每页都有表头的话,可以在设置里面把表头给他打开,然后再设置表头的时候,然后设计一下内容,然后再打印的时候就可以打印出表头了。
为了让打印机的共享能够顺畅,我们必须在主机和客户机上都安装“文件和打印机的共享协议”。右击桌面上的“网上邻居”,选择“属性”命令,进入到“网络连接”文件夹,在“本地连接”图标上点击鼠标右键,选择“属性”命令,如果在“常规”选项卡的“此连接使用下列项目”列表中没有找到“Microsoft网络的文件和打印机共享”,则需要单击“安装”按钮。在弹出的对话框中选择“服务”,然后点击“添加”,在“选择网络服务”窗口中选择“文件和打印机共享”,最后单击“确定”按钮即可完成。
D. sql server中的怎么把数值型转换为字符串
有两种。
1.转换(int,字段名)
例如:选择convert(int,'3')
选择cast('3'作为int)
一般来说,没有必要将字符串转换为数字类型,如果你需要比较两个字段是相等的,但为字符串类型字段,类型,用“=”来比较这两个值是相等的,SQLSERVER将自动将字符串转换为一个数字,然后比较。
(4)sqlserver中扩展阅读:
注意事项:
这两个函数都执行强制转换,但是语法不同。据说有一些不同的转换,但我更习惯于使用转换函数,它更像一个函数的语法一方面,可以指定的格式转换,将时间和价值转换为一个字符串。
对于数据类型的确切值,转换后的字符串是我们存储的值。如:
声明@iintset@i=123456789print'test:'+转换(varchar(20),@i)
输出是:test:123456789
对于具有近似值的数据类型,情况就不那么简单了。
声明@ifloatset@i=123456789print'test:'+转换(varchar(20),@i):test:1.23457e+008
E. sql server 中的索引和约束
约束分为多种,如同你所说的有Primary
Key(
主键约束
),Foreign
Key(
外键
约束),还有
Check约束
等。
在Sql
Server中,索引基本有两种,为
聚簇索引
和
非聚簇索引
。索引的作用是提高查询速度。
以上就是约束和索引的基本区别。
F. SQL SERVER安装过程中提示该实例名称已在使用
1、首先按Win+R组合键调出运行界面,输入services.msc,如下图所示。
G. SQL server 中的@,@@、#,##分别代表什么
@ 表示局部变量
@@ 表示全局变量
# 表示本地临时表的名称,以单个数字符号打头;它们仅对当前的用户连接是可见的
## 表示全局临时表
使用事例如下图所示:
(7)sqlserver中扩展阅读:
本地临时表
以一个井号 (#) 开头的表名。只有在创建本地临时表连接是才能看得到,连接断开时临时表立马被删除,也就是到货本地临时表为创建它的该链接的会话所独有,或者说局部临时表是有当前用户创建的,并且只有当前用户的会话才可以访问。
全局临时表
以两个井号 (##) 开头的表名。在所有连接上都能看到全局临时表,也就是说只要全局临时表存在,那么对所有创建用户的会话后都是可见的。如果在创建全局临时表的连接断开前没有显式地除去全局临时表,那么只能等到其它所有任务都停止引用,这些表才会被删除。
当创建全局临时表的连接断开后,新的任务不能再引用它们,也就是说旧的任务才可以引用。当前的语句一执行完,任务与表之间的关联即被除去;因此通常情况下,只要创建全局临时表的连接断开,全局临时表也会同时被删除。
H. 在SQL Server中,用来显示数据库信息的系统存储过程是什么具体点啦
sp_helpdb [[@dbname=] 'name']
例如:exec sp_helpdb mydb
在 SQL Server 2005 中,许多管理活动和信息活动都可以使用系统存储过程来执行。系统存储过程可分为下表所示的几类。整张对应表请在MSDN中输入“系统存储过程”检索。
Active Directory 存储过程用于在 Microsoft Windows 2000 Active Directory 中注册 SQL Server 实例和 SQL Server 数据库。
(8)sqlserver中扩展阅读:
组织数据库的schema、表和字段以降低I/O的开销,将相关项保存在一起,并提前规划,以便随着数据量的增长,性能可以保持较高的水平。
设计数据表应尽量使其占用的空间最小化,表的主键应尽可能短。·对于InnoDB表,主键所在的列在每个辅助索引条目中都是可复制的,因此如果有很多辅助索引,那么一个短的主键可以节省大量空间。
I. sql server中 int型和bigint型的最大值是多少
存储大小为 8 个字节。
int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。tinyint从 0 到 255 的整型数据。存储大小为 1 字节。
(9)sqlserver中扩展阅读:
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。