搜索
首页数据库mysql教程Sql server 数据库中,纯SQL语句查询、执行 单引号问题。

在默认情况下, select 'abc',Titile from tb_Name; ---输出内容 是abc; 如果想输出 单引号 'abc,需要使用select '''abc',Titile from tb_Name; ---这里用三个单引号'''abc; select '''abc''',Title from tbName; 输出内容是'abc';两边带有单引号; 谨记

在默认值情况下,

select 'abc',Titile from tb_Name;  ---输出内容 是abc;

如果想输出 单引号 'abc,需要使用select '''abc',Titile from tb_Name; ---这里用三个单引号'''abc;

select '''abc''',Title from tbName;   输出内容是'abc';两边带有单引号;

谨记:如果字符串包含单引号,则需要在单引号前再增加一个单引号。

 

exec('select * from tbName')  Sql语句两边有单引号'可以执行,没有时exec(select * from tbName)不能执行。 

set @name='Name'; 
select @name from A123 ;  --1
select Name from A123;  --2
exec('select '+ @name+' from A123');  --3
exec('select '+ 'Name'+' from A123');  --4

在连接纯字符串中,'+'  单引号加号单引号  可以加在任何位置,这条规律方便引入变量的加入。exec('select '+ 'Name'+' from A123'); 可将'+'删除,变成exec('select Name from A123');或者exec('select'+' Name from A123');  效果一样,无本质区别。

以上四句执行语句中,2、3、4句执行结果是相同的,均等同于第2句;1执行语句等同于select 'Name' from A123;

三种情况:声明的变量、常量、列名。

第一步,先声明变量, exec('update '+ @tbName+' set Name=''' + @tbName + '''')  

第二步,在 ''+ 或者 +'' 中插入常量exec('update '+ @tbName+' set Name=''Mirror' + @tbName + 'Mirror''')  

第三步,加入列名,,在变量旁边 +'''' 或者 ''''+ 位置处 修改为 +'''+Name' 或者 'Name+'''+。 原始数据 exec('update '+ @tbName+' set Name=Name+'''+@tbName+'''+Name');

exec('update '+ @tbName+' set Name=''Mirror''+Name+'''+@tbName+'''+Name')。

<span><em><span>go
declare @tbName varchar(</span><span>100</span><span>)
declare Curb cursor </span><span>for</span>
    <span>select</span> name <span>from</span><span> sys.tables
    open Curb
        fetch next </span><span>from</span><span> Curb into @tbName
        </span><span>while</span> @@fetch_status=<span>0</span><span>
        begin
            </span>--exec(<span>'</span><span>update </span><span>'</span>+ @tbName+<span>'</span><span> set Name=Name+</span><span>'''</span>+@tbName+<span>''''</span>) --<span>1</span>
            --exec(<span>'</span><span>update </span><span>'</span>+ @tbName+<span>'</span><span> set Name=</span><span>'''</span>+@tbName+<span>'''</span><span>+Name</span><span>'</span>) --<span>2</span></em></span><span>  列的名称需要修改,修改该哪一个列? 修改两个Name值即可。
            </span><span><em>--exec(<span>'</span><span>update </span><span>'</span>+ @tbName+<span>'</span><span> set Name=</span><span>'''</span>+@tbName+<span>'</span><span>Mirror</span><span>''</span><span>+Name</span><span>'</span>) --<span>3</span>   </em></span>--<span>变量加常量加列名</span><span><em><span>
            --exec(<span>'update '</span>+ @tbName+<span>' set Name=''Mirror'''</span>)
              exec(</span><span>'</span><span>update </span><span>'</span>+ @tbName+<span>'</span><span> set Name=</span><span>''</span><span>Mirror</span><span>'</span>+@tbName+<span>'''</span><span>+Name</span><span>'</span>)    --<span>4</span>  </em></span>--常量<span>加变量加列名</span><span><em><span>
              exec(</span><span>'</span><span>update </span><span>'</span>+ @tbName+<span>'</span><span> set Name=</span><span>'''</span>+<span>'</span><span>Mirror</span><span>'</span>+@tbName+<span>'''</span><span>+Name</span><span>'</span>) --<span>5</span>  </em></span> --常量<span>加变量加列名
            </span><span><em>--exec(<span>'</span><span>update </span><span>'</span>+ @tbName+<span>'</span><span> set Name=</span><span>'''</span> + @tbName + <span>''''</span>)  --</em></span>
            --exec(<span>'</span><span>update </span><span>'</span>+ @tbName+<span>'</span><span> set Name=Name</span><span>'</span>)                 --<span>7</span>
            --exec('update '+ @tbName+' set Name=''Mirror''+Name+'''+@tbName+'''+Name') --8  常量加列名加变量加列名
            --exec('update '+ @tbName+' set Name=''Mirror''+Name')   --9 常量加列名
<span><em><span>            fetch next </span><span>from</span><span> Curb into @tbName
        end
     close Curb
deallocate Curb</span></em></span>

从第2行实现第五行代码,首先在加号附近加上 ' 字符串内容 '+  OR   +' 字符串内容 ' 。

根据第4、5行,在字符串中加入 '+' 对代码无影响,可以将其删除。

 

以上代码实现的功能,遍历数据库中的所有表,并依次在每一个表中执行更改语句,比如 --1中 将表中Name字段的内容加上表名。
如何在exec语句中加单引号?

写出原始语句  update  @tbName   set Name = Name + @tbName

首先首尾加单引号;声明的变量前面加 '+,后面加 +';最后看赋值部分,需要使用单引号包围声明的变量,需要使用两个单引号。

 

根据表名来输出"执行每个表的SQL语句" 

<span>USE db_Test;  --修改数据库名称 </span><span>
SELECT  
    </span><span>'update</span><span>'</span> + name + <span>'</span><span> set Title = </span><span>'''</span> + name + <span>'''</span><span>+Title</span><span>'</span>  <span>as</span><span> sql  --name获取的是数据库中所有表的名称;--表名称+Title  --修改Title(列名称)
</span><span>from</span><span>
    sys.tables;</span>

USE db_Test;  --<span>修改数据库名称 
SELECT  
    </span><span>'</span><span>update </span><span>'</span> + name + <span>'</span><span> set Title = </span><span>'''</span> + name + <span>'''</span><span>+Title+</span><span>''</span><span>abc</span><span>'''</span>
<span>from</span><span>
    sys.tables;</span>

USE db_Test;  --<span>修改数据库名称 
SELECT  
    </span><span>'</span><span>update </span><span>'</span> + name + <span>'</span><span> set Title = </span><span>''</span><span>abc</span><span>'</span> + name + <span>'''</span><span>+Title+</span><span>''</span><span>abc</span><span>'''   --Title是表中Title列中的内容,</span>
<span>from</span><span>
    sys.tables;</span>

<span>USE db_Test;
declare @result varchar(</span><span>255</span><span>)
</span><span>set</span> @result = <span>''</span><span>;
SELECT  
    @result</span>=<span>'</span><span>UPDATE </span><span>'</span> + name + <span>'</span><span> SET name = </span><span>'''</span> + name + <span>'''</span><span>+name</span><span>'</span>
<span>from</span><span>
    sys.tables;
exec(@result)   --只能执行一句  只能更改一个表。</span>


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
将用户添加到MySQL:完整的教程将用户添加到MySQL:完整的教程May 12, 2025 am 12:14 AM

掌握添加MySQL用户的方法对于数据库管理员和开发者至关重要,因为它确保数据库的安全性和访问控制。1)使用CREATEUSER命令创建新用户,2)通过GRANT命令分配权限,3)使用FLUSHPRIVILEGES确保权限生效,4)定期审计和清理用户账户以维护性能和安全。

掌握mySQL字符串数据类型:varchar vs.文本与char掌握mySQL字符串数据类型:varchar vs.文本与charMay 12, 2025 am 12:12 AM

chosecharforfixed-lengthdata,varcharforvariable-lengthdata,andtextforlargetextfield.1)chariseffity forconsistent-lengthdatalikecodes.2)varcharsuitsvariable-lengthdatalikenames,ballancingflexibilitibility andperformance.3)

MySQL:字符串数据类型和索引:最佳实践MySQL:字符串数据类型和索引:最佳实践May 12, 2025 am 12:11 AM

在MySQL中处理字符串数据类型和索引的最佳实践包括:1)选择合适的字符串类型,如CHAR用于固定长度,VARCHAR用于可变长度,TEXT用于大文本;2)谨慎索引,避免过度索引,针对常用查询创建索引;3)使用前缀索引和全文索引优化长字符串搜索;4)定期监控和优化索引,保持索引小巧高效。通过这些方法,可以在读取和写入性能之间取得平衡,提升数据库效率。

mysql:如何远程添加用户mysql:如何远程添加用户May 12, 2025 am 12:10 AM

ToaddauserremotelytoMySQL,followthesesteps:1)ConnecttoMySQLasroot,2)Createanewuserwithremoteaccess,3)Grantnecessaryprivileges,and4)Flushprivileges.BecautiousofsecurityrisksbylimitingprivilegesandaccesstospecificIPs,ensuringstrongpasswords,andmonitori

MySQL字符串数据类型的最终指南:有效的数据存储MySQL字符串数据类型的最终指南:有效的数据存储May 12, 2025 am 12:05 AM

tostorestringsefliceflicyInmySql,ChooSetherightDataTypeBasedyOrneOrneEds:1)USEcharforFixed-LengthStstringStringStringSlikeCountryCodes.2)UseVarcharforvariable-lengtthslikenames.3)USETEXTCONTENT.3)

mysql blob vs.文本:为大对象选择正确的数据类型mysql blob vs.文本:为大对象选择正确的数据类型May 11, 2025 am 12:13 AM

选择MySQL的BLOB和TEXT数据类型时,BLOB适合存储二进制数据,TEXT适合存储文本数据。1)BLOB适用于图片、音频等二进制数据,2)TEXT适用于文章、评论等文本数据,选择时需考虑数据性质和性能优化。

MySQL:我应该将root用户用于产品吗?MySQL:我应该将root用户用于产品吗?May 11, 2025 am 12:11 AM

No,youshouldnotusetherootuserinMySQLforyourproduct.Instead,createspecificuserswithlimitedprivilegestoenhancesecurityandperformance:1)Createanewuserwithastrongpassword,2)Grantonlynecessarypermissionstothisuser,3)Regularlyreviewandupdateuserpermissions

MySQL字符串数据类型说明了:选择适合您数据的合适类型MySQL字符串数据类型说明了:选择适合您数据的合适类型May 11, 2025 am 12:10 AM

mySqlStringDatatatPessHouldBechoseBeadeDataCharacteristicsAndUsecases:1)USECHARFORFIXED LENGTHSTRINGSTRINGSLIKECOUNTRYCODES.2)USEDES.2)usevarcharforvariable-lengtthstringstringstringstringstringstringstringslikenames.3)usebinaryorvarrinaryorvarinarydatalbonydatalgebgeenfopical.4)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中