1. 查看數(shù)據(jù)庫的版本
成都創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團隊,在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)深耕10年,專業(yè)且經(jīng)驗豐富。10年網(wǎng)站優(yōu)化營銷經(jīng)驗,我們已為上千家中小企業(yè)提供了成都網(wǎng)站設計、網(wǎng)站制作解決方案,按需制作,設計滿意,售后服務無憂。所有客戶皆提供一年免費網(wǎng)站維護!
select @@version
2. 查看數(shù)據(jù)庫所在機器操作系統(tǒng)參數(shù)
exec master..xp_msver
3. 查看數(shù)據(jù)庫啟動的參數(shù)
sp_configure
4. 查看數(shù)據(jù)庫啟動時間
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看數(shù)據(jù)庫服務器名和實例名
print 'Server Name...............:' + convert(varchar(30),@@SERVERNAME)
print 'Instance..................:' + convert(varchar(30),@@SERVICENAME)
5. 查看所有數(shù)據(jù)庫名稱及大小
sp_helpdb
重命名數(shù)據(jù)庫用的SQL
sp_renamedb 'old_dbname', 'new_dbname'
6. 查看所有數(shù)據(jù)庫用戶登錄信息
sp_helplogins
查看所有數(shù)據(jù)庫用戶所屬的角色信息
sp_helpsrvrolemember
修復遷移服務器時孤立用戶時,可以用的fix_orphan_user腳本或者LoneUser過程
更改某個數(shù)據(jù)對象的用戶屬主
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
注意:更改對象名的任一部分都可能破壞腳本和存儲過程。
把一臺服務器上的數(shù)據(jù)庫用戶登錄信息備份出來可以用add_login_to_aserver腳本
查看某數(shù)據(jù)庫下,對象級用戶權限
sp_helprotect
7. 查看鏈接服務器
sp_helplinkedsrvlogin
查看遠端數(shù)據(jù)庫用戶登錄信息
sp_helpremotelogin
8.查看某數(shù)據(jù)庫下某個數(shù)據(jù)對象的大小
sp_spaceused @objname
還可以用sp_toptables過程看最大的N(默認為50)個表
查看某數(shù)據(jù)庫下某個數(shù)據(jù)對象的索引信息
sp_helpindex @objname
還可以用SP_NChelpindex過程查看更詳細的索引情況
SP_NChelpindex @objname
clustered索引是把記錄按物理順序排列的,索引占的空間比較少。
對鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數(shù)都用默認值。
查看某數(shù)據(jù)庫下某個數(shù)據(jù)對象的的約束信息
sp_helpconstraint @objname
9.查看數(shù)據(jù)庫里所有的存儲過程和函數(shù)
use @database_name
sp_stored_procedures
查看存儲過程和函數(shù)的源代碼
sp_helptext '@procedure_name'
查看包含某個字符串@str的數(shù)據(jù)對象名稱
select distinct object_name(id) from syscomments where text like '%@str%'
創(chuàng)建加密的存儲過程或函數(shù)在AS前面加WITH ENCRYPTION參數(shù)
解密加密過的存儲過程和函數(shù)可以用sp_decrypt過程
10.查看數(shù)據(jù)庫里用戶和進程的信息
sp_who
查看SQL Server數(shù)據(jù)庫里的活動用戶和進程的信息
sp_who 'active'
查看SQL Server數(shù)據(jù)庫里的鎖的情況
sp_lock
進程號1--50是SQL Server系統(tǒng)內部用的,進程號大于50的才是用戶的連接進程.
spid是進程編號,dbid是數(shù)據(jù)庫編號,objid是數(shù)據(jù)對象編號
查看進程正在執(zhí)行的SQL語句
dbcc inputbuffer ()
推薦大家用經(jīng)過改進后的sp_who3過程可以直接看到進程運行的SQL語句
sp_who3
檢查死鎖用sp_who_lock過程
sp_who_lock
11.查看和收縮數(shù)據(jù)庫日志文件的方法
查看所有數(shù)據(jù)庫日志文件大小
dbcc sqlperf(logspace)
如果某些日志文件較大,收縮簡單恢復模式數(shù)據(jù)庫日志,收縮后@database_name_log的大小單位為M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12.分析SQL Server SQL 語句的方法:
set statistics time
set statistics io
圖形方式顯示查詢執(zhí)行計劃
在查詢分析器-查詢-顯示估計的評估計劃(D)-Ctrl-L 或者點擊工具欄里的圖形
文本方式顯示查詢執(zhí)行計劃
set showplan_all
set showplan_text
set statistics profile
13.出現(xiàn)不一致錯誤時,NT事件查看器里出3624號錯誤,修復數(shù)據(jù)庫的方法
先注釋掉應用程序里引用的出現(xiàn)不一致性錯誤的表,然后在備份或其它機器上先恢復然后做修復操作
alter database [@error_database_name] set single_user
修復出現(xiàn)不一致錯誤的表
dbcc checktable('@error_table_name',repair_allow_data_loss)
或者可惜選擇修復出現(xiàn)不一致錯誤的小型數(shù)據(jù)庫名
dbcc checkdb('@error_database_name',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 有3個參數(shù):
repair_allow_data_loss 包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,以及刪除已損壞的文本對象,這些修復可能會導致一些數(shù)據(jù)丟失。
修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。
如果回滾修復,則數(shù)據(jù)庫仍會含有錯誤,應該從備份進行恢復。
如果由于所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決于該修復的修復。
修復完成后,請備份數(shù)據(jù)庫。
repai*_**st 進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。
這些修復可以很快完成,并且不會有丟失數(shù)據(jù)的危險。
repair_rebuild 執(zhí)行由 repai*_**st 完成的所有修復,包括需要較長時間的修復(如重建索引)。
執(zhí)行這些修復時不會有丟失數(shù)據(jù)的危險。
添加、刪除、修改使用db.Execute(Sql)命令執(zhí)行操作
╔--------------------╗
☆ 數(shù)據(jù)記錄篩選 ☆
╚--------------------╝
注意:單雙引號的用法可能有誤(沒有測式)
Sql = Select Distinct 字段名 From 數(shù)據(jù)表
Distinct函數(shù),查詢數(shù)據(jù)庫存表內不重復的記錄
Sql = Select Count(*) From 數(shù)據(jù)表 where 字段名1#18:0:0# and 字段名1 #19:00#
count函數(shù),查詢數(shù)庫表內有多少條記錄,“字段名1”是指同一字段
例:
set rs=conn.execute(select count(id) as idnum from news)
response.write rs(idnum)
sql=select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2
Sql=select * from 數(shù)據(jù)表 where 字段名 between #2003-8-10# and #2003-8-12#
在日期類數(shù)值為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#
字段里面的數(shù)據(jù)格式為:2003-8-10 19:55:08,通過sql查出2003-8-10至2003-8-12的所有紀錄,而不管是幾點幾分。
Sql=select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]
Sql=select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名 [desc]
模糊查詢
Sql=select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]
查找數(shù)據(jù)庫中前10記錄
Sql=select top n * form 數(shù)據(jù)表 order by newid()
隨機取出數(shù)據(jù)庫中的若干條記錄的方法
top n,n就是要取出的記錄數(shù)
Sql=select * from 數(shù)據(jù)表 where 字段名 in ('值1','值2','值3')
╔--------------------╗
☆ 添加數(shù)據(jù)記錄 ☆
╚--------------------╝
sql=insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)
sql=insert into 數(shù)據(jù)表 valuess (值1,值2,值3 …)
不指定具體字段名表示將按照數(shù)據(jù)表中字段的順序,依次添加
sql=insert into 目標數(shù)據(jù)表 select * from 源數(shù)據(jù)表
把源數(shù)據(jù)表的記錄添加到目標數(shù)據(jù)表
╔--------------------╗
☆ 更新數(shù)據(jù)記錄 ☆
╚--------------------╝
Sql=update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達式
Sql=update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式
Sql=update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n
沒有條件則更新整個數(shù)據(jù)表中的指定字段值
╔--------------------╗
☆ 刪除數(shù)據(jù)記錄 ☆
╚--------------------╝
Sql=delete from 數(shù)據(jù)表 where 條件表達式
Sql=delete from 數(shù)據(jù)表
沒有條件將刪除數(shù)據(jù)表中所有記錄)
╔--------------------------╗
☆ 數(shù)據(jù)記錄統(tǒng)計函數(shù) ☆
╚--------------------------╝
AVG(字段名) 得出一個表格欄平均值
COUNT(*|字段名) 對數(shù)據(jù)行數(shù)的統(tǒng)計或對某一欄有值的數(shù)據(jù)行數(shù)統(tǒng)計
MAX(字段名) 取得一個表格欄最大的值
MIN(字段名) 取得一個表格欄最小的值
SUM(字段名) 把數(shù)據(jù)欄的值相加
引用以上函數(shù)的方法:
sql=select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達式
set rs=conn.excute(sql)
用 rs(別名) 獲取統(tǒng)的計值,其它函數(shù)運用同上。
╔-----------------------------╗
☆ 數(shù)據(jù)表的建立和刪除 ☆
╚-----------------------------╝
CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 數(shù)據(jù)表名稱 (永久性刪除一個數(shù)據(jù)表)
╔--------------------------╗
☆ 記錄集對象的方法 ☆
╚--------------------------╝
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行
rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行
rs.absoluteposition=N 將記錄指針移到數(shù)據(jù)表第N行
rs.absolutepage=N 將記錄指針移到第N頁的第一行
rs.pagesize=N 設置每頁為N條記錄
rs.pagecount 根據(jù) pagesize 的設置返回總頁數(shù)
rs.recordcount 返回記錄總數(shù)
rs.bof 返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否
rs.eof 返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否
rs.delete 刪除當前記錄,但記錄指針不會向下移動
rs.addnew 添加記錄到數(shù)據(jù)表末端
rs.update 更新數(shù)據(jù)表記錄
用Oracle數(shù)據(jù)庫?。。。。。。。。。。。。?!
方法一:傳統(tǒng)方式,即指定開始時間和結束時間,用"between”或者"",""來建立條件,比如查詢2010年3月1日到2010年3月2日的數(shù)據(jù)條數(shù),則可以使用
復制代碼 代碼如下:
select count(*) from sometable where datetimecolumn='2010-03-01 00:00:00' and datetimecolumn'2010-03-02 00:00:00'
但是,這種方法由于時間不是整數(shù)型數(shù)據(jù),所以在比較的時候效率較低,所以如果數(shù)據(jù)量較大,可以將時間轉換為整數(shù)型的UNIX時間戳,這就是方法二。
比如說,當天時間:2008-09-10
用replace把"-"換成""
之后就可以用 時間字段 = 當天日期的替換結果了.
MySQL數(shù)據(jù)庫中year()函數(shù)是求某個特定日期中的年份,代碼如下:
select '2015-08-11' as date,year('2015-08-11') as year;
確定一個日期是一年中的第幾個季度,可以用QUARTER()函數(shù)實現(xiàn),代碼如下:
SELECT '2015-08-11' AS DATE,QUARTER('2015-08-11') AS QUARTER;
返回一個日期是一年中的月份,利用month()函數(shù)實現(xiàn),代碼如下:
SELECT '2015-08-11' AS DATE,MONTH('2015-08-11') AS MONTH;
獲取一個確定日期是一個月份中的多少號,可以用day()函數(shù)求得,具體實現(xiàn)代碼如下:
SELECT '2015-08-11' AS DATE,DAY('2015-08-11') AS DAY;
有時日期中帶有時間,而如何獲取小時數(shù),這可以利用自帶的函數(shù)hour()實現(xiàn),代碼如下:
SELECT '2015-08-11 12:20:45' AS DATE,HOUR('2015-08-11 12:20:45') AS HOUR;
求取日期時間中的分鐘數(shù),可以利用MINUTE()函數(shù)實現(xiàn),代碼如下:
SELECT '2015-08-11 12:20:45' AS DATE,MINUTE('2015-08-11 12:20:45') AS MINUTE;
最后,獲取時間中的秒數(shù),利用SECOND()函數(shù)實現(xiàn),代碼如下:
SELECT '2015-08-11 12:20:45' AS DATE,SECOND('2015-08-11 12:20:45') AS SECOND;
給你個建議,將時間字段date分成 year,month,day,time 四個字段
這樣就非常容易實現(xiàn)你的要求。
// 2012-6-1 最小的數(shù)據(jù)
select min(data) from table where year='2012' and month='6' and day='1'
// 2012-6 每天最小的數(shù)據(jù)
select min(data) from table where year='2012' and month='6' group by day
網(wǎng)頁標題:mysql怎么篩選時間 sql如何篩選指定時間段的數(shù)據(jù)
網(wǎng)頁地址:http://muchs.cn/article24/hgisje.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站導航、網(wǎng)站維護、網(wǎng)站制作、商城網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)