sybase常用sql语句
常用sql語句
1. 查看數據庫的版本?
select @@version?
2. 查看數據庫所在機器操作系統參數?
exec master..xp_msver?
3. 查看數據庫啟動的參數?
sp_configure?
4. 查看數據庫啟動時間?
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1?
查看數據庫服務器名和實例名?
print 'Server Name...............:' + convert(varchar(30),@@SERVERNAME)?
print 'Instance..................:' + convert(varchar(30),@@SERVICENAME)?
5. 查看所有數據庫名稱及大小?
sp_helpdb?
重命名數據庫用的SQL?
sp_renamedb 'old_dbname', 'new_dbname'?
6. 查看所有數據庫用戶登錄信息?
sp_helplogins?
查看所有數據庫用戶所屬的角色信息?
sp_helpsrvrolemember?
修復遷移服務器時孤立用戶時,可以用的fix_orphan_user腳本或者LoneUser過程?
更改某個數據對象的用戶屬主?
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'?
注意:更改對象名的任一部分都可能破壞腳本和存儲過程。?
把一臺服務器上的數據庫用戶登錄信息備份出來可以用add_login_to_aserver腳本?
查看某數據庫下,對象級用戶權限?
sp_helprotect?
7. 查看鏈接服務器?
sp_helplinkedsrvlogin?
查看遠端數據庫用戶登錄信息?
sp_helpremotelogin?
8.查看某數據庫下某個數據對象的大小?
sp_spaceused @objname?
還可以用sp_toptables過程看最大的N(默認為50)個表?
查看某數據庫下某個數據對象的索引信息?
sp_helpindex @objname?
還可以用SP_NChelpindex過程查看更詳細的索引情況?
SP_NChelpindex @objname?
clustered索引是把記錄按物理順序排列的,索引占的空間比較少。?
對鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數都用默認值。?
查看某數據庫下某個數據對象的的約束信息?
sp_helpconstraint @objname?
9.查看數據庫里所有的存儲過程和函數?
use @database_name?
sp_stored_procedures?
查看存儲過程和函數的源代碼?
sp_helptext '@procedure_name'?
查看包含某個字符串@str的數據對象名稱?
select distinct object_name(id) from syscomments where text like '%@str%'?
創建加密的存儲過程或函數在AS前面加WITH ENCRYPTION參數?
解密加密過的存儲過程和函數可以用sp_decrypt過程?
10.查看數據庫里用戶和進程的信息?
sp_who?
查看SQL Server數據庫里的活動用戶和進程的信息?
sp_who 'active'?
查看SQL Server數據庫里的鎖的情況?
sp_lock?
進程號1--50是SQL Server系統內部用的,進程號大于50的才是用戶的連接進程.?
spid是進程編號,dbid是數據庫編號,objid是數據對象編號?
查看進程正在執行的SQL語句?
dbcc inputbuffer ()?
推薦大家用經過改進后的sp_who3過程可以直接看到進程運行的SQL語句?
sp_who3?
檢查死鎖用sp_who_lock過程?
sp_who_lock?
11.查看和收縮數據庫日志文件的方法?
查看所有數據庫日志文件大小?
dbcc sqlperf(logspace)?
如果某些日志文件較大,收縮簡單恢復模式數據庫日志,收縮后@database_name_log的大小單位為M?
backup log @database_name with no_log?
dbcc shrinkfile (@database_name_log, 5)?
12.分析SQL Server SQL 語句的方法:?
set statistics time {on | off}?
set statistics io {on | off}?
圖形方式顯示查詢執行計劃?
在查詢分析器->查詢->顯示估計的評估計劃(D)-Ctrl-L 或者點擊工具欄里的圖形?
文本方式顯示查詢執行計劃?
set showplan_all {on | off}?
set showplan_text { on | off }?
set statistics profile { on | off }?
13.出現不一致錯誤時,NT事件查看器里出3624號錯誤,修復數據庫的方法?
先注釋掉應用程序里引用的出現不一致性錯誤的表,然后在備份或其它機器上先恢復然后做修復操作?
alter database [@error_database_name] set single_user?
修復出現不一致錯誤的表?
dbcc checktable('@error_table_name',repair_allow_data_loss)?
或者可惜選擇修復出現不一致錯誤的小型數據庫名?
dbcc checkdb('@error_database_name',repair_allow_data_loss)?
alter database [@error_database_name] set multi_user?
CHECKDB 有3個參數:?
repair_allow_data_loss 包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,以及刪除已損壞的文本對象,這些修復可能會導致一些數據丟失。?
修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。?
如果回滾修復,則數據庫仍會含有錯誤,應該從備份進行恢復。?
如果由于所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決于該修復的修復。?
修復完成后,請備份數據庫。?
repai*_**st 進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。?
這些修復可以很快完成,并且不會有丟失數據的危險。?
repair_rebuild 執行由 repai*_**st 完成的所有修復,包括需要較長時間的修復(如重建索引)。?
執行這些修復時不會有丟失數據的危險。?
添加、刪除、修改使用db.Execute(Sql)命令執行操作?
╔--------------------╗?
☆ 數據記錄篩選 ☆?
╚--------------------╝?
注意:單雙引號的用法可能有誤(沒有測式)?
Sql = "Select Distinct 字段名 From 數據表"?
Distinct函數,查詢數據庫存表內不重復的記錄?
Sql = "Select Count(*) From 數據表 where 字段名1>#18:0:0# and 字段名1< #19:00# "?
count函數,查詢數庫表內有多少條記錄,“字段名1”是指同一字段?
例:?
set rs=conn.execute("select count(id) as idnum from news")?
response.write rs("idnum")?
sql="select * from 數據表 where 字段名 between 值1 and 值2"?
Sql="select * from 數據表 where 字段名 between #2003-8-10# and #2003-8-12#"?
在日期類數值為2003-8-10 19:55:08 的字段里查找2003-8-10至2003-8-12的所有記錄,而不管是幾點幾分。?
select * from tb_name where datetime between #2003-8-10# and #2003-8-12#?
字段里面的數據格式為:2003-8-10 19:55:08,通過sql查出2003-8-10至2003-8-12的所有紀錄,而不管是幾點幾分。?
Sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]"?
Sql="select * from 數據表 where 字段名 like '%字段值%' order by 字段名 [desc]"?
模糊查詢?
Sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]"?
查找數據庫中前10記錄?
Sql="select top n * form 數據表 order by newid()"?
隨機取出數據庫中的若干條記錄的方法?
top n,n就是要取出的記錄數?
Sql="select * from 數據表 where 字段名 in ('值1','值2','值3')"?
╔--------------------╗?
☆ 添加數據記錄 ☆?
╚--------------------╝?
sql="insert into 數據表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"?
sql="insert into 數據表 valuess (值1,值2,值3 …)"?
不指定具體字段名表示將按照數據表中字段的順序,依次添加?
sql="insert into 目標數據表 select * from 源數據表"?
把源數據表的記錄添加到目標數據表?
╔--------------------╗?
☆ 更新數據記錄 ☆?
╚--------------------╝?
Sql="update 數據表 set 字段名=字段值 where 條件表達式"?
Sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"?
Sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n "?
沒有條件則更新整個數據表中的指定字段值?
╔--------------------╗?
☆ 刪除數據記錄 ☆?
╚--------------------╝?
Sql="delete from 數據表 where 條件表達式"?
Sql="delete from 數據表"?
沒有條件將刪除數據表中所有記錄)?
╔--------------------------╗?
☆ 數據記錄統計函數 ☆?
╚--------------------------╝?
AVG(字段名) 得出一個表格欄平均值?
COUNT(*|字段名) 對數據行數的統計或對某一欄有值的數據行數統計?
MAX(字段名) 取得一個表格欄最大的值?
MIN(字段名) 取得一個表格欄最小的值?
SUM(字段名) 把數據欄的值相加?
引用以上函數的方法:?
sql="select sum(字段名) as 別名 from 數據表 where 條件表達式"?
set rs=conn.excute(sql)?
用 rs("別名") 獲取統的計值,其它函數運用同上。?
╔-----------------------------╗?
☆ 數據表的建立和刪除 ☆?
╚-----------------------------╝?
CREATE TABLE 數據表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )?
例:CREATE TABLE tab01(name varchar(50),datetime default now())?
DROP TABLE 數據表名稱 (永久性刪除一個數據表)?
╔--------------------------╗?
☆ 記錄集對象的方法 ☆?
╚--------------------------╝?
rs.movenext 將記錄指針從當前的位置向下移一行?
rs.moveprevious 將記錄指針從當前的位置向上移一行?
rs.movefirst 將記錄指針移到數據表第一行?
rs.movelast 將記錄指針移到數據表最后一行?
rs.absoluteposition=N 將記錄指針移到數據表第N行?
rs.absolutepage=N 將記錄指針移到第N頁的第一行?
rs.pagesize=N 設置每頁為N條記錄?
rs.pagecount 根據 pagesize 的設置返回總頁數?
rs.recordcount 返回記錄總數?
rs.bof 返回記錄指針是否超出數據表首端,true表示是,false為否?
rs.eof 返回記錄指針是否超出數據表末端,true表示是,false為否?
rs.delete 刪除當前記錄,但記錄指針不會向下移動?
rs.addnew 添加記錄到數據表末端?
rs.update 更新數據表記錄
14.查詢數據庫死進程
select * from master..syslogshold
總結
以上是生活随笔為你收集整理的sybase常用sql语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java简单毕设_计算机毕业设计之自定义
- 下一篇: 网博士自助建站系统_自助建站:自助建站到