❶ 一個簡單sql語句的寫法
你這樣做會大量消耗伺服器資源,不如先寫個方法,返回布爾值判斷是否相同,然後再寫如資料庫:
public bool blInsert(string strName)
{
string strSql="select username from uname where username='"+strName+"'";//SQL語句
try{
DB db=new DB();//這個是我自己寫的資料庫連接類,改成你自己的
DataTable tb=db.openSql(strSql);
if(tb.count>0)//如果返回的行數大於0,也就是有數據
return ture;//方法返回真
}
catch
{}
return false;
}
在程序中你先調用這個方法再寫入數據,如:
if(blInsert(name.Text.ToString().Trim() ))//如果返回的是真
{
return;//退出運行
}
else
{
//這里寫你寫的insert方法
}
我是用C#編程的,上面的代碼是用C#寫的,如果你用的是其他語言,可以用相同的思路去寫程序
❷ 一句簡單的SQL語句怎樣寫
SQL伺服器目前最高的版本是2000,但是通常比較常見的是6.5和7.0(包括SP1)。
SQL伺服器如果配置不當,將對NT系統本身造成很大的危害,在一般情況下都可以直接獲得超級用戶的許可權。SQL 2000以前的版本在默認安裝時的密碼均為空,如果在安裝的時候沒有及時修改密碼,無疑是為NT系統打開了一道後門。
流光2001在運行的時候本身不需要SQL的支持,但是如果要對探測的結果加以利用,那麼就必須安裝SQL Server。(不要企圖在Win9.x/Me中安裝)
從流光2001開始,均不再為Win9.x/Me系列開發,如果需要正常使用必須安裝NT/4.0/2000。特別建議安裝Windows 2000 Server。由於流光有自動掛斷的功能,在安裝的時候請安裝遠程服務。
流光對網路資源佔用較大可達到90%(對於撥號),但是對系統資源很小(CPU不超過4%,MEM不超過10M)。從2001版開始對一個網段的掃描採用了新的方法,可以掃描到關於IIS的一些致命漏洞,所以掃描的時間會比前版長。只要下面的進度條沒有停止響應就說明在正常工作中,請不要強行中斷,否則會造成內存泄漏(Memory Leak)。
流光2001的SQL/IPC對國內IP依然保留,也就是說不能掃描國內的IP網段。但是由於IP數據比較早(根據追捕第一版的數據)所以對新增的IP段有遺漏現象(如:61/203/211等),在對這些網段掃描時請三思。
二、SQL Server的准備
安裝完SQL Server後,使用Client Network Utility設置客戶端連接方式為TCP/IP,這樣才能通過TCP/IP協議遠程連接資料庫。如圖:
三、掃描
以掃描一個網段為例,按Ctrl+R激活掃描設置對話框,設置掃描IP段,並且選擇掃描的類型為SQL,如圖:
如果選擇了[常用密碼掃描],整個掃描的速度會變慢,但是成功率會提高。
按下確定後即可對著一個網段進行掃描,這一個時間可能會有3-4分鍾,只要下面的進度條在走,就說明沒有出錯,請耐心等待。掃描的結果如下:
掃描到14台SQL Server,成功得到11個SA。
四、得到SA以後
SA的許可權相當於系統的超級用戶許可權,得到SA之後,有80%的機會得到進一步得到Admnistrators的許可權。
點擊[工具]->SQL遠程命令(或者直接用Ctrl+Q),填入主機、用戶、密碼等信息。
啟動SQL Server中的Query Analyzer工具,填入主機名稱,以及用戶名、密碼。(如果在密碼列表中雙擊選中的項目,可以直接出現命令行界面,而不必手工輸入)
按下[連接],出現遠程命令行的界面:
這樣就可以通過這個工具,就可以查看文件,主機添加/刪除用戶(語法參見IPC部分的說明)。
如:加入一個用戶GoodHacker,密碼為123.
net user GoodHacker 123 /add
將GoodHacker加入Administrator組
net localgroup administrators GoodHacker /add
輸入quit退出此工具。
此方法的成功率為80%,並不是所有的主機都有效。
當然得到資料庫的密碼之後就可以對數據進行查詢、修改、刪除等工作,這涉及到SQL的知識,在這里不作討論。如果有興趣可以查閱有關的資料。
五、其他
在[流光2001]對SQL/IPC/IIS作掃描的時候,會同時掃描IIS的一些典型弱點,並提供一些相關的工具。如下圖:
最左邊的不同顏色的圖標代表不同的類型。
黑色:遠程執行命令
黃色:直接下載對方SAM文件
綠色:將對方SAM文件上傳到一個指定的FTP伺服器
藍色:表示該主機上安裝了FrontPage擴展
紅色:該主機安裝了FrontPage擴展,並且沒有許可權設置。
下面分別對這幾種情況加以說明。
遠程執行命令
選中此類型的主機(即黑色),工具菜單中選擇NT遠程命令(或者直接雙擊該主機)。
在一般情況下不用改變此設置,如果出現了錯誤可以試試選中[允許IIS檢測CMD]選項。按下確定後出現控制界面:
內置的命令:
Local File:<File Name> 從本地的一個文本文件中讀出命令,並且在遠程主機上面逐一執行。相當於執行批處理,只不過這個批處理文件是在本地。
Local Cls 清除屏幕
Local Open 用瀏覽器打開當前的主機
Exit 關閉此工具
上/下鍵重復前一條/後一條命令
輸入命令後回車即可,例如:
直接下載對方SAM文件
選中此類型的主機(即黃色),雙擊即可。如圖:
選擇本的保存的文件名,按[開始]即可下載。
將對方SAM文件上傳到一個指定的FTP伺服器
在使用此項功能的時候,您必須具有一個FTP帳號,並且有寫的許可權(例如申請一個免費的主頁空間)。
選中此類型的主機(即綠色),雙擊即可。如圖:
正確填寫以上各項之後就可以按[開始],進行傳送。
傳送成功後就可以下載到本地了。
FrontPage擴展
如果是藍色圖標,僅僅表明對方主機安裝了FrontPage擴展。
如果是紅色圖標,說明對方安裝了FrontPage擴展,並且沒有設置許可權,也就是說任何人都可以通過FrontPage修改其web頁面
❸ 簡單的SQL語言怎麼寫
1.select * from tablename;
2.selct 選修課程 from tablename;
3.select 姓名 from tablename where 年齡<21;
4.select 年齡 from tablename where 姓名 like "張%";
5.select * from tablename order by 年齡;
❹ SQL簡單語句寫法
1、對於第一種重復,比較容易解決,使用
select distinct * from tableName
就可以得到無重復記錄的結果集。
如果該表需要刪除重復的記錄,可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
2、這類重復問題通常要求保留重復記錄中的第一條記錄,*作方法如下
假設有重復的欄位為Name,Address,要求得到這兩個欄位唯一的結果集
select identity(int,1,1) as autoID, * into #Tmp from
tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by
Name,autoID
select * from #Tmp where autoID in(select autoID from
#tmp2)
最後一個select即得到了Name,Address不重復的結果集
更改資料庫中表的所屬用戶的兩個方法
大家可能會經常碰到一個資料庫備份還原到另外一台機器結果導致所有的表都不能打開了,原因是建表的時候採用了當時的資料庫用戶……
❺ 創建資料庫的sql語句怎麼寫
自己定義的文件路徑(說明是要找f盤下的一個叫職員管理.mdf的文件):
filename='f=\program
files\microsoft
sql
server\mssql\data\職員管理,mdf',
//其中"f="
應該為"f:"
,"職員管理,mdf"
應該為
"職員管理.mdf"
不明白可以再Hi我
❻ 求寫一條簡單的SQL語句
--split函數,其作用是將字元串拆分成表CREATE FUNCTION [fn_split](@SourceSql varchar(8000), @StrSeprate varchar(10))RETURNS @temp table( [n] int NULL, [a] varchar(100) NULL)ASBEGIN declare @i int,@n int; set @n=0; set @SourceSql=rtrim(ltrim(@SourceSql)); set @i=charindex(@StrSeprate,@SourceSql); while (@i>=1) begin set @n=@n+1; insert @temp([n],[a]) values(@n,left(@SourceSql,@i-1)); set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i); set @i=charindex(@StrSeprate,@SourceSql); end if (@SourceSql<>'') begin set @n=@n+1; insert @temp([n],[a]) values(@n,@SourceSql); end returnENDGO--函數的使用:select * from fn_split('AA,BB,CC,DD',',')結果如下:
❼ 請問這個SQL語句要怎麼寫,要求盡量簡潔
select id,name,modify_time
from (
select id,name,modify_time,
row_number() over(partition by name order by modify_time desc) as rn
from table_name
) t
where rn<=1
❽ 一個簡單SQL,該怎麼寫,高手幫我
select id,max(fenshu) from 表 where id in (1,2,3) group by id
如果不加where id in (1,2,3)就是查詢全部的id中每個id的最高分數
❾ SQL 簡單語句求寫
首先exist表示後面跟著的子句查詢有值則符合條件,反正則查不出來數據,然後說一下你現在的sql怎麼改,我建議你分別針對a表寫兩個子查詢,各自帶日期查詢,然後針對兩個子查詢起別名做關聯,建議用join不加left,最後where裡面直接判斷第一個臨時表中標志b不等於第二個即可,不需要寫固定值。
❿ sql,一個簡單的sql如何寫啊高手~~~
update a
set a.銀行總金額=c.銀行金額
from a
join (select id,SUM(銀行金額) as 銀行金額 from b group by id)c
on a.id=c.id