日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLServer转义问题

發(fā)布時間:2025/3/13 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLServer转义问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
經(jīng)常惆悵于Sql中字符變量的轉(zhuǎn)義問題,剛剛看到一篇文章感覺不錯,借來分享給大家 SELECT Count(0)和SELECT COUNT(*)和SELECT COUNT(??) 意思一樣的。 ? sql單引號問題解決 用轉(zhuǎn)義 提交sql語句時老因為單引號出錯 百度了一下用兩個單引號替換單引號就行了 ? ? content=content.replace("'","''"); SQL中的轉(zhuǎn)義字符怎么用呢? 我的數(shù)據(jù)庫中存在C_這樣開頭的表,也有C開頭的表,我現(xiàn)在使用like查詢出以C_開頭的表,則使用LIKE 'C_%'時,下劃線被當作一個任意字符的關(guān)鍵字使用,怎么能夠查到我要的數(shù)

like 'C\_%' escape '\'

\t是四個字符空一次?? 如果是4的倍數(shù)+1時用\t就那樣了 寫了個方法可以參考使用。在不固定長度的字段使用輸出保證能夠?qū)R
public String toString() { ?? ?? return "學生ID:"+ blankStr(10,stuID) + "姓名:"+ blankStr(18,stuName) +"\t性別:"+gender+"\t年齡:"+age+"\t所在班級:"+classes; }
//按列寬補空格,對齊。避免使用\t對齊造成錯位 //參數(shù):列寬度,要格式化的字符串 private String blankStr(int colWidth,String str ) { String blank = ""; int blankLen = colWidth - str.length(); for (int i = 0; i < blankLen; i++) { ?? str += " "; } return str; }

java轉(zhuǎn)義字符 收藏 \n 回車(\u000a) \t 水平制表符(\u0009) \b 空格(\u0008) \r 換行(\u000d) \f 換頁(\u000c) \' 單引號(\u0027) \" 雙引號(\u0022) \\ 反斜杠(\u005c) \ddd 三位八進制 \udddd 四位十六進制

上周發(fā)現(xiàn)還有其它需要轉(zhuǎn)義的字符,例如

String sName = "Java轉(zhuǎn)義字符(補遺)"; sName = sName.replaceFirst("(補遺)",""); out.println(sName);

如果你以為會輸出“Java轉(zhuǎn)義字符”,那你就錯了,事實上輸出“Java轉(zhuǎn)義字符()”,我也很奇怪,以為是中英文括號的問題,可是并不是,我不確定是否轉(zhuǎn)義問題,解決方法是

sName = sName.replaceFirst("\\(補遺\\)","");

SQL查詢中的轉(zhuǎn)義字符

如果想查找“_cs”結(jié)尾的的賬戶 select * from [user] where loginname like '%_cs'是不行的,_ 被認為是任意的字符, 所以需要轉(zhuǎn)義字符,有兩種寫法: select * from [user] where loginname like '%[_]cs' select * from [user] where loginname like '%/_cs' escape'/'

通配符 含義 % 包含零個或更多字符的任意字符串。 _ 任何單個字符。 [ ] 指定范圍(例如 [a-f])或集合(例如 [abcdef])內(nèi)的任何單個字符。 [^] 不在指定范圍(例如 [^a - f])或集合(例如 [^abcdef])內(nèi)的任何單個字符。
例如:

LIKE 'Mc%' 將搜索以字母 Mc 開頭的所有字符串(如 McBadden)。

LIKE '%inger' 將搜索以字母 inger 結(jié)尾的所有字符串(如 Ringer、Stringer)。

LIKE '%en%' 將搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。

LIKE '_heryl' 將搜索以字母 heryl 結(jié)尾的所有六個字母的名稱(如 Cheryl、Sheryl)。

LIKE '[CK]ars[eo]n' 將搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。

LIKE '[M-Z]inger' 將搜索以字符串 inger 結(jié)尾、以從 M 到 Z 的任何單個字母開頭的所有名稱(如 Ringer)。

LIKE 'M[^c]%' 將搜索以字母 M 開頭,并且第二個字母不是 c 的所有名稱(如 MacFeather)。 使用 ESCAPE 關(guān)鍵字定義轉(zhuǎn)義符。在模式中,當轉(zhuǎn)義符置于通配符之前時,該通配符就解釋為普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,請使用: WHERE ColumnA LIKE '%5/%%' ESCAPE '/'符號 含義 LIKE '5[%]' 5% LIKE '5%' 5 后跟 0 個或更多字符的字符串 LIKE '[_]n' _n LIKE '_n' an, in, on (and so on) LIKE '[a-cdf]' a, b, c, d, or f LIKE '[-acdf]' -, a, c, d, or f LIKE '[ [ ]' [ LIKE ']' ]

?

SQL查詢中的轉(zhuǎn)義字符 2007-09-20 08:57
如果想查找“_cs”結(jié)尾的的賬戶 select * from [user] where loginname like '%_cs'是不行的,_ 被認為是任意的字符, 所以需要轉(zhuǎn)義字符,有兩種寫法: select * from [user] where loginname like '%[_]cs' select * from [user] where loginname like '%/_cs' escape'/'
通配符含義
%包含零個或更多字符的任意字符串。
_任何單個字符。
[ ]指定范圍(例如 [a-f])或集合(例如 [abcdef])內(nèi)的任何單個字符。
[^]不在指定范圍(例如 [^a - f])或集合(例如 [^abcdef])內(nèi)的任何單個字符。
例如:
  • LIKE 'Mc%' 將搜索以字母 Mc 開頭的所有字符串(如 McBadden)。
  • LIKE '%inger' 將搜索以字母 inger 結(jié)尾的所有字符串(如 Ringer、Stringer)。
  • LIKE '%en%' 將搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
  • LIKE '_heryl' 將搜索以字母 heryl 結(jié)尾的所有六個字母的名稱(如 Cheryl、Sheryl)。
  • LIKE '[CK]ars[eo]n' 將搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
  • LIKE '[M-Z]inger' 將搜索以字符串 inger 結(jié)尾、以從 M 到 Z 的任何單個字母開頭的所有名稱(如 Ringer)。
  • LIKE 'M[^c]%' 將搜索以字母 M 開頭,并且第二個字母不是 c 的所有名稱(如 MacFeather)。
使用 ESCAPE 關(guān)鍵字定義轉(zhuǎn)義符。在模式中,當轉(zhuǎn)義符置于通配符之前時,該通配符就解釋為普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,請使用: WHERE ColumnA LIKE '%5/%%' ESCAPE '/' 符號含義
LIKE '5[%]'5%
LIKE '5%'5 后跟 0 個或更多字符的字符串
LIKE '[_]n'_n
LIKE '_n'an, in, on (and so on)
LIKE '[a-cdf]'a, b, c, d, or f
LIKE '[-acdf]'-, a, c, d, or f
LIKE '[ [ ]'[
LIKE ']']

?

本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/Adi_liu/archive/2007/12/06/1920606.aspx

本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/daryl715/archive/2007/02/14/1510014.aspx

使用 SQL 轉(zhuǎn)義序列

開啟低帶寬視圖 語言篩選器 : 全部 Visual Basic C# C++ J# JScript XAML F# 同時提供下列產(chǎn)品的其他版本:
  • SQL Server 2005
? 使用 SQL 轉(zhuǎn)義序列

?

?

按照 JDBC API 的定義,Microsoft SQL Server JDBC Driver 支持使用 SQL 轉(zhuǎn)義序列。轉(zhuǎn)義序列用于 SQL 語句內(nèi),以告訴驅(qū)動程序應以不同的方式處理 SQL 字符串的轉(zhuǎn)義部分。當 JDBC 驅(qū)動程序處理 SQL 字符串的轉(zhuǎn)義部分時,它會將字符串的這一部分轉(zhuǎn)換為 SQL Server 可以理解的 SQL 代碼。

JDBC API 需要五種類型的轉(zhuǎn)義序列,JDBC 驅(qū)動程序支持所有這些轉(zhuǎn)義序列:

  • LIKE 通配符文本

  • 函數(shù)處理

  • 日期和時間文本

  • 存儲過程調(diào)用

  • 外部聯(lián)接

JDBC 驅(qū)動程序使用的轉(zhuǎn)義序列語法如下所示:

{keyword ...parameters...}

注意:

SQL 轉(zhuǎn)義處理對于 JDBC 驅(qū)動程序始終是打開的。

以下各部分介紹五種類型的轉(zhuǎn)義序列以及 JDBC 驅(qū)動程序如何支持它們。

LIKE 通配符文本

JDBC 驅(qū)動程序支持 {escape 'escape character'} 語法,以便將 LIKE 子句通配符用作文本。例如,以下代碼將返回 col3 的值,其中 col2 的值實際上以下劃線開始(而不是對其使用通配符)。

? ? 復制代碼 ResultSet rst = stmt.executeQuery("SELECT col3 FROM test1 WHERE col2 LIKE '\\_%' {escape '\\'}"); 注意:

轉(zhuǎn)義序列必須位于 SQL 語句的結(jié)尾。如果一個命令字符串中有多個 SQL 語句,則轉(zhuǎn)義序列需要位于每個相關(guān) SQL 語句的結(jié)尾。

函數(shù)處理

JDBC 驅(qū)動程序使用以下語法在 SQL 語句中支持函數(shù)轉(zhuǎn)義序列:

? ? 復制代碼 {fn functionName}

其中,functionName 是由 JDBC 驅(qū)動程序支持的函數(shù)。例如:

? ? 復制代碼 SELECT {fn UCASE(Name)} FROM Employee

下表列出當使用函數(shù)轉(zhuǎn)義序列時,JDBC 驅(qū)動程序支持的各種函數(shù):

? 字符串函數(shù)數(shù)值函數(shù)日期時間函數(shù)系統(tǒng)函數(shù)

ASCII

CHAR

CONCAT

DIFFERENCE

INSERT

LCASE

LEFT

LENGTH

LOCATE

LTRIM

REPEAT

REPLACE

RIGHT

RTRIM

SOUNDEX

SPACE

SUBSTRING

UCASE

ABS

ACOS

ASIN

ATAN

ATAN2

CEILING

COS

COT

DEGREES

EXP

FLOOR

LOG

LOG10

MOD

PI

POWER

RADIANS

RAND

ROUND

SIGN

SIN

SQRT

TAN

TRUNCATE

CURDATE

CURTIME

DAYNAME

DAYOFMONTH

DAYOFWEEK

DAYOFYEAR

EXTRACT

HOUR

MINUTE

MONTH

MONTHNAME

NOW

QUARTER

SECOND

TIMESTAMPADD

TIMESTAMPDIFF

WEEK

YEAR

DATABASE

IFNULL

USER

注意:

如果您試圖使用數(shù)據(jù)庫不支持的函數(shù),則將發(fā)生錯誤。

日期和時間文本

用于日期、時間和時間戳文本的轉(zhuǎn)義語法如下所示:

? ? 復制代碼 {literal-type 'value'}

其中,literal-type 為以下值之一:

? 文本類型說明值格式

d

日期

yyyy-mm-dd

t

時間

hh:mm:ss [1]

ts

時間戳

yyyy-mm-dd hh:mm:ss[.f...]

例如:

? ? 復制代碼 UPDATE Orders SET OpenDate={d '2005-01-31'} WHERE OrderID=1025

存儲過程調(diào)用

JDBC 驅(qū)動程序?qū)τ诖鎯^程調(diào)用支持 {? = call proc_name(?,...)}{call proc_name(?,...)} 轉(zhuǎn)義語法,具體取決于您是否需要處理返回參數(shù)。

過程是存儲在數(shù)據(jù)庫中的可執(zhí)行對象。通常,它是一個或更多的已經(jīng)預編譯的 SQL 語句。調(diào)用存儲過程的轉(zhuǎn)義序列語法如下所示:

? ? 復制代碼 {[?=]call procedure-name[([parameter][,[parameter]]...)]}

其中,procedure-name 指定存儲過程的名稱,parameter 指定存儲過程參數(shù)。

有關(guān)將 call 轉(zhuǎn)義序列用于存儲過程的詳細信息,請參閱使用帶有存儲過程的語句

外部聯(lián)接

JDBC 驅(qū)動程序支持 SQL92 左聯(lián)接、右聯(lián)接和完全外部聯(lián)接語法。外部聯(lián)接的轉(zhuǎn)義序列如下所示:

? ? 復制代碼 {oj outer-join}

其中,外部聯(lián)接為:

? ? 復制代碼 table-reference {LEFT | RIGHT | FULL} OUTER JOIN {table-reference | outer-join} ON search-condition

其中,table-reference 為表名,search-condition 為您要用于這些表的聯(lián)接條件。

例如:

? ? 復制代碼 SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status FROM {oj Customers LEFT OUTER JOIN Orders ON Customers.CustID=Orders.CustID} WHERE Orders.Status='OPEN'

JDBC 驅(qū)動程序支持以下外部聯(lián)接轉(zhuǎn)義序列:

  • 左外部聯(lián)接

  • 右外部聯(lián)接

  • 完全外部聯(lián)接

  • 嵌套外部聯(lián)接

轉(zhuǎn)載于:https://www.cnblogs.com/YangFei-wow/archive/2012/07/10/2584101.html

總結(jié)

以上是生活随笔為你收集整理的SQLServer转义问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。