sql語句變數加和不加有什麼區別

2021-03-07 00:59:44 字數 900 閱讀 9299

1樓:

引號中的內容為字串,可以是數值,也可以是字元

沒有引號的數字為表示為資料值(這裡是整型數值),字元一般表示為欄位名。

儘管這樣,系統會自動先進行一致性轉換,再進行比較,所以,如果你的sno是數值型,兩個查詢都不會報錯,也會查詢出想要的結果。但如果sno是字元型,第一個查詢就有可能報錯,這要看sno的資料中的字串是否均為數字。如果有字元型字串,就會報錯。

為什麼會這樣呢?這就要了解系統內部的查詢過程:

select * from student where sno = 100 在查詢時,比較的過程是,提取每一個sno,如果是整型或數值型,則不轉換,如果是字元型,則要將sno轉換為數值型再比較。這樣,如果sno存有含字元的資料,如'111a',轉換時就會報告資料型別錯誤。

而select * from student where sno='100' ,如果sno是整型,就會將'100'先轉換為整型再與sno進行比較,如果是字元型,就直接與sno進行比較。

2樓:匿名使用者

對於數字來說,不加引號就代表數字,加了代表字元,就猶如abc這種

而對於非數字來說,不加引號就代表物件,如表名、列名、儲存過程名等

像你的例子,都能查詢到資料,那是因為發生了資料型別的隱式轉換,資料型別比較一定會都轉換為同一型別才做比較的

3樓:匿名使用者

本來是數值型的不加單引號,字元型的需要加單引號,但是如果sno欄位是數值型,加不加單引號都可以查詢出結果,但如果sno欄位是字元型,那麼一定要加單引號

4樓:匿名使用者

加 引號 是字串,不加是 數字

5樓:匿名使用者

int 和 string 的區別 一個是數一個是字串

c語言中函式名前加與不加有什麼區別

加 是返回指標 例如 int add add 函式返回的是一個int型別的值 int add add 函式返回的是一個int型別的指標 函式原型宣告和定義中,函式名前加 的表示返回值是指標。例如標準庫函式gets char gets char str 從鍵盤讀入一行字串,如果讀入成功,返回值與str...

C語言裡自加和自減 放變數前和變數後有什麼不同作用啊

運算子在前,表示運算在前取值在後 運算子在後,表示運算在後取值在前c語言是程序式程式設計語言。不同於 純 函數語言程式設計語言,c語言的表示式可以改變變數的值或外部狀態,這被稱為表示式的 side effect i 就是含有 的表示式,在對 i i 這樣的字首運算子 prefix increment...

請教verilog裡變數宣告時和有什麼區別

1 模組宣告的擴充套件 1 verilog 2001允許將埠宣告和資料型別宣告放在同一條語句中,例子如下 向左轉 向右轉 2 verilog 2001中增加了ansic風格的輸入輸出埠宣告,可以用於module,task和function。例子如下 向左轉 向右轉 3 對於含有parameter的m...