sql執行
Ⅰ 如何執行sql語句
在你抄安裝完sql
2000
之後
開始->所有程序->Microsoft
Sql
Server->查詢分析器
輸入相應的資料庫襲名稱(如果忘了百
可以進入
開始->所有程序->Microsoft
Sql
Server->伺服器管理度查看)問
用戶名
密碼就可以進入
在這里可以進行sql語言的答編譯
和
執行
Ⅱ 如何執行sql腳本
sql腳本要在dbms里執行
比如oracle,你可以在sqlplus里,或pl/sql developer里執行
直接復制sql語句過去,回車就好了(注意帶分號)
如果你的sql是一個sql文件(*.sql)
可以使用start或@ 然後跟文件的路徑(c:/a.sql) 回車
Ⅲ SQL語句到底是怎麼執行的
下面先給出上面的SQL語句的執行順序,然後進行講解:
(8)select
(9)distinct
(11)top 1
(6) Table1.id,COUNT(Table1.name) as nameCount
(1)from Table1
(3)inner join Table2
(2)on Table1.id=Table2.id
(4)where Table1.id<4
(5)group by Table1.id
(7)having Table1.id<3
(10)order by Table1.id desc
紅色序號給出了執行的順序:
(1)from:對Table1和Table2執行笛卡爾積,也就是兩個表的行的各種組合,共5*5=25行,生成虛擬表VT1
(2)on:選擇VT1中的那些Table1.id=Table2.id的所有行,生成虛擬表VT2。
(3)inner join:這里是內部連接,直接就是VT2,如果是outer join,如left join、right join、full join,那麼還需要按照外部連接的規則,把VT1中沒有匹配的行添加到VT2,生成VT3.
(4)where:選出VT3中Table1.id<4的表格,給虛擬表VT4.
(5)group by:按照Table1.id進行分組。
(6)COUNT:執行聚合函數,選出對應Table1.id的行數,生成的結果給虛擬表VT5
(7)having:選擇VT5中Table1.id<3的所有結果,給虛擬表VT6
(8)select:選擇VT6中相應的列,給虛擬表VT7
(9)distinct:將VT7中重復的行去除,生成VT8
(10)order by:將VT8的結果按照Table1.id進行排序,這里沒有生成一個新的表VT9,而是生成游標VC9。
(11)top:從游標VC9的開始處選擇指定的行數,這里是1行,生成虛擬表VT10.
經過上面的過程,最終的SQL語句將VT10返回給用戶使用。
所以以後再寫SQL語句的時候,可以按照上面的順序寫SQL語句了,讀SQL語句也可以按照上面的順序去讀,做到心裡明白。
Ⅳ 怎麼執行SQL語句
擊連接我們的本地資料庫,如下圖所示
Ⅳ mysql 怎麼執行sql文件
右鍵以文本文件的形式打開,裡面是記錄著可以在mysql裡面執行的代碼。
要執行sql文件裡面的代碼,需要打開mysql資料庫去執行,新手推薦用軟體的形式執行此sql,軟體如navicat,sqlyog等。
打開軟體並且配置連接資料庫的信息後打開,然後創建一個資料庫,之後右鍵資料庫選中執行sql,接著選擇要執行的sql文件,按提示一步一步走下去即可。
老手推薦使用cmd指令來執行sql,因為速度比較快,首先也是連接上資料庫,創建並選擇好資料庫:
mysql>use 資料庫名;
mysql>set names utf8; --設置傳輸編碼,避免中文亂碼
mysql>source d:/xxx.sql; -- source 文件路徑
就這么簡單, 然後就等著sql執行完畢即可.
Ⅵ linux 怎麼執行sql
要看你有沒有設資料庫bin目錄的環境變數 如果設置了就直接可以用,如果沒設置你就:
1.切換工作目錄到mysql(或其他資料庫產品)下,用root用戶執行 sudo bin/mysqld_safe --user root &(這個符號表示從後台啟動)
2.然後再切換到bin目錄下工作 執行./mysql -u 用戶名 -p
3.終端會提示你輸入密碼
Ⅶ SQL怎麼運行啊
程序-> sql->企業管理器/查詢分析器
Ⅷ 如何直接執行SQL語句
1、ExecuteQuery方法
看命名,我們很容易聯想到ADO.NET里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告訴我們這個方法返回的是一個泛型集合,應該「所思非所得」。下面通過一個簡單方法,驗證我們的猜想(資料庫設計可以參考這一篇):
/// <summary>
/// 直接執行sql語句,獲取總人數
/// </summary>
/// <returns></returns>
publicint GetTotalCount()
{
string strSql = "SELECT COUNT(0) FROM Person(NOLOCK)";
var query = dataContext.ExecuteQuery<int>(strSql);
int result = query.First<int>();
Console.WriteLine();
Console.WriteLine("total count:{0}", result);
return result;
}
調試的時候,通過IntelliTrace跟蹤到:
毫無疑問,上面的圖片說明最初的想法是不正確的,」ADO.NET:執行Reader…」雲雲,讓我們更加堅信它實際執行的應該是ExecuteReader方法。當然最簡單的方法是直接查看它的方法說明:
// 摘要:
// 直接對資料庫執行 SQL 查詢並返回對象。
//
// 參數:
// query:
// 要執行的 SQL 查詢。
//
// parameters:
// 要傳遞給命令的參數數組。注意下面的行為:如果數組中的對象的數目小於命令字元串中已標識的最大數,
則會引發異常。如果數組包含未在命令字元串中引用的對象,則不會引發異常。如果某參數為
// null,則該參數會轉換為 DBNull.Value。
//
// 類型參數:
// TResult:
// 返回的集合中的元素的類型。
//
// 返回結果:
// 由查詢返回的對象的集合。
public IEnumerable<TResult> ExecuteQuery<TResult>(string query, paramsobject[] parameters);
ExecuteQuery方法還有一個非泛型方法:
//
// 摘要:
// 直接對資料庫執行 SQL 查詢。
//
// 參數:
// elementType:
//
要返回的 System.Collections.Generic.IEnumerable<T>
的類型。使查詢結果中的列與對象中的欄位或屬性相匹配的演算法如下所示:如果欄位或屬性映射到特定列名稱,則結果集中應包含該列名稱。如果未映射欄位或屬性,則結果集中應包含其名稱與該欄位或屬性相同的列。通過先查找區分大小寫的匹配來執行比較。如果未找到匹配項,則會繼續搜索不區分大小寫的匹配項。如果同時滿足下列所有條件,則該查詢應當返回(除延遲載入的對象外的)對象的所有跟蹤的欄位和屬性:T
// 是由 System.Data.Linq.DataContext 顯式跟蹤的實體。
System.Data.Linq.DataContext.ObjectTrackingEnabled
// 為 true。實體具有主鍵。否則會引發異常。
//
// query:
// 要執行的 SQL 查詢。
//
// parameters:
// 要傳遞給命令的參數數組。注意下面的行為:如果數組中的對象的數目小於命令字元串中已標識的最大數,
則會引發異常。如果數組包含未在命令字元串中引用的對象,則不會引發異常。如果某參數為
// null,則該參數會轉換為 DBNull.Value。
//
// 返回結果:
// 由查詢返回的對象的 System.Collections.Generic.IEnumerable<T> 集合。
public IEnumerable ExecuteQuery(Type elementType, string query, paramsobject[] parameters);
看它的參數需要多傳遞一個elementType,明顯不如泛型方法簡潔。
2、ExecuteCommand方法
同樣道理,這個方法立刻讓我們聯想到(世界沒有聯想,生活將會怎樣?),聯想到,等等,不知聯想到什麼。然後我們看一下方法使用說明:
//
// 摘要:
// 直接對資料庫執行 SQL 命令。
//
// 參數:
// command:
// 要執行的 SQL 命令。
//
// parameters:
// 要傳遞給命令的參數數組。注意下面的行為:如果數組中的對象的數目小於命令字元串中已標識的最大數,
則會引發異常。如果數組包含未在命令字元串中引用的對象,則不會引發異常。如果任一參數為
// null,則該參數會轉換為 DBNull.Value。
//
// 返回結果:
// 一個 int,表示所執行命令修改的行數。
publicint ExecuteCommand(string command, paramsobject[] parameters);
到這里,看它的返回類型為int,表示執行命令修改的行數,這次很容易想到ExecuteNonQuery方法。對不對呢?通過下面的代碼證明我們的設想:
/// <summary>
/// 直接執行sql語句 根據用戶Id更新體重
/// </summary>
/// <param name="id">用戶Id</param>
/// <param name="destWeight">更新後的體重</param>
/// <returns></returns>
publicint ModifyWeightById(int id, double destWeight)
{
string strSql = string.Format("UPDATE Person SET Weight={0} WHERE Id={1}", destWeight, id);
int result = dataContext.ExecuteCommand(strSql);
Console.WriteLine();
Console.WriteLine("affect num:{0}", result);
return result;
}
調試過程中,通過IntelliTrace可以很清楚地捕獲:「ADO.NET:執行NonQuery…」基本可以斷言我們的設想是正確的。
3、防止sql注入
1和2中,執行sql語句的兩個方法都有一個params 類型的參數,我們又會想到ADO.NET非常重要的sql語句的參數化防止sql注入問題。下面通過一個方法,看看linq2sql可不可以防止sql注入。
(1)、直接執行拼接的sql語句(有風險)
/// <summary>
/// 直接執行sql語句 根據用戶Id更新FirstName
/// </summary>
/// <param name="id">用戶Id</param>
/// <param name="destName">更新後的FirstName</param>
/// <returns></returns>
publicint ModifyNameById(int id, string destName)
{
string strSql = string.Format("UPDATE Person SET FirstName='{0}' WHERE Id={1}", destName, id);
//這么拼接有風險
int result = dataContext.ExecuteCommand(strSql);
Console.WriteLine();
Console.WriteLine("affect num:{0}", result);
return result;
}
然後,在客戶端這樣調用這個方法:
int result = ServiceFactory.CreatePersonService().ModifyNameById(10, "'Anders'");
//更新id為10的人的FirstName
Ⅸ 怎麼執行sql命令
執行sql命令步驟如下:
1、點擊頁面中的【SQL】。
以上就是執行sql命令的步驟。
Ⅹ 請問SQL語句怎麼執行
申明個 Command 對象,然後用 對象.Execute("sql語言") 方法執行。
回答補充:
1.conn.conn 是什麼?連接對象需要申明。
2.adCmdText 在那裡?你寫的是 sql="xxxx"。
3.Adodc3又是什麼?記錄集對象也需要申明。