SQL语句中特殊字符的处理方法

数据库 SQL Server
在sql语句中有一些像 ' [ ] 的特殊字符,那么这些字符应该如何处理呢?下面就将为您介绍SQL语句中特殊字符的处理方法,供您参考。

在数据库的使用时,经常会在sql语句中遇到一些特殊字符,那么这些字符应该如何处理呢?下面就将为您介绍SQL语句中特殊字符的处理方法,供您参考。

在sql语句中,有些特殊字符,是sql保留的。比如 ' [ ]  等。我们可以先看看它们的用法。

当需要查询某数据时,加入条件语句,或着当你需要insert记录时,我们用  '  来将字符类型的数据引起来。比如:
Select * from Customers where City = 'London'

当表的名字或列的名字中,含有空格等一些特殊字符时,我们需要用[] 将表名引起来,告诉语法分析器,[]号内的才是一个完整的名称。比如

Select * from [Order Details]

如果,字符数据中,含有 '  改怎么办呢?其实,好多人在这里并没有处理字符川中 ' 符号,才造成sql 注射危险。就那上面的那个例子。在Sql语句拼接的时代,比如

string sql = "select * from Customers where CustomerID = '" + temp + "'";

如果,我给temp赋值为 Tom' or 1=1 --- 
那么你拼接起来的语句为 select * from Customers where CustomerID = 'Tom' or 1=1 --- '
哈哈,1=1 衡为真,---会把后面的sql语句注释掉。而前面因为有输入的 ' 而使的语句是合法的。那or的条件,会把所有的记录都选出来。这就是sql注入。在做用户登陆时,如果没有处理该问题,那你的系统受危害的可能性会很高的。
如何处理字符数据中的 ' 符号呢? 方法很简单,用两个 ' 符号代替一个。 比如,其实际传入的值为Lon'don,处理后为
Select * from Customers where City = 'Lon''don'
就可以了。

如果表或列的名称中含有 [ 或 ] 字符呢?比如Select * from [Order] Details],那中间 ] 符号岂不是先和***个[ 配了。后面的就是非法的了。怎么办呢? 简单,使用 ]] 代替 ] 。对于[,则无须处理。那就该为
Select * from [Order]] Details]。

 

【编辑推荐】

教您用SQL语句进行模糊查询

为您讲解SQL动态语句的语法

SQL中的字符串操作函数

两种SQL中的字符串比较函数

SQL中的4种字符转换函数

 

责任编辑:段燃 来源: 博客园
相关推荐

2010-09-26 16:51:03

SQL Server查

2010-09-03 14:39:15

SQLSELECT语句

2010-09-03 15:47:40

SQL语句锁定

2010-09-07 16:38:36

SQL语句SELECT DIST

2010-09-07 13:41:50

SQL语句

2010-09-03 14:47:50

SQLSELECT语句

2010-09-03 11:25:58

SQL删除

2010-04-13 14:43:37

Oracle性能检测

2010-09-07 14:56:49

SQL语句CASE WHEN

2010-09-06 09:11:24

SQLUPDATE语句

2011-09-08 16:30:59

SQL Server查询

2022-03-23 14:04:32

SQL字符串数据类型

2022-05-19 23:40:34

SQL语句引号

2009-04-28 09:38:53

SQL优化物理查询

2010-09-07 10:26:37

SQL语句

2010-03-19 14:18:07

Java Socket

2010-09-07 16:51:22

SQL语句表达式

2020-09-21 08:32:03

JavaSQL公共字段

2024-01-03 17:42:32

SQL数据库

2018-06-22 15:46:45

Spring Clou加密处理
点赞
收藏

51CTO技术栈公众号