當前位置:首頁 » 編程語言 » sql字元串逃逸
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql字元串逃逸

發布時間: 2023-02-06 00:05:22

『壹』 sql資料庫某個表中的PSSWORD設置數字密碼 為什麼不能用 還要翻譯嗎

二.Windows下的SQLite的源代碼是哪個軟體壓縮包?
sqlite-amalgamation-3_6_22.zip是SQLite的windows下源碼文件
三.Window下的SQLite命令行工具
sqlite-3_6_22.zip
四.Window下的SQLite開發庫,即動態鏈接庫以及DEF文件
sqlitedll-3_6_22.zip
五.SQLite最新版本是:3.6.22
六.b<=a && a <= c 的SQL語句如何寫
在SQLite中, 表達式"a BETWEEN b AND c"等於表達式 "a >= b AND a <= c",在比較表達式時,a可以是具有任何親和性
七.a的值是x,y,z其中一個值,SQL語句如何寫
SQLite把表達式 "a IN (x, y, z)" 和 "a = z OR a = y OR a = z"視為相等.
八.如何創建制定目錄的資料庫
sqlite3 D:/Project/SyncML/Lib/debug/atsync.db
九.創建數據的注意事項
如果不往資料庫裡面添加任何的表,這個資料庫等於沒有建立,不會在硬碟上產生任何文件,如果資料庫已經存在,則會打開這個資料庫。
十.如何添加一張數據表
create table student(name varchar(10), age smallint);
十一.如何往數據表中添加數據
insert into student values('張三', 20);
十二.如何通過sqlite3.dll與sqlite3.def生成sqlite3.lib文件
LIB /DEF:sqlite3.def /machine:IX86
十三.如何查詢SQLite工具的軟體版本
也就是sqlite3.exe應用程序小工具的版本號
方法一:進入sqlite3.exe所在目錄,在命令行執行如下命令
sqlite3 –version
方法二:
select sqlite_version();
十四.如何在字元串中使用單引號(')?
SQL 標准規定,在字元串中,單引號需要使用逃逸字元,即在一行中使用兩個單引號
十五.如果刪除了大量數據,而又想縮小資料庫文件佔用的空間,執行 VACUUM 命令
vacuum;
十六.在SQLite中,如何在一個表上添加或刪除一列?
SQLite 有有限地 ALTER TABLE 支持。你可以使用它來在表的末尾增加一列,可更改表的名稱。 如果需要對表結構做更復雜的改變,則必須重新建表。 重建時可以先將已存在的數據放到一個臨時表中,刪除原表, 創建新表,然後將數據從臨時表中復制回來。
如,假設有一個 t1 表,其中有 "a", "b", "c" 三列, 如果要刪除列 c ,以下過程描述如何做:
開始事物處理
BEGIN TRANSACTION;
創建臨時表格t1-backup
CREATE TEMPORARY TABLE t1_backup(a,b);
將資料庫表t1中的所有數據拷貝到表t1-backup中
INSERT INTO t1_backup SELECT a,b FROM t1;
刪除表格t1
DROP TABLE t1;
創建表格t1
CREATE TABLE t1(a,b);
將資料庫表t1-backup中的所有數據拷貝到表t1中
INSERT INTO t1 SELECT a,b FROM t1_backup;
刪除備份表格t1-backup
DROP TABLE t1_backup;
事物提交
COMMIT;
十七.如何查詢當前的編碼的編碼格式
pragma encoding;
十八.SQLite支持哪些數據類型些?
NULL 值為NULL
INTEGER 值為帶符號的整型,根據類別用1,2,3,4,6,8位元組存儲
REAL 值為浮點型,8位元組存儲
TEXT 值為text字元串,使用資料庫編碼(UTF-8, UTF-16BE or UTF-16-LE)存儲
BLOB 值為二進制數據,具體看實際輸入
但實際上,sqlite3也接受如下的數據類型:
smallint 16 位元的整數
interger 32 位元的整數
decimal(p,s) p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值 ,s是指小數點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
float 32位元的實數。
double 64位元的實數。
char(n) n 長度的字串,n不能超過 254。
varchar(n) 長度不固定且其最大長度為 n 的字串,n不能超過 4000。
graphic(n) 和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。 這個形態是為了支援兩個字元長度的字體,例如中文字。
vargraphic(n) 可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
date 包含了 年份、月份、日期。
time 包含了 小時、分鍾、秒。
timestamp 包含了 年、月、日、時、分、秒、千分之一秒。
十九.如果將某個欄位設置為INTEGER PRIMARY KEY屬性,有什麼特性?
如果將聲明表的一列設置為 INTEGER PRIMARY KEY,則具有:
1.每當你在該列上插入一NULL值時, NULL自動被轉換為一個比該列中最大值大1的一個整數;
2.如果表是空的, 將會是1;
注意該整數會比表中該列上的插入之前的最大值大1。 該鍵值在當前的表中是唯一的。但有可能與已從表中刪除的值重疊。要想建立在整個表的生命周期中唯一的鍵值,需要在 INTEGER PRIMARY KEY 上增加AUTOINCREMENT聲明。那麼,新的鍵值將會比該表中曾能存在過的最大值大1。
二十.欄位聲明中有AUTOINCREMENT屬性,有什麼與眾不同的含義?
要想建立在整個表的生命周期中唯一的鍵值,需要在 INTEGER PRIMARY KEY 上增加AUTOINCREMENT聲明。那麼,新的鍵值將會比該表中曾能存在過的最大值大1。
2010年SQLite學習筆記之二
一.建立資料庫

『貳』 sql 處理字元串的函數有哪些

1.絕對值
SQL:select abs(-1) value
O:select abs(-1) value from al
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from al
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from al
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from al
5.四捨五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from al 1.2346
6.e為底的冪
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from al 2.71828182
7.取e為底的對數
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from al; 1
8.取10為底對數
S:select log10(10) value 1
O:select log(10,10) value from al; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from al 16
10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from al 2
11.求任意數為底的冪
S:select power(3,4) value 81
O:select power(3,4) value from al 81
12.取隨機數
S:select rand() value
O:select sys.dbms_random.value(0,1) value from al;
13.取符號
S:select sign(-8) value -1
O:select sign(-8) value from al -1
----------數學函數
14.圓周率
S:SELECT PI() value 3.1415926535897931
O:不知道
15.sin,cos,tan 參數都以弧度為單位
例如:select sin(PI()/2) value 得到1(SQLServer)
16.Asin,Acos,Atan,Atan2 返回弧度
17.弧度角度互換(SQLServer,Oracle不知道)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------數值間比較
18. 求集合最大值
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select greatest(1,-2,4,3) value from al
19. 求集合最小值
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select least(1,-2,4,3) value from al
20.如何處理null值(F2中的null以10代替)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl
--------數值間比較
21.求字元序號
S:select ascii('a') value
O:select ascii('a') value from al
22.從序號求字元
S:select char(97) value
O:select chr(97) value from al
23.連接
S:select '11'+'22'+'33' value
O:select CONCAT('11','22')||33 value from al
23.子串位置 --返回3
S:select CHARINDEX('s','sdsq',2) value
O:select INSTR('sdsq','s',2) value from al
23.模糊子串的位置 --返回2,參數去掉中間%則返回7
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle沒發現,但是instr可以通過第四霾問 刂瞥魷執問?BR> select INSTR('sdsfasdqe','sd',1,2) value from al 返回6
24.求子串
S:select substring('abcd',2,2) value
O:select substr('abcd',2,2) value from al
25.子串代替 返回aijklmnef
S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from al
26.子串全部替換
S:沒發現
O:select Translate('fasdbfasegas','fa','我' ) value from al
27.長度
S:len,datalength
O:length
28.大小寫轉換 lower,upper
29.單詞首字母大寫
S:沒發現
O:select INITCAP('abcd dsaf df') value from al
30.左補空格(LPAD的第一個參數為空格則同space函數)
S:select space(10)+'abcd' value
O:select LPAD('abcd',14) value from al
31.右補空格(RPAD的第一個參數為空格則同space函數)
S:select 'abcd'+space(10) value
O:select RPAD('abcd',14) value from al
32.刪除空格
S:ltrim,rtrim
O:ltrim,rtrim,trim
33. 重復字元串
S:select REPLICATE('abcd',2) value
O:沒發現
34.發音相似性比較(這兩個單詞返回值一樣,發音相同)
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from al
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差
返回0-4,4為同音,1最高
--------------日期函數
35.系統時間
S:select getdate() value
O:select sysdate value from al
36.前後幾日
直接與整數相加減
37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from al
select to_char(sysdate,'yyyy-mm-dd') value from al
38.求時間
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from al
39.取日期時間的其他部分
S:DATEPART 和 DATENAME 函數 (第一個參數決定)
O:to_char函數 第二個參數決定
參數---------------------------------下表需要補充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O無效)
dayofyear dy, y (O表星期)
day dd, d (d O無效)
week wk, ww (wk O無效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S無效)
minute mi, n (n O無效)
second ss, s (s O無效)
millisecond ms (O無效)
----------------------------------------------
40.當月最後一天
S:不知道
O:select LAST_DAY(sysdate) value from al
41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
42.字元串轉時間
S:可以直接轉或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
43.求兩日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用兩個日期相減(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.根據差值求新的日期(比如分鍾)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;
45.求不同時區時間
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
-----時區參數,北京在東8區應該是Ydt-------
AST ADT 大西洋標准時間
BST BDT 白令海標准時間
CST CDT 中部標准時間
EST EDT 東部標准時間
GMT 格林尼治標准時間
HST HDT 阿拉斯加—夏威夷標准時間
MST MDT 山區標准時間
NST 紐芬蘭標准時間
PST PDT 太平洋標准時間
YST YDT YUKON標准時間
Oracle支持的字元函數和它們的Microsoft SQL Server等價函數:
函數 Oracle Microsoft SQL Server
把字元轉換為ASCII ASCII ASCII
字串連接 CONCAT (expression + expression)
把ASCII轉換為字元 CHR CHAR
返回字元串中的開始字元(左起) INSTR CHARINDEX
把字元轉換為小寫 LOWER LOWER
把字元轉換為大寫 UPPER UPPER
填充字元串的左邊 LPAD N/A
清除開始的空白 LTRIM LTRIM
清除尾部的空白 RTRIM RTRIM
字元串中的起始模式(pattern) INSTR PATINDEX
多次重復字元串 RPAD REPLICATE
字元串的語音表示 SOUNDEX SOUNDEX
重復空格的字串 RPAD SPACE
從數字數據轉換為字元數據 TO_CHAR STR
子串 SUBSTR SUBSTRING
替換字元 REPLACE STUFF
將字串中的每個詞首字母大寫 INITCAP N/A
翻譯字元串 TRANSLATE N/A
字元串長度 LENGTH DATELENGTH or LEN
列表中最大的字元串 GREATEST N/A
列表中最小的字元串 LEAST N/A
如果為NULL則轉換字串 NVL ISNULL

日期函數
函數 Oracle Microsoft SQL Server
日期相加 (date column +/- value) or
ADD_MONTHS DATEADD
兩個日期的差 (date column +/- value) or
MONTHS_BETWEEN DATEDIFF
當前日期和時間 SYSDATE GETDATE()
一個月的最後一天 LAST_DAY N/A
時區轉換 NEW_TIME N/A
日期後的第一個周日 NEXT_DAY N/A
代表日期的字元串 TO_CHAR DATENAME
代表日期的整數 TO_NUMBER
(TO_CHAR)) DATEPART
日期舍入 ROUND CONVERT
日期截斷 TRUNC CONVERT
字元串轉換為日期 TO_DATE CONVERT
如果為NULL則轉換日期 NVL ISNULL

轉換函數
函數 Oracle Microsoft SQL Server
數字轉換為字元 TO_CHAR CONVERT
字元轉換為數字 TO_NUMBER CONVERT
日期轉換為字元 TO_CHAR CONVERT
字元轉換為日期 TO_DATE CONVERT
16進制轉換為2進制 HEX_TO_RAW CONVERT
2進制轉換為16進制 RAW_TO_HEX CONVERT

其它行級別的函數
函數 Oracle Microsoft SQL Server
返回第一個非空表達式 DECODE COALESCE
當前序列值 CURRVAL N/A
下一個序列值 NEXTVAL N/A
如果exp1 = exp2, 返回null DECODE NULLIF
用戶登錄賬號ID數字 UID SUSER_ID
用戶登錄名 USER SUSER_NAME
用戶資料庫ID數字 UID USER_ID
用戶資料庫名 USER USER_NAME
當前用戶 CURRENT_USER CURRENT_USER
用戶環境(audit trail) USERENV N/A
在CONNECT BY子句中的級別 LEVEL N/A

合計函數
函數 Oracle Microsoft SQL Server
Average AVG AVG
Count COUNT COUNT
Maximum MAX MAX
Minimum MIN MIN
Standard deviation STDDEV STDEV or STDEVP
Summation SUM SUM
Variance VARIANCE VAR or VARP
Oracle還有一個有用的函數EXTRACT,提取並且返回日期時間或時間間隔表達式中特定的時間域:
EXTRACT(YEAR FROM 日期)

『叄』 在教室里是SQL中的字元串常量

您想問的是「在教室里是SQL中的字元串常量嗎?」不是。
SQL里的字元串常量是一個由單引號("'")圈定范圍的任意字元的序列,比如,'Thisisastring'.SQL允許你在字元串里嵌入單引號,方法是敲入兩個連續的單引號(比如,'Dianne''shorse').在PostgreSQL里,單引號還可以用一個反斜扛("")來逃逸,比如,'Dianne'shorse'.

『肆』 sql語句中符號"=>"怎麼用

以下希望對你有所幫助。

盡管聲明字串常量的標准方法通常都很方便,但是如果字串包含很多單引號或者反斜杠, 那麼理解字串的內容可能就會變得很苦澀,因為每個單引號都要加倍。 為了讓這種場合下的查詢更具可讀性,PostgreSQL 允許另外一種稱作"美元符包圍"的字串常量聲明辦法。 一個通過美元符包圍聲明的字串常量由一個美元符號($),一個可選的零個或多個字元"記號", 另外一個美元符號,一個組成字串常量的任意字元的序列,一個美元符號,以及一個和開始這個美元符包圍的記號相同的記號,和一個美元符號組成。 比如,下面是兩個不同的方法,用美元符包圍聲明了前面的例子:

$$Dianne's horse$$
$SomeTag$Dianne's horse$SomeTag$請注意,在美元符包圍的字串里,單引號可以不用逃逸使用。 實際上,在一個美元符包圍的字串里,沒有什麼字元需要逃逸: 字串內容總是按照字面內容寫。反斜杠不是特殊的, 美元符自己也不是特殊的,除非它們和開標簽的一部分匹配。

我們可以通過在不同嵌套級別使用不同的美元符引號字串常量來實現嵌套。 最常見的是寫函數定義的時候。比如:

$function$
BEGIN
RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
END;
$function$這里,序列 $q$[\t\r\n\v\\]$q$ 表示一個美元符包圍的字串文本 [\t\r\n\v\\], 在函數體被 PostgreSQL 執行的時候,它將被識別出來。 但是因為這個序列不匹配外層的美元符分隔符$function$, 所以只要考慮了外層字串,它就只是常量裡面的一些額外的字元而已。

如果有標簽的話,一個美元符包圍的字串遵循和無引號包圍的標識符相同的規則, 只是它不能包含美元符。標簽是大小寫相關的,因此 $tag$String content$tag$ 是正確的,而 $TAG$String content$tag$ 不對。

一個後面跟著關鍵字或者標識符的美元包圍的字串必須用空白隔開; 否則美元符包圍分隔符將會被認為前面標識符的一部分。

美元符包圍不是 SQL 標准,但是在寫復雜的字串文本的時候,它通常比標準的單引號語法更方便。 尤其是在其它常量里表現字串常量的時候更有用,比如經常在過程函數定義裡面的。 如果用單引號語法,每個上面例子里的反斜杠都必須寫四個,它們在作為字串文本分析的時候會減少為兩個, 然後在函數執行的時候在內層字串常量里會再次被解析為一個。

『伍』 如何在字元串中使用單引號(')

SQL 標准規定,在字元串中,單引號需要使用逃逸字元,即在一行中使用兩個單引號。在這方面 SQL 用起來類似 Pascal 語言。如:

『陸』 postgresql like 特殊字元怎麼處理

PostgreSQL 提供了三種實現模式匹配的方法:傳統 SQL 的 LIKE 操作符、SQL99 新增的 SIMILAR TO 操作符、 POSIX 風格的正則表達式。另外還有一個模式匹配函數 substring可用,它可以使用 SIMILAR TO 風格或者 POSIX 風格的正則表達式
LIKE
string LIKE pattern [ESCAPE escape-character]
string NOT LIKE pattern [ESCAPE escape-character]

每個 pattern 定義一個字元串的集合。如果該 string 包含在 pattern 代表的字元串集合里,那麼 LIKE 表達式返回真。和我們想像的一樣,如果 LIKE 返回真,那麼 NOT LIKE 表達式將返回假,反之亦然。一個等效的表達式是 NOT (string LIKE pattern) 。
如果 pattern 不包含百分號或者下劃線,那麼該模式只代表它本身;這時候 LIKE 的行為就像等號操作符。在 pattern 里的下劃線(_)匹配任何單個字元;而一個百分號(%)匹配零或多個任何字元。
一些例子:
'abc' LIKE 'abc' true
'abc' LIKE 'a%' true
'abc' LIKE '_b_' true
'abc' LIKE 'c' false

LIKE 模式匹配總是覆蓋整個字元串。要匹配在字元串內部任何位置的序列,該模式必須以百分號開頭和結尾。
要匹配下劃線或者百分號本身,在 pattern 里相應的字元必須前導逃逸字元。預設的逃逸字元是反斜杠,但是你可以用 ESCAPE 子句指定一個。要匹配逃逸字元本身,寫兩個逃逸字元。
請注意反斜杠在字元串文本里已經有特殊含義了,所以如果你寫一個包含反斜杠的模式常量,那你就要在 SQL 語句里寫兩個反斜杠。因此,寫一個匹配單個反斜杠的模式實際上要在語句里寫四個反斜杠。你可以通過用 ESCAPE 選擇一個不同的逃逸字元來避免這樣;這樣反斜杠就不再是 LIKE 的特殊字元了。但仍然是字元文本分析器的特殊字元,所以你還是需要兩個反斜杠。
我們也可以通過寫成 ESCAPE '' 的方式關閉逃逸機制,這時,我們就不能關閉下劃線和百分號的特殊含義。
關鍵字 ILIKE 可以用於替換 LIKE ,令該匹配就當前的區域設置是大小寫無關的。這個特性不是 SQL 標准,是 PostgreSQL 擴展。
操作符 ~~ 等效於 LIKE ,而 ~~* 等效於 ILIKE 。還有 !~~ 和 !~~* 操作符分別代表 NOT LIKE 和 NOT ILIKE 。所有這些操作符都是 PostgreSQL 特有的.
例子: 查找資料庫中表的名字(查找以tbl_開頭的表的名字)
select tablename from pg_tables where tablename like 'tbl!_%'ESCAPE '!';
利用escape轉義: 上面的sql語句中就是將!作為轉義字元,作用是將"_"轉換成普通的"_"

『柒』 SQL中字元串的連接

在MYSQL中字元串連接使用的是concat內置函數。

CONCAT() 的語法如下:

CONCAT(字串1, 字串2, 字串3, ...): 將字串1、字串2、字串3,等字串連在一起。

請注意,Oracle的CONCAT()只允許兩個參數;

換言之,一次只能將兩個字串串連起來,不過,在Oracle中,可以用'||'來一次串連多個字串。

(7)sql字元串逃逸擴展閱讀:

注意:

如果所有參數均為非二進制字元串,則結果為非二進制字元串。

如果自變數中含有任一二進制字元串,則結果為一個二進制字元串。

一個數字參數被轉化為與之相等的二進制字元串格式;若要避免這種情況,可使用顯式類型 cast, 例如:

SELECT CONCAT(CAST(int_col AS CHAR), char_col)

『捌』 SQL中字元串的替換

select
id,stuff(name,1,6,'')
as
name
from
t_table
--stuff(列名,從第幾個字元開始,長度,替換成什麼)
--如上例,就是從第一個字元「第」開始,長度為6,也就是「第n(名字)」替換成空字元
--對於變長的。。那麼這個。
就行了
select
id,substring(name,charindex(')',name)+1,len(name))
as
name
from
t_table