Ⅰ sql語句什麼時候加引號
明顯不對。x0dx0aselect...是sql語句。x0dx0a$_post...是php語句。x0dx0ax0dx0a如果嫌賀返你寫的是sql語句,那就不能有$_post[]x0dx0a如果你寫的是php語句,那就應該把其中的sql語句部分作為一般的字元串處理:x0dx0a$sql="select*fromawhere`name`=";x0dx0a$sql.=$_post['name'];x0dx0a然後再用php的sqllibrary的function來運行這個字元串$sqlx0dx0ax0dx0a在純sql語句中,如愛老婆所說,欄位名加`或者什麼也不加;字元類型的數值加單引號芹飢。x0dx0a在php語句中,由於sql部分被認為是字元串,所以要加單/雙引號。但因為sql語句中,本身可能包含單引號,所以為了分辨,必須用雙引號。x0dx0a而$_post['name']的意思是,php在載入頁面的時候,把所有用html的post方法得到的變數都放入了一個叫_post的數組中。$_post['name']就是調用_post數組中,名稱為字元串name的那個變數的值。拍衫
Ⅱ 我的sql2005在查詢時總是需要在表名上加引號
網路知道就是被樓上的這種垃圾給搞壞的。。。找點書COPY過來有什麼意思。。。。。。。
-----------------------------
要防止SQL注入其實不難,你知道原理就可以了。
所有的SQL注入都是從用戶的輸入開始的。如果你對所有用戶輸入進行了判定和過濾,就可以防止SQL注入了。用戶輸入有好幾種,我就說說常見的吧。
文本框、地址欄里***.asp?中?號後面的id=1之類的、單選框等等。一般SQL注入都用地址欄里的。。。。如果要說怎麼注入我想我就和上面的這位「仁兄」一樣的了。
你只要知道解決對嗎?
對於所有從上一頁傳遞過來的參數,包括request.form 、request.qurrystring等等進行過濾和修改。如最常的***.asp?id=123 ,我們的ID只是用來對應從select 里的ID,而這ID一般對應的是一個數據項的唯一值,而且是數字型的。這樣,我們只需把ID的值進行判定,就可以了。vbs默認的isnumeric是不行的,自己寫一個is_numeric更好,對傳過來的參數進行判定,OK,搞定。演算法上的話,自己想想,很容易了。但是真正要做到完美的話,還有很多要計算的。比如傳遞過來的參數的長度,類型等等,都要進行判定。還有一種網上常見的判定,就是判定傳遞參數的那一頁(即上一頁),如果是正常頁面傳弟過來就通過,否則反之。也有對' or 等等進行過濾的,自己衡量就可以了。注意一點就是了,不能用上一頁的某一個不可見request.form("*")進行判定,因為用戶完全可以用模擬的形式「復制」一個和上一頁完全一樣的頁面來遞交參數。這樣,這招就沒用了。。。。
OK就說這么多,還不明白的話,找我。[email protected]
Ⅲ SQL中什麼情況下用引號
查詢條件為文本格式時要求用引號,如varchar、char類型等,反之數值格式不要加引號,如bit、double、float、int類型等。舉個例子slecet * from A where id='1'slecet * from A where id=1這兩個的區別在於第一條id是字元型的,第二條id為數值型的
Ⅳ 用SQL語句隨便寫一條資料庫增刪改查語句
一、增:有2種方法
1.使用insert插入單行數據:
語法:insert [into] <表名> [列名] values <列值>
例:insert into Strdents (姓名,性別,出生日期) values ('王偉華','男','1983/6/15')
注意:如果省略表名,將依次插入所有列
2.使用insert,select語句將現有表中的 數據添加到已有的新表中
語法:insert into <已有的新表> <列名> select <原表列名> from <原表名>
例:insert into addressList ('姓名','地址','電子郵件')select name,address,email
fromStrdents
注意:查詢得到的數據個數、順序、數據類型等,必須與插入的項保持一致
二、刪:有2中方法
1.使用delete刪除數據某些數據
語法:delete from <表名> [where <刪除條件>]
例:delete from a where name='王偉華'(刪除表a中列值為王偉華的行)
注意:刪除整行不是刪除單個欄位,所以在delete後面不能出現欄位名
2.使用truncate table 刪除整個表的數據
語法:truncate table <表名>
例:truncate table addressList
注意:刪除表的所有行,但表的結構、列、約束、索引等不會被刪除;不能
用於有外建約束引用的表
三、改使用update更新修改數據
語法:update <表名> set <列名=更新值> [where <更新條件>]
例:update addressList set 年齡=18 where 姓名='王偉華'
注意:set後面可以緊隨多個數據列的更新值(非數字要引號);where子句是可選的(非數字要引號),用來限制條件,如果不選則整個表的所有行都被更新
四、查
語法:select <列名> from <表名> [where <查詢條件表達試>] [order by <排序的列
名>[asc或desc]]
1).查詢所有數據行和列
例:select * from a
說明:查詢a表中所有行和
2).查詢部分行列--條件查詢
例:select i,j,k from a where f=5
說明:查詢表a中f=5的所有行,並顯示i,j,k3列
3).在查詢中使用AS更改列名
例:select name as 姓名from a where gender='男'
說明:查詢a表中性別為男的所有行,顯示name列,並將name列改名為(姓名)顯示
4).查詢空行
例:select name from a where email is null
說明:查詢表a中email為空的所有行,並顯示name列;SQL語句中用is null或者is not null
來判斷是否為空行
5).在查詢中使用常量
例:select name '北京' as 地址 froma
說明:查詢表a,顯示name列,並添加地址列,其列值都為'北京'
6).查詢返回限制行數(關鍵字:top )
例1:select top 6 name from a
說明:查詢表a,顯示列name的前6行,top為關鍵字(oracle 中沒有top關鍵字
用rownum替代)
select * from a where rownum<6
7).查詢排序(關鍵字:order by , asc , desc)
例:select name
from a
where grade>=60
order by desc
說明:查詢表中成績大於等於60的所有行,並按降序顯示name列;默認為ASC升序
Ⅳ sql語句引號用法
1、首先先來說一下單引號和反引號,這里的 '圖書ID' 就使用到了單引號,而
2、CREATE TABLE `book` 這里的 book 就使用到了反引號。
3、單引號:在例子中的條件值周圍使用的是單引號團桐。SQL 使用單引號來環繞文本值。如果是數值,請不要使用引號。按照別的說法來說就是Varchar類型(也可以說是String、字元串類型)這一些在資料庫語句中使用的時候應該使用單引號,而不是直接使用。而對於數值類型的,反而是不能使用單引號。
4、反引號:它是為了區分MYSQL的保留字與普通字元而引入的符號。
5、注意劃重點:有MYSQL保留字作為欄位的,必須加上反引號來區分!
6、雙引號的用法和單引號有所類似,大多塌余坦數資料庫都支持單引號和雙引號的互換,即varchar類型的變數既可以用單引號來囊括,也可以用雙引號。當然了,一邊單引號,一邊雙引號是不被允許的。
7、另外,在oracle裡面,雙引號還有一個意義,那就是保留大小寫。在oracle資料庫裡面,所有的欄位是默認為轉化成大寫後進資料庫的,所以如果有一個表名為user,這個時候select * from user;這個語句是查不出任何數據的!(明明創建了表,也會提示毀友表不存在的錯誤)只有select * from 「user」才可以,因為上面的語句會默認轉化為大寫。
8、字元串用單引號;表名,欄位名等用反引號;大小寫沖突用雙引號。
Ⅵ 資料庫的增刪改查
1、資料庫增加數據:
1)插入單行
insert [into] <表名> (列名) values (列值)
例:insert into t_table (name,sex,birthday) values ('開心朋朋','男','1980/6/15')
2)將現有表數據添加到一個已有表 insert into <已有的新表> (列名) select <原表列名> from <原表名>
例:insert into t_table ('姓名','地址','電子郵件')
select name,address,emailfrom t_table
3)直接拿現有表數據創建一個新表並填充select <新建表列名> into <新建表名> from <源表名>例:select name,address,email into t_table from strde
2、資料庫刪除數據:
1)刪除<滿足條件的>行
delete from <表名> [where <刪除條件>]。
例:delete from t_tablewhere name='開心朋朋'(刪除表t_table中列值為開心朋朋的行)
2)刪除整個表truncate table <表名>
truncate table tongxunlu
注意:刪除表的所有行,但表的結構、列、約束、索引等不會被刪除;不能用語有外建約束引用的表
3、資料庫修改數據 update <表名> set <列名=更新值> [where <更新條件>]
例:update t_table set age=18 where name='藍色小名'
4、資料庫查詢數據:
1)精確(條件)查詢
select <列名> from <表名> [where <查詢條件表達試>] [order by <排序的列名>[asc或desc]]
2)查詢所有數據行和列。例:select * from a
說明:查詢a表中所有行和列
3)使用like進行模糊查詢
注意:like運算副只用於字元串,所以僅與char和varchar數據類型聯合使用
例:select * from a where name like '趙%'
說明:查詢顯示表a中,name欄位第一個字為趙的記錄
4)使用between在某個范圍內進行查詢
例:select * from a where nianling between 18 and 20
說明:查詢顯示表a中nianling在18到20之間的記錄
5)使用in在列舉值內進行查詢
例:select name from a where address in ('北京','上海','唐山')
說明:查詢表a中address值為北京或者上海或者唐山的記錄,顯示name欄位
(6)sql增刪改查需要加引號擴展閱讀:
插入之前需要創建數據表,創建方式如下:
CREATE TABLE 表名稱
(
列名稱1 數據類型,
列名稱2 數據類型,
列名稱3 數據類型,
....
)
例如:--流程步驟定義表
create table T_flow_step_def(
Step_no int not null, --流程步驟ID
Step_name varchar(30) not null, --流程步驟名稱
Step_des varchar(64) not null, --流程步驟描述
Limit_time int not null, --時限
URL varchar(64) not null, --二級菜單鏈接
Remark varchar(256) not null,
)
Ⅶ sql 查詢的結果如何加上單引號。
1、首先,我們先下載這個軟體,網路搜索editplus,下載搜索出來的第一個。
Ⅷ sql中什麼時候需要用雙引號,什麼時候用單引號;
這就要從雙引號和單引號的作用講起:
1,雙引號裡面的欄位會經過編譯器解釋然後再當作HTML代碼輸出,但是單引號裡面的不需要解釋,直接輸出。例如:
$abc='I love u';
echo $abc //結果是:I love u
echo '$abc' //結果是:$abc
echo "$abc" //結果是:I love u
2,所以在對資料庫裡面的SQL語句賦值的時候也要用在雙引號裡面SQL="select a,b,c from ..."
3,但是SQL語句中會有單引號把欄位名引出來
例如:select * from table where user='abc';
這里的SQL語句可以直接寫成SQL="select * from table where user='abc'"
4,但是如果象下面:
$user='abc';
SQL1="select * from table where user=' ".$user." ' ";對比一下
SQL2="select * from table where user=' abc ' "
5,我把單引號和雙引號之間多加了點空格,希望你能看的清楚一點。
也就是把'abc' 替換為 '".$user."'都是在一個單引號裡面的。只是把整個SQL字元串分割了。
SQL1可以分解為以下3個部分
1:"select * from table where user=' "
2:$user
3:" ' "
字元串之間用 . 來連接。