悠闲饭团
这个作者很懒,什么都没留下…
展开
-
最新退休日期SQL语句(延迟退休)
员工表按性别,生日生成退休日期,及对应的延退月份原创 2024-09-19 13:09:57 · 856 阅读 · 0 评论 -
SQL基础培训30-定时作业
进度30-定时作业 SQL基础培训目录1.定时作业,定期执行存储过程2.手工执行定时作业,并查看数据表是否有成功写入数据?原创 2023-08-14 10:35:31 · 112 阅读 · 0 评论 -
SQL基础培训29-定时备份和还原
设置后之后点击“确定”,然后点击“下一步”,进入“选择维护任务”界面。打开SQL Server Management Studio,在“管理”——“维护计划”,右键点击“维护计划”,打开“维护计划向导”。设置任务执行过程中的日志文件存放路径,这个很重要,以便日后进行审计,查看任务执行情况,设置好之后点击下一步。根据需要选择需要定期执行的任务,选择要执行的任务为:备份数据库(完整)、“清除维护”任务,点击下一步。执行成功后,在我们定义的备份目下,成功生成一个备份副本。从备份目录下,选择备份文件。原创 2023-08-09 12:34:49 · 172 阅读 · 0 评论 -
SQL基础培训28-动态列或行转列
set @sql= 'update t1 set ['+@fsubject+'] = '+convert(varchar(10) , @fsource)+' from #tmp1 t1 where 姓名='''+@fusername+''' '动态行转列,就是行数是变化的,转换成的列也是变化。SELECT N'王五' , N'英语' , 80。SELECT N'李四' , N'语文' , 80。静态行转列的特点是:已知有几个行要转成几个列。使用该函数,也是要指定具体列名字段。原创 2023-08-07 12:37:08 · 133 阅读 · 0 评论 -
SQL基础培训27-动态语句查询
但是SP_EXECUTESQL 则不一样,由于将数值参数化,要执行的动态 Sql 永远不会变化,只是传入的参数的值在变化,那每次执行的时候就不用重新编译,速度和效率自然有所提升。EXEC 执行纯动态SQL,执行时可能无法使用预编译的执行计划,关键是不安全,可以导致 SQL 注入 ,而 SP_EXECUTESQL 执行参数化动态 SQL ,执行时能使用预编译的执行计划,而且保存存储过程时就可以确定可以使用的预编译的执行计划,而且最重要的是“安全”,天然免疫SQL 注入。所以,更需要换行,和空格间距来配合。原创 2023-08-03 16:37:13 · 151 阅读 · 0 评论 -
SQL基础培训26-函数
说明:对数定义域不能为负数,10的0次方为1,所以LOG10(1)返回结果是0,10的2次方为100,所以LOG10(100)返回结果是2,10的3次方为1000,所以LOG10(1000)返回结果是3;说明:第一条语句6个数字和一个小数点组成的数值3141.59转换为长度为6的字符串,数字的小数部分舍入为1个小数位,第二条语句中的表达式超出指定的总长度时,返回的字符串为指定长度的两个**。说明:可以看到,LEN函数在对待英文字符和汉字字符时,返回的字符串长度是相同的,一个汉字也算作一个字符。原创 2023-08-01 13:57:47 · 206 阅读 · 0 评论 -
SQL基础培训25-SQL开发思路畅谈与开发规范
前言在写每一篇进度前,我都会查找很多篇有价值的技术帖子,进行参考总结。这一篇进度的编写,纯粹是我自己的思考和经验总结。1.开发思维辩证1.1.学与用的辨证关系很多新手,包括在校大学生,也包括以前读书时代的我,觉得开发这门技术入门很难!由此,走了很多弯路以后,才明白一个道理:入门其实很简单,只是精通比较难。因为觉得入门难,导致很多的人,浪费了大量时间,徘徊在开发技术的门外,毫无头绪,实在是可惜。问题出在思维层面上,脑袋想错了一个思维。所以,卡在入门很难,是因为我们的思维搞错了一件事情。这里,举两个例子,第一个原创 2023-07-28 09:53:57 · 213 阅读 · 0 评论 -
SQL基础培训24-存储过程详解
存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。存储过程是第一次编译之后就会被存储的下来的预编译对象,之后无论何时调用它都会去执行已经编译好的代码。数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。存储过程(Stored Procedure):已预编译为一个可执行过程的一个或多个SQL语句的集合。2)在通过网络调用过程时,只有对执行过程的调用是可见的。原创 2023-07-26 11:06:53 · 259 阅读 · 0 评论 -
SQL基础培训23-循环和游标
打开游标时,结果集这些行数据被一组唯一标识符标识,被标识的列做删改时,用户滚动游标是可见的,如果没被标识的列增该,则不可见,比如insert一条数据,是不可见的,若可见,须关闭重新打开游标。静态游标的结果集,在游标打开的时候建立在TempDB中,不论你在操作游标的时候,如何操作数据库,游标中的数据集都不会变。例如你在游标打开的时候,对游标查询的数据表数据进行增删改,操作之后,静态游标中select的数据依旧显示的为没有操作之前的数据。这个则与静态游标相对,滚动游标时,动态游标反应结果集中的所有更改。原创 2023-07-24 11:50:52 · 179 阅读 · 0 评论 -
SQL基础培训22-临时表和表变量选择
表值函数的返回值为表变量,这个场景中,是无法使用临时表来替换的。执行代码成功后,打开SQLTest测试工具,接下来,我们使用两个Workload,每个Workload开启20个进程,测试时间为120秒,测试三次(多次测试是为了测试严谨性)。在大量数据需要暂存时,无论使用临时表或者表变量,SQL Server系统最终会将数据存在Tempdb的数据文件磁盘上(因为表变量可能发生内存不足时,数据会存放在磁盘上)。首先,我们创建两个测试存储过程,它们的逻辑一模一样,唯一不同的是一个使用表变量,一个使用临时表。原创 2023-07-20 11:40:40 · 130 阅读 · 0 评论 -
SQL基础培训21-临时表和表变量对比
以##开头的临时表称为全局,此类型的临时表对所有进程可见,当前进程和其他进程均可访问,生命周期是所有使用到全局临时表的连接完全关闭后,临时表消亡。以##开头的临时表称为全局临时表,此类型的临时表对所有进程可见,此类型的临时表生命周期是所有使用到全局临时表的连接完全断开后,临时表资源被系统自动回收;以#开头的临时表称为局部临时表,这种类型的临时表仅当前进程可见,其他进程不可访问,生命周期是随着当前连接进程的关闭而消亡,临时表资源被系统自动回收;临时表和表变量均可以用作临时数据暂存媒介,具有相同的功效。原创 2023-07-18 10:33:47 · 118 阅读 · 0 评论 -
SQL基础培训20-临时表和表变量概念和误区
本文的前一小节“3.4、表变量仅驻留在内存中”,我们已经使用实际例子证明了,当SQL Server内存大小不足以存放表变量数据大小的时候,SQL Server会将表变量的数据,存放在Tempdb的数据文件磁盘上,以此来避免因为内存不足而导致服务死掉。就是说,表变量数据操作的时候,是不可能存在一些数据成功,一些数据失败的。全局临时表:以##打头的临时表称为全局,此类型的临时表对所有进程可见,当前进程和其他进程均可访问,生命周期是所有使用到全局临时表的连接完全关闭后,临时表消亡。原创 2023-07-14 10:38:52 · 117 阅读 · 0 评论 -
SQL基础培训19-触发器和调试
但是,临时数据在执行结束以后,是查不到的。所以,我们需要在过程进行跟踪,最笨的办法,就是在触发器执行过程,把临时数据保存到实际的数据表里面,这样,执行结束后,临时数据还能查的到。我之前还以为for触发器是数据插入、更新、删除操作执行前触发,after触发器是数据插入、更新、删除操作执行后触发,这是错误的认识。触发器是一种特殊的存储过程,类似于事件函数,SQL Server允许为INSERT、UPDATE、DELETE创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列的T-SQL语句。原创 2023-07-12 10:28:24 · 650 阅读 · 0 评论 -
SQL基础培训18-视图和数据表
由于视图是虚表,所以对视图的更新可以转变成一个等价的对基本表的更新,更新操作最终作用在基本表上。视图可以和基本表一样被查询、删除,也可在其基础上再定义新视图,但对视图的更新有一定的限制。6.4带有由基本数据经过计算派生出的虚拟字段,更新视图时,带有派生字段不可以更新。2.2视图消耗内存,创建视图时,不要把内容很大的字段放进去,比如文章内容 ,会消耗。这时候,可以考虑使用视图,视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表,只放。视图定义,不存放对应的数据,数据仍在原来的基本表中。原创 2023-07-10 11:38:04 · 217 阅读 · 0 评论 -
经典SQL语句大全六:SQLServer2000同步复制技术实现步骤
(7) [下一步] 选择需要发布的数据库和发布类型。经典SQL语句大全(完)原创 2023-07-06 10:41:57 · 124 阅读 · 0 评论 -
经典SQL语句大全四:数据开发-经典
表 from openrowset( 'SQLOLEDB ', 'sql服务器名 ';'密码 ',数据库名.dbo.表名)select pwdcompare('原始密码','加密后密码') = 1--相同;set @sql='select '+right(@list,len(@list)-1)+' from 表A'select pwdcompare('原始密码','加密后密码') = 1--相同;'密码 ',数据库名.dbo.表名)'密码 ',数据库名.dbo.表名)数据库.dbo.表名 ') as a。原创 2023-06-30 09:16:55 · 141 阅读 · 0 评论 -
经典SQL语句大全三:技巧
SELECT @LogicalFileName = 'tablename_log', -- 日志文件名。@NewSize = 1 -- 你想设定的日志文件的大小(M)USE tablename -- 要操作的数据库名。原创 2023-06-28 12:59:48 · 397 阅读 · 0 评论 -
经典SQL语句大全二:提升
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段。select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)1’,’值2’,’值4’,’值6’)原创 2023-06-26 10:59:41 · 549 阅读 · 0 评论 -
经典SQL语句大全一:基础
当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。原创 2023-06-21 09:29:37 · 1565 阅读 · 0 评论 -
SQL基础培训18-视图和数据表
由于视图是虚表,所以对视图的更新可以转变成一个等价的对基本表的更新,更新操作最终作用在基本表上。视图可以和基本表一样被查询、删除,也可在其基础上再定义新视图,但对视图的更新有一定的限制。6.4带有由基本数据经过计算派生出的虚拟字段,更新视图时,带有派生字段不可以更新。2.2视图消耗内存,创建视图时,不要把内容很大的字段放进去,比如文章内容 ,会消耗。这时候,可以考虑使用视图,视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表,只放。视图定义,不存放对应的数据,数据仍在原来的基本表中。原创 2023-06-19 09:13:59 · 215 阅读 · 0 评论 -
SQL语句学习(常量字段、数据处理函数、字符串的拼接、联合结果集 UNION、数学函数 、字符串函数、日期时间函数)
select CHARINDEX('Tomcat','m'), CHARINDEX('Tomcat','ca')--貌似存在问题,计算不出结果。select REPLACE('Tomcat','o','i')--需要删除时,第三个参数为空。--------------------日期时间函数---------------------------------------数学函数 ----------------------------------字符串函数---------------原创 2023-06-15 09:11:59 · 487 阅读 · 0 评论 -
SQL基础培训16-条件语句
适用于存储过程、函数、触发器等较复杂逻辑处理场景。不适用于查询语句、视图语句。转为列,适用于列字段是明确多少列。如果是动态列就无法支持。原创 2023-06-13 13:20:41 · 391 阅读 · 0 评论 -
SQL语句学习
-----------数据分组GROUP BY-----------------------------------------------------------------------------------------------------------创建表------------------------------------------------------------------------原创 2023-06-09 13:11:36 · 1088 阅读 · 0 评论 -
SQL基础培训16-日期处理
建表时,设置日期字段默认值为系统当前日期。第二个参数取最小日期到当前月份的总月份数。它通过从一个月的最后一天这个例子上减去。毫秒来获得我要的日期和时间。指定部分所对应的字符串名称。一周的日数,一周中的第几日。最小日期到本月的所有月份数。返回系统目前的日期与时间。,即最小日期,最小日期是。指定部分所对应的整数值。当前日期减去日期最小值。这就是为什么我需要减去。原创 2023-06-06 14:39:18 · 396 阅读 · 0 评论 -
sql笔记:SQL SERVER字符串填充(标量值函数创建、标量值函数调用)
pad_pattern INT) --0 第几位开始填充 0:从第一位开始填充,填充在左边;1~len(@string_unpadded)-1 :填充在中间;@pad_count tinyint, --10 填充后字符串长度。@string_unpadded VARCHAR(100), --'123'填充前字符串。@pad_char VARCHAR(1), --'0' 填充的字符串。原创 2023-06-02 10:57:33 · 663 阅读 · 0 评论 -
SQL基础培训15-数据类型转换
SQL中的cast 和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式。CAST 和 CONVERT 提供相似的功能,只是语法不同。在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式。原创 2023-05-30 09:17:30 · 978 阅读 · 0 评论 -
sql笔记:SQL SERVER金额转成大写金额(标量值函数创建、标量值函数调用)
笔记:SQL SERVER金额转成大写金额(标量值函数创建、标量值函数调用)原创 2023-05-23 15:58:18 · 896 阅读 · 0 评论 -
SQL基础培训14-重复记录查询
按本例实例练习一遍,提交枫山。(取入库价,在金蝶插件开发中,取采购入库价格作为材料成本中,有可能有实际会运用到。这里可以看到,最新日期2018年2月11日有两笔樱桃入库,全部取出来,没有起到去除重复的作用。分别作用于了id列和name列去重复。这里查出,同一日期有两笔樱桃。第一次去重复,按最新入库日期。查看最大单价是否有重复记录。第二次去重复,按最大内码。第一次去重复,按大入库价。第二次去重复,按最大。第二次去重复,按最大。原创 2023-05-22 10:20:51 · 391 阅读 · 0 评论 -
SQL基础培训13-索引和优化
比如,你查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页。很显然,“驰”“弩”两字并不是真正位于“张”字的上下方,你看到连续的“驰”“张”“弩”三字实际上就是它们在非聚集索引中的排序,是字典正文内容的字在非聚集索引中的映射。如果你认识某个字,知道这个字的拼音,你可以从字典的正文内容快速查到这个字。再比如查“张”字,因为“张”的拼音是“zhang”,以“z”开头的汉字在正文内容的最后面,你会将字典翻到最后部分。但你是结合“部首目录”和“检字表”查到字的排序,并不是直接的正文的排序方法。原创 2023-05-15 11:35:59 · 430 阅读 · 0 评论 -
SQL基础培训12-执行计划
也就是说,这是语句运行的时间长短,有些动作会发生I/O操作,产生了I/O等待,或者是遇到阻塞、产生了阻塞等待。在内存中建立好散列表后,会按照group by后面的值作为键,然后依次处理集合中的每条数据,当键在散列表中不存在时,向散列表添加条目,当键已经在散列表中存在时,按照规则(规则是聚合函数,比如Sum,avg什么的)计算散列表中的值(Value)。这一步,就是语句的编译时间。当多表连接时(包括书签查找,索引之间的连接),SQL Server会采用三类不同的连接方式:循环嵌套连接,合并连接,散列连接。原创 2023-05-09 15:47:09 · 654 阅读 · 0 评论 -
SQL基础培训11-复杂查询优化
如果你不相信,可以自已亲自去MS SQL Server或Oracle中试试,建议MS SQL Server 2008 R2以上版本 或 Oracle 10G 以上版本中,数据量大于10万条记录中,以两个会带来较大记录条数差别的条件,改变它们在where中的顺序去查,你会发现,查询所需时间基本上是一样的(请多次重复,并最好在没有干扰的情况下)。子句中使用参数,也会导致全表扫描。但是,在多语句,特别是使用临时表进行查询的情况下,每条语句的结果是需要设计者认真分析的,要尽可能减少中间数据量,以达到最大效率。原创 2023-05-04 15:54:01 · 458 阅读 · 0 评论 -
SQL基础培训10-复杂查询原理
,保留表(preserved table:左外部联接把左表标记为保留表,右外部联接把右表标记为保留表,完全外部联接把两个表都标记为保留表)中未找到匹配的行将作为外部行添加到 VT2,生成VT3.如果。这张临时表的表结构和上一步产生的虚拟表VT7是一样的,不同的是对进行。添加外部行的工作就是在VT2表的基础上添加保留表中被过滤条件过滤掉的数据,非保留表中的数据被赋予NULL值,最后生成虚拟表VT3。子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。原创 2023-04-25 11:58:10 · 446 阅读 · 0 评论 -
SQL基础培训07-笛卡尔积
笛卡尔在科学上的贡献是多方面的。笛卡尔不仅在哲学领域里开辟了一条新的道路,同时笛卡尔又是一勇于探索的科学家,在物理学、生理学等领域都有值得称道的创见,特别是在数学上他创立了解析几何,从而打开了近代数学的大门,在科学史上具有划时代的意义。笛卡尔的二元论心理学思想虽然在理论上是错误的,但是在当时社会背景下,是非常具有推动和进步作用的,他利用二元论摆脱了神学对科学的绝对控制,将人们的思想引导至理性思维和具体研究上,所以,他对心理学的贡献是不可忽视的。他的哲学思想对后来的哲学和科学的发展,产生了极大的影响。原创 2023-03-30 14:20:17 · 940 阅读 · 0 评论 -
SQL基础培训08-查询多种写法
知识点:假设学生表、班级表、年级表学生表(student)内码学生姓名班级内码001张三1002002李四1002003王五1003004钱六1001班级表(class)内码班级名称年级内码10022班110033班210044班3年级表(grade)内码年级名称11年级22年级执行语句如下:drop table studentcreate table student( 内码 int, 姓名 varchar(100), 班级内码 int)insert into stude原创 2023-04-11 15:40:35 · 300 阅读 · 0 评论 -
SQL基础培训09-复杂查询练习
备注:年龄计算用convert(int,datediff(day,出生日期,getdate())/365)来计算,其中datediff 是日期相减的函数,使用公式为(当前日期 - 出生日期) / 365 ,getdate()是取当前系统显示日期,即是你运算的当天日期。用复杂SQL语句,算出成绩60分以下、60-80分之间、80-95分之间、95分以上各有多少人。用复杂SQL语句,算出全校每个班级的及格率、良率、优秀率。用复杂SQL语句,算出全校每个班级、每个学科的平均分。备注:平均分精确到2位小数位。原创 2023-04-17 10:54:37 · 213 阅读 · 0 评论 -
SQL基础培训06-更新删除
TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间。DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。从2018-6-1开始,单据编号的规则发生改变,把表test2中,日期大于等于2018-6-1的单据编号更新到表test1。原创 2023-03-20 09:45:59 · 215 阅读 · 0 评论 -
SQL基础培训05-数据类型
当你输入的字符小于你指定的数目时,举例:char(8),定义的char为8个字节,你输入的字符小于8个字节时,它会再后面补空值,所以在读取的时候可能要多次用到trim()。本实验的目的是让同学更直观的了解到数据类型作为日常使用的最小维度,或者称为最小存储容器,它都有一定长度精度,他跟数据容量空间的增长息息相关,影响到数据库的容量膨胀,也跟查询性能效率有影响、实际场景使用情况下做何种数据类型的选择也有关。打开数据库,对着你建立的案例数据库,右键点击属性,在文件页签,查看数据库路径,并复制路径。原创 2023-03-13 13:07:58 · 230 阅读 · 0 评论 -
SQL基础培训04-插入数据
解释2:由于Order数据表没有指定具体字段,数值按建字段顺序,依次录入。表A有多少字段,创建的表B也同样有多少个字段,而且数据类型一模一样。4、Special_To_Subject(专业科目关系表)创建的表B有三个字段:ID、Name、Date。创建的表B有两个字段:ID、Name。2、Speciality(专业表)1、College(学院表)5、Teacher(教师表)7、Student(学生表)小医谋生中医救人大医济苍生。6、Class(班级表)8、Exam(考试表)科技造福or毁灭科目。原创 2023-03-09 09:01:36 · 382 阅读 · 0 评论 -
SQL基础培训03-是否使用外键
性能问题:这是很多人不喜欢用的关键原因,比如一个业务流水表,频繁插入数据,如果这个表身上有3外键,那么每次插入一条,就必须对这3个外键对应的3个表做相应的查找判断有无对应数据,如果这3个表也很大,那就这3个表的判断时间就很常,虽然外键指向的关联表的字段肯定是索引,但是我觉得很多时候,这样的判断本来就在程序里控制好了,通过外键再判断一次,就是降低性能;过程就是,设计业务架构,系统初始之初,规规矩矩的使用外键,符合范式,待业务发展,确定架构本身没有问题,一些约束渐渐的平移到应用层实现。原创 2022-12-26 19:05:57 · 340 阅读 · 0 评论 -
SQL基础培训02-关于主键
使用业务主键当然有其与生俱来的好处,一般情况下数据库系统会在默认条件下建立聚簇索引,而且这个聚簇索引基于主键升序排列,当数据量比较小时,我们感觉不到这种差别,当数据量比较大时,这种基于主键定义的聚簇索引的优势就显现出来,这就使得数据表在每次存取数据时按照索引准确确认数据插入或更新的磁盘物理位置,减少磁头寻址时间,从而提高数据库性能,而且能够从业务意义上保证数据的完整性,增加程序的可靠性。再次,自增量的值都是需要在系统中维护一个全局的数据值,每次插入数据时即对此次值进行增量取值。造成并发瓶颈,降低查询性能。原创 2022-12-19 17:55:29 · 378 阅读 · 0 评论