Ⅰ sql中在做查詢時怎樣給某一個欄位重命名
sql 重命名專業術語是 別名,用 AS 語句實現。
例:給sc_table表中的age欄位重命名為st_age,則:
selectageasst_age
fromsc_table
類似的還可以給表起別名
例如:查詢sc_student表所有行並重命名為student,則:
select*
fromsc_studentasstudent
Ⅱ SQL查詢中如何使用參數
這樣就只能通過動態拼成SQL了。
begin
declare @sql varchar(max)
set @sql ='SELECT PERSON, POSITION
FROM TABLE_'+變數+'
WHERE TIME>1514156400'
exec (@sql)
end
Ⅲ 如何使PreparedStatement支持命名參數
所謂命名參數,使用.net的人應該比較熟,很方便,參數多的時候不容易出錯,搞不懂java為什麼就不支持。如果沒有使用過,或者對於命名參數不知所雲,請看下面的說明。
PreparedStatement中參數都是使用下標傳值,如:
PreparedStatement p = con.prepareStatement("select * from people where
(first_name = ? or last_name = ?) and address = ?");
p.setString(1, name);
p.setString(2, name);
p.setString(3, address);
但是如果查詢語句復雜,或者修改了sql,要跟蹤每個參數的下標將變得非常麻煩並且容易出錯,如果使用名稱來命名參數就可以解決這個問題,如:
PreparedStatement p = con.prepareStatement("select * from people where
(first_name =:name or last_name =:name) and address =:address");
p.setString("name", name);
p.setString("address", address);
正文
最近認真學習了一下正則表達式,發現使用正則表達式可以很好的解決這個問題。
思路如下:
以命名參數的形式寫好SQL語句,然後使用正則表達式提取出所有參數,使用Map記錄,然後將參數替換成?(也就是java要求的標准形式),使用標準的SQL語句來創建PreparedStatement,最後根據Map來設置PreparedStatement的參數。
好了,廢話少說。貼一下代碼,我個人覺得實現的比較得比較簡單、優雅。沒有仔細測試,如發現問題,歡迎交流([email protected])。
import java.sql.PreparedStatement;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 用來模擬實現命名參數功能
* <br/>
* 編碼:wallimn時間:2009-1-8下午12:11:34<br/>
* 版本:V1.0<br/>
*/
public class NamedParamSqlUtil {
static final Log log = LogFactory.getLog(NamedParamSqlUtil.class);
private Map<Integer,String> paramsMap=new HashMap<Integer,String>();
public Map<Integer,String> getParamsMap(){
return paramsMap;
}
public void emptyMap(){
paramsMap.clear();
}
/**
Ⅳ sql語句加參數
你需要了解sql語句的拼接和一般字元串的拼接的異同.
例如:在sql腳本語句中,字元串用單引號'',這些在C#語句中拼接"sql語句"字元串時需要注意.
你可以在vs.net中寫一個用字元串拼接的sql語句,最後把它賦值給一個字元串對象.然後用斷點調試區查看生成的sql語句的結果,一般sql語句較長,驗證的方式都是把這段sql語句到sql sever的腳本文件(.sql)中去執行一下,就知道是否正確了.當然也有先在sql server 中調試好拼接字元串後再到程序代碼中去修改的.具體方式不定.
(以上是介紹的拼接sql語句方法,不過這種方式的安全性不高,常見的sql注入式攻擊就是利用的拼接sql語句的缺陷.)
你還可以考慮使用帶參數的存儲過程來實現,這個就需要了解存儲過程的一些知識了,具體的方法我就不介紹了,關於帶參數的存儲過程,網上有很多例子參考.
Ⅳ sql資料庫如何重命名
1、首先需要從開始菜單中找到【SQL Server 配置管理器】。
Ⅵ SQL語句:表重命名
sql語句重命名表名和列名
ylb:sql語句重命名表名和列名返回頂部
一、更改資料庫名
sp_renamedb 更改資料庫的名稱。
語法: sp_renamedb [ @dbname = ] ' old_name ' , [ @newname = ] ' new_name '
參數: [ @dbname = ] ' old_name ' 是資料庫的當前名稱。old_name 為 sysname 類型,無默認值。
[ @newname = ] ' new_name ' 是資料庫的新名稱。 new_name 必須遵循標識符規則。new_name 為 sysname 類型,無默認值。
返回代碼值: 0 (成功)或非零數字(失敗)
許可權: 只有 sysadmin 和 dbcreator 固定伺服器角色的成員才能執行 sp_renamedb。
示例: 下例將資料庫 accounting 改名為 financial。
EXEC sp_renamedb ' accounting ' , ' financial '
二、更改表名或列名
sp_rename [ @objname = ] ' object_name ' ,
[ @newname = ] ' new_name '
[ , [ @objtype = ] ' object_type ' ]
A. 重命名表:
下例將表 customers 重命名為 custs。
EXEC sp_rename ' customers ' , ' custs '
B. 重命名列:
下例將表 customers 中的列 contact title 重命名為 title。
EXEC sp_rename ' customers.[contact title] ' , ' title ' , ' COLUMN '
Ⅶ SQL創建儲存過程的參數命名
就是一個特定的用法,就像加減乘除一樣。
Ⅷ Oracle 動態SQL中如何參數化表名
表名可用變數,但一般需要用到動態sql,舉例如下:
declare
v_date varchar2(8);--定義日期變數
v_sql varchar2(2000);--定義動態sql
v_tablename varchar2(20);--定義動態表名
begin
select to_char(sysdate,'yyyymmdd') into v_date from al;--取日期變數
v_tablename := 'T_'||v_date;--為動態表命名
v_sql := 'create table '||v_tablename||'
(id int,
name varchar2(20))';--為動態sql賦值
dbms_output.put_line(v_sql);--列印sql語句
execute immediate v_sql;--執行動態sql
end;
執行以後,就會生成以日期命名的表。
Ⅸ sql語句如何重命名表名和列名
一、更改資料庫名
sp_renamedb 更改資料庫的名稱。
語法: sp_renamedb [ @dbname = ] ' old_name ' , [ @newname = ] ' new_name '
參數: [ @dbname = ] ' old_name ' 是資料庫的當前名稱。old_name 為 sysname 類型,無默認值。
[ @newname = ] ' new_name ' 是資料庫的新名稱。 new_name 必須遵循標識符規則。new_name 為 sysname 類型,無默認值。
返回代碼值: 0 (成功)或非零數字(失敗)
許可權: 只有 sysadmin 和 dbcreator 固定伺服器角色的成員才能執行 sp_renamedb。
示例: 下例將資料庫 accounting 改名為 financial。
EXEC sp_renamedb ' accounting ' , ' financial '
二、更改表名或列名
sp_rename [ @objname = ] ' object_name ' ,
[ @newname = ] ' new_name '
[ , [ @objtype = ] ' object_type ' ]
A. 重命名表:
下例將表 customers 重命名為 custs。
EXEC sp_rename ' customers ' , ' custs '
B. 重命名列:
下例將表 customers 中的列 contact title 重命名為 title。
EXEC sp_rename ' customers.[contact title] ' , ' title ' , ' COLUMN '