202104-07 SQL Server连接查询的实用教程 前沿小补充例3.48查询平均成绩大于等于80分的学生学号和平均成绩SELECTSno,AVG(Grade)FROMSCWHEREAVG(Grade)>=80GROUPBYSno;SELECT*FROMSC;此时发现:这是因为WHERE子句中是不能用聚集函数作为条件表达式的,正确的查询语句应该是:SELECTSno,AVG(Grade)FROMSCGROUPBYSnoHAVINGAVG(Grade)>=80;SELECT*FROMSC;总结:WHERE子句作用基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组... 继续阅读 >
202104-07 sqlserver添加sa用户和密码的实现 sqlserver安装完之后(安装参考)我遇到了一个尴尬的问题:之前的安装时是windows选择身份验证的,所以用可视化工具连接到服务器是,可以选择“windows身份验证”,没毛病。但是我的项目的数据库连接配置时,是用户名和密码方式的登录,所以我突然尴尬的发现,我没有可供登录的用户名和密码。用可视化工具选择SQLServer身份验证登录时,也需要用户名和密码所以,只能添加一个用户和密码来用于登录我是用sa用户名,其实sa用户是sqls... 继续阅读 >
202104-07 为PHP模块添加SQL SERVER2012数据库的步骤详解 一、系统要求操作系统:Windows2012R2数据库:SqlServer2012web服务器:APACHE=>httpd-2.4.46-o111j-x64-vc15PHP模块:PHP=>php-7.4.16-Win32-vc15-x64二、下载驱动2.1下载MicrosoftDriversforPHPforSQLServer下载网址:http://docs.microsoft.com/zh-cn/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15下载后是一个EXE文件如下图所示。双击"SQLSRV59.EXE"将其解压到一个文件夹中如下图所示... 继续阅读 >
202103-30 SQL Server索引超出了数组界限的解决方案 有开发的同事反映远程登录SQLServer操作报错,索引超出了数组界限等如下图线上数据库版本为SQLServer2012R2,检查后发现开发人员SSMS版本为2008,版本与服务器不一致,(开发人员要求登录数据库服务器操作,果断拒绝了)建议在本地打上SP3或者直接安装2012的SSMS,安装好后问题解决。补充:SQL?“索引超出了数组界限”一般是由于使用的客户端版本低于数据库版本引起的如果没有多个SQL版本的话可以尝试的解决办法:1.重启电脑,... 继续阅读 >
202103-19 SQL update select结合语句详解及应用 QLupdateselect语句最常用的update语法是:UPDATETABLE_NAMESETcolumn_name1=VALUEWHRERcolumn_name2=VALUE如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦第一,要select出来放在临时变量上,有很多个很难保存。第二,再将变量进行赋值。列多起来非常麻烦,能不能像Insert那样,把整个Select语句的结果进行插入呢?就好象下面::INSERTINTOtable1(c1,c2,c3)(SELECTv1,v2,... 继续阅读 >
202103-19 MySQL中sum函数使用的实例教程 文章简介今天分享一下MySQL中的sum函数使用。该函数已经成为大家操作MySQL数据库中时常用到的一个函数,这个函数统计满足条件行中指定列的和,想必肯定大家都知道了,本身就没什么讲头了,这篇文章主要是通过几个小案例深入了解一下该函数,以及在做MySQL查询时如何使用sum函数做优化。语法分析SUM([DISTINCT]expr)[over_clause]Returnsthesumofexpr.Ifthereturnsethasnorows,SUM()returnsNULL.TheDISTINCTke... 继续阅读 >
202103-10 由于系统错误 126 (SQL Server),指定驱动程序无法加载 首先想到的是数据库服务的问题,但是最奇怪的是数据库服务已经正常启动了(右击“我的电脑”-“管理”-"服务和应用程序"-“服务”),如图所示: 突然想到安装完后在DOS中连接数据库,想修改SA密码时,发现有下面提示:由于系统错误126(SQLServer),指定驱动程序无法加载,如图所示: 而且在客户自己之前安装过很多版本的软件,什么用友通普及版呀,用友U852呀,都装过,可... 继续阅读 >
202103-09 SQL中EXPLAIN命令的使用方法 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。explain显示了m... 继续阅读 >
202103-05 SQL group by去重复且按照其他字段排序的操作 需求:合并某一个字段的相同项,并且要按照另一个时间字段排序。例子:一开始用selectcityfromtablegroupbycityorderbydatedesc会报错因为date没有包含在聚合函数或GROUPBY子句中然后用将date放入groupby中:selectcityfromtablegroupbycity,dateorderbydatedesc得到结果但是得到的结果还是有重复的,没有解决如果不按照时间排序,就会影响我之后的操作,所以百度了很久,终于找到了解决方法:正确写法:se... 继续阅读 >
202102-21 浅析SQL Server的嵌套存储过程中使用同名的临时表怪像 SQLServer的嵌套存储过程,外层存储过程和内层存储过程(被嵌套调用的存储过程)中可以存在相同名称的本地临时表吗?如果可以的话,那么有没有什么问题或限制呢?在嵌套存储过程中,调用的是外层存储过程的临时表还是自己定义的临时表呢?是否类似高级语言的变量一样,本地临时表有没有“作用域“范围呢?注意:也可以称呼为父存储过程和子存储过程,外层存储过程和内层存储过程。这些只是不同的称呼或叫法而已。我们这里统一使... 继续阅读 >
202102-21 SQL中where和having的区别详解 概念wherewhere是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,再返回结果前起作用,并且where后不能使用“聚合函数”。聚合函数对一组值执行计算,并返回单个值,也被称为组函数,经常与SELECT语句的GROUPBY子句的HAVING一同使用。例如AVG返回指定组中的平均值COUNT返回指定组中项目的数量MAX返回指定数据的最大值。MIN返回指定数据的最小值。SUM返回指定数据的和,只能用于数字列,空值被... 继续阅读 >
202102-21 SQL server高并发生成唯一订单号的方法实现 前言前几天写了一篇MySQL高并发生成唯一订单号的方法,有人私信问有没有SQLserver版本的,今天中午特地写了SQLserver版本的高并发生成唯一订单号实现,其实MySQL和SQLserver原理都一样,主要是他们部分语法有些区别,所以你会发现我这篇文章文字说明几乎一样,只有代码和界面不一样。一、场景再现在一个erp进销存系统或0A等其他系统中,如果多人同时进行生成订单号的操作的话,容易出现多人获得同一个订单号的情况,对公司业务... 继续阅读 >
202102-21 SQL查询包含下划线的字段内容操作 我就废话不多说了,大家还是直接看代码吧~SELECT*FROMscott.empwhereenamelike'%\_%'escape'\';SELECT*FROMscott.empwhereregexp_like(ename,'_');补充:sql字符带下划线匹配问题SQL中_下划线作用是匹配一个任意字符.如果我们要去掉下划线的作用单纯只用作一个字符则需要转义成 like'%\_%'escape'\'字段1.order_qrsc2.order_sc比如 我们是要 匹配like'%_sc'但是因为下划线本身... 继续阅读 >
202101-29 sql 实现将空白值替换为其他值 下图中数据库中查询到的值有空值,包括空白值(“”)和null如何将上图中的null和空白值替换为其他的值呢??有人建议使用isnull()函数,但是该函数只能替换null无法替换空白的值。可以使用下面的sql语句对null和空白值都替换为其他的值。select(CASEwhen(TelPhoneISNULLORTelPhone='')then'暂无'elseTelPhoneend)asTelPhone,(CASEwhen(NameisnullorName='')then'暂无'elseNameend)asname,(CASEwhen... 继续阅读 >
202101-22 SQL函数将某个字段合并在一起的操作 最近遇到需要将关联表中的某个字段全部查询出来并且重新组合为一个字段,这个时候普通的连接查询就满足不了需求了,需要用到SQL函数来完成:ALTERfunctiondbo.getResCodesByOwnerId(@OwnerIdINT)returnsnvarchar(2000)asbeginDECLARE@codesVARCHAR(2000)SET@codes=''select@codes=stuff((select','+residence_codefromcrm_ownercoleftjoincrm_owner_residencecoronco.id=cor.owner_idwhereco.id=@OwnerIdfor... 继续阅读 >
202101-21 关于SQL Server加密与解密的问题 一、PassPhrase加密1.1、概要简述1)对于不涉及证书及密钥的应急的数据加密,可以直接基于用户提供的密码来加密和解密数据。2)通行短语(PassPhrase)是允许存在空格的密码。这个PassPhrase不会存储在数据库中,因而也就意味着不会被使用存储的系统数据"破解"。同时,可以使用空格创建一个长的、易于记忆的句子来加密和解密敏感数据。3)PassPhrase支持的数据列类型有nvarchar、varchar、nchar、char、varbinary、binary。1.2、加密... 继续阅读 >