首页 > 数据库 >006 数据库学习笔记--字符串操作函数 + 索引

006 数据库学习笔记--字符串操作函数 + 索引

时间:2023-06-07 11:12:04浏览次数:47  
标签:QUEUEDETAIL -- InsertDateTime 索引 006 select DESC

常用字符串操作函数:

--返回字符串中指定的子串出现的开始位置(索引从1开始)
select CHARINDEX('34','1234567890123') as startIndex
--返回字符串中指定的子串出现的开始位置(索引从1开始,字串前必须加%)
select PATINDEX('%34%','1234567890123') as startIndex

--大小写转化
select LOWER('abc') 小写,UPPER('abc') 大写

--去空格;	LTRIM去除左侧空格;		RTRIM去除左侧空格  
select LTRIM(' abc  ') 去除左侧空格,RTRIM('  abc   ') 去除右侧空格

--截取字符串 retrun 1234
--从左侧截取 截取几位
select LEFT('123456',4) as 从左侧开始截取截取4位 --return1234
--从右侧截取 截取几位
select RIGHT('123456',4) as 从左侧开始截取截取4位 --return3456
--从第几位开始截取,截取多长
select SUBSTRING('123456',2,4) as 从左侧第二个位置开始截取4位 -- return 2345

--将指定字符串重复指定次数
select REPLICATE('123',2)  -- return 123123

--字符串翻转
select REVERSE('123') --return 321

--替换字符串内容(将12替换为ab)
select REPLACE('123456','12','ab') --return ab3456

--替换字符串 可指定长度和位置(从第三位开始替换2为,替换为ab)
select STUFF('123456',3,2,'ab') -- return 12ab56

--应用
select 
(stuff((select '|' + b.DIRECTION from QUEUEDETAIL b where b.APPOINTSID = a.APPOINTSID for xml path('')),1,1,''))as DIRECTIONALL,
(stuff((select '|' + b.PARTOFCHECK  from QUEUEDETAIL b where b.APPOINTSID = a.APPOINTSID for xml path('')),1,1,''))as PARTOFCHECKALL
from QUEUEDETAIL b,HIS_QUEUE a

索引:

SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)

注:主键列默认为聚簇索引,聚簇索引只能有一个,非聚簇索引可以有多个;一般建议在对表创建索引时,使用日期类型的列创建且创建为降序。

 在创建复合索引是建议将日期列作为首列,同时在使用列上应遵循——使用频繁使用的列

索引分为:聚集索引、非聚集索引

1.聚集索引--表的存储顺序

在聚集索引中,每张表只能有一个;

在聚集索引中,索引的顺序决定表中数据的顺序;

在聚集索引中,在表中创建主键列或唯一约束时,会自动创建聚集索引(即在表中添加主键列时,数据库引擎会自动创建约束和索引);

2.非聚集索引

非聚集索引,可以有多个;

在非在聚集索引中,索引的结构完全独立与数据行的结构;

在非在聚集索引中,数据表中的数据行和索引的顺序不一致;

 查看指定表的索引 

exec sp_helpindex his_queue

go
exec sp_helpindex queuedetail

 应用示例:

USE DB
GO 
IF NOT EXISTS(SELECT Name FROM SysColumns WHERE id=Object_Id('[HIS_QUEUE]') AND Name = 'InsertDateTime')
BEGIN  
   ALTER TABLE HIS_QUEUE ADD InsertDateTime  datetime DEFAULT (CONVERT([date],CONVERT([varchar](100),getdate(),(23)),(23)))    
END
GO
IF NOT EXISTS(SELECT Name FROM SysColumns WHERE id=Object_Id('[QUEUEDETAIL]') AND Name = 'InsertDateTime')
BEGIN
   ALTER TABLE QUEUEDETAIL ADD InsertDateTime  datetime DEFAULT (CONVERT([date],CONVERT([varchar](100),getdate(),(23)),(23))) 
END
GO
update QUEUEDETAIL set InsertDateTime=(CONVERT([datetime], QUEUEDETAIL.APPOINTDATE  ,(20)))
update HIS_QUEUE set InsertDateTime=(CONVERT([datetime], HIS_QUEUE.[InsertDate]  ,(20)))
GO
 
/****** Object:  Index [DF_HISQUEUE_InsertDateTime]    Script Date: 2023-05-31 10:21:54 ******/
 
IF EXISTS (SELECT name FROM sys.indexes 
            WHERE name = N'DF_HISQUEUE_InsertDateTime')  
DROP INDEX [DF_HISQUEUE_InsertDateTime] ON [dbo].[HIS_QUEUE] WITH ( ONLINE = OFF )
GO
 
/****** Object:  Index [DF_HISQUEUE_InsertDateTime]    Script Date: 2023-05-31 10:21:54 ******/
CREATE CLUSTERED INDEX [DF_HISQUEUE_InsertDateTime] ON [dbo].[HIS_QUEUE]
(
    InsertDateTime desc,
    [APPOINTSDATE] DESC,
    [APPKIND] DESC,
    [HISEXAMNO] DESC,
    [HISID] DESC,
    [NAME] DESC,
    [QUEUENAME] DESC,
    [EXECUTEDEPT] DESC
 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
 
/****** Object:  Index [DF_QUEUEDETAIL_InsertDateTime]    Script Date: 2023-05-31 10:34:41 ******/
IF EXISTS (SELECT name FROM sys.indexes 
            WHERE name = N'DF_QUEUEDETAIL_InsertDateTime')  
DROP INDEX [DF_QUEUEDETAIL_InsertDateTime] ON [dbo].[QUEUEDETAIL] WITH ( ONLINE = OFF )
GO
 
/****** Object:  Index [DF_QUEUEDETAIL_InsertDateTime]    Script Date: 2023-05-31 10:34:41 ******/
CREATE CLUSTERED INDEX [DF_QUEUEDETAIL_InsertDateTime] ON [dbo].[QUEUEDETAIL]
(
    InsertDateTime desc,
    [APPOINTDATE] DESC,
    [APPKIND] DESC,
    [HISEXAMNO] DESC,
    [QUEUENAME] DESC,
    DIRECTION DESC,
    --CheckItemRemark DESC,
    PARTOFCHECK DESC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

 

 

标签:QUEUEDETAIL,--,InsertDateTime,索引,006,select,DESC
From: https://www.cnblogs.com/YYkun/p/17462788.html

相关文章

  • js 获取函数的调用者
    办法严格模式arguments.callee.caller不给使用了歪路子截取newError()的报错字符串stackconstgetCall=()=>{letcallArr=newError().stack.split("\n");callArr.splice(0,3);constpattern=/at(\w+)/;callArr=callArr.map(it=>(it.match(patt......
  • 启动服务ip问题
    同无线网段,我ping通别人,别人不通我   关闭火绒  ......
  • Shell
    Shell学当以立德,百行当以德为首!Shell概述Shell工具Shell在线编辑工具Shell发展KenThompson的sh是第一种UnixShell,WindowsExplorer是一个典型的图形界面ShellShell风格Shell风格有图形化Shell(GUIshell)、命令行shell(CommandLineInterfaceshell,CLIshell)Shell概念......
  • 在linux上用命令行解压
    Linux上用命令行解压压缩文件的命令是"tar"命令,具体如下:解压.tar文件:命令为tar-xvffilename.tar,其中,x表示解压,v表示打印详细信息到屏幕上,f表示指定被解压的文件。解压.tar.gz文件:命令为tar-xzvffilename.tar.gz,其中,x表示解压,z表示使用gzip压缩算法,v表示打印详......
  • 7、hive shell客户端与属性配置、内置运算符、函数(内置运算符与自定义UDF运算符)
    ApacheHive系列文章1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解2、hive相关概念详解--架构、读写文件机制、数据存储3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表4、hive的使用示例详解-事务表、视图、物......
  • 8、hive的关系运算、逻辑预算、数学运算、数值运算、日期函数、条件函数和字符串函数
    ApacheHive系列文章1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解2、hive相关概念详解--架构、读写文件机制、数据存储3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表4、hive的使用示例详解-事务表、视图、物......
  • 渗透测试、漏洞扫描、代码审计指什么?三者有何区别?
    在网络安全体系中,渗透测试、漏洞扫描、代码审计都是非常重要的存在,属于三种不同的安全评估类型,那么渗透测试、漏洞扫描、代码审计三者区别是什么?本文为大家简单介绍一下。漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发......
  • C#语言LIS系统如何接收和解析仪器数据HL7协议
    以下是使用C#实现HL7接口协议的接收和解析的简单示例:1.使用TcpListener类创建一个TCP服务器,用于监听指定端口上的连接请求:```TcpListenerserver=newTcpListener(IPAddress.Any,8888);server.Start();```2.等待客户端连接,并使用TcpClient类创建一个TCP连接:```TcpClie......
  • 语音聊天室源码技术美颜滤镜功能的配置
    爱美之心人皆有之,从古至今,大部分人都希望自己的容颜相貌完美无缺,都希望自己会被别人夸赞自己长得漂亮或是英俊,但是,容貌是天生的,是父母给的,就算是不太好看我们也只能去接受。随着科技的发展,有一个功能的出现,虽然不能从我们自身将我们的容貌改造变好,但是在拍照或是上网视频时可以将我......
  • 陶瓷过滤机PLC如何实现数据采集与远程监控
    陶瓷过滤机是一种新型、高效、节能的固液分离设备,主要是由过滤板、辊筒系统、搅拌系统、给排矿系统、真空系统等组成的,主要在有色金属矿的铅、锌、铜、钼、硫等精矿脱水。通过对陶瓷过滤机上的控制器PLC进行数据采集和远程监控,可以有效获取设备运行中的各项工艺参数,及时调控保障安......