㈠ sql查詢,如何去除重復的記錄
首先,先說明一個問題。這樣的結果出現,說明系統設計是有問題的。
其次
刪除重復數據,你要提供你是什麼資料庫。
不同資料庫會有不同的解決方案。
關鍵字Distinct
去除重復,如下列SQL,去除Test相同的記錄;
1.
select
distinct
Test
from
Table
2.
如果是要刪除表中存在的重復記錄,那就邏輯處理,如下:
3.
select
Test
from
Table
group
by
Test
having
count(test)>1
4.
先查詢存在重復的數據,後面根據條件刪除
還有一個更簡單的方法可以嘗試一下:
select
aid,
count(distinct
uid)
from
表名
group
by
aid
這是sqlserver
的寫法。
如圖一在數據表中有兩個膀胱沖洗重復的記錄。
2
可以通過sql語句「select
*from
表名
where
編碼
in(select
編碼
from
表名
group
by
編碼
having
count(1)
>=
2)」來查詢出變種所有重復的記錄如圖二
3
通過sql語句"
delete
from
表名
where
編碼
in(select
編碼
from
表名
group
by
編碼
having
count(1)
>=
2)
and
編碼
not
in
(select
max(編碼)from
表名
group
by
編碼
having
count(1)
>=2)
"來刪除重復的記錄只保留編碼最大的記錄
㈡ sql刪除操作記錄
思路是這樣的,
1.首先將日誌禁用
2.將數據進行刪除
3.將日誌進行啟用
但估計要完全不被管理員發現就比較困難了,
呵呵,希望能有幫助,^_^
㈢ 如果快速清理SQL server表裡的記錄
看不到圖片:
快速清理表數據, 如果不用 DELETE 語句的話。
可以嘗試使用
TRUNCATE TABLE 表名;
的方式,來清空表的所有數據。
注意: TRUNCATE 語句是 清除所有數據, 該語句不判斷 WHERE 條件的。
假如你不是要全部刪除, 只是要刪除部分的話。
那就只能用 DELETE 語句了。
㈣ SQL資料庫刪除後怎麼清楚刪除痕跡
點擊「資料庫」-----》"新建",既可查看你的資料庫存放位置的完整路徑!
㈤ 如何清理sql server 已滿的資料庫日誌
SQLSERVER的資料庫日誌佔用很大的空間,下面提供三種方法用於清除無用的資料庫日誌文件
方法一:
1、打開查詢分析器,輸入命令
backup log database_name WITH NO_log
2、再打開企業管理器--右鍵要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至xxm,這里會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了。
方法二:
設置檢查點,自動截斷日誌
一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大
1、設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄-->選擇你的資料庫名稱(如用戶資料庫cwbase1)-->然後點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇「簡單」,然後按確定保存
2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的默認設置不用調整,直接點確定
3、收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據
方法三:通過SQL收縮日誌
把代碼復制到查詢分析器里,然後修改其中的3個參數(資料庫名,日誌文件名,和目標日誌文件的大小),運行即可
SET NOCOUNT on
DECLARE @logicalFileName sysname,
@MaxMinutes int,
@NewSize int
USE tablename -- 要操作的資料庫名
select @logicalFileName = 'tablename_log', -- 日誌文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 1 -- 你想設定的日誌文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
select @OriginalSize = size
from sysfiles
WHERE name = @logicalFileName
select 'Original Size of ' + db_name() + ' log is ' +
ConVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
ConVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'mb'
from sysfiles
WHERE name = @logicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter int,
@StartTime DATETIME,
@Trunclog VARCHAR(255)
select @StartTime = getdate(),
@Trunclog = 'backup log ' + db_name() + ' WITH TRUNCATE_onLY'
DBCC SHRINKFILE (@logicalFileName, @NewSize)
EXEC (@Trunclog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > datediff (mi, @StartTime, getdate()) -- time has not expired
AND @OriginalSize = (select size from sysfiles WHERE name = @logicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
select @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill log')
DELETE DummyTrans
select @Counter = @Counter + 1
END
EXEC (@Trunclog)
END
select 'Final Size of ' + db_name() + ' log is ' +
ConVERT(VARCHAR(30),size) + ' 8K pages or ' +
ConVERT(VARCHAR(30),(size*8/1024)) + 'mb'
from sysfiles
WHERE name = @logicalFileName
DROP TABLE DummyTrans
SET NOCOUNT off
方法四:刪除日誌文件。
此方法有一定的風險性,因為sql server的日誌文件不是即時寫入資料庫主文件的,如處理不當,會造成數據的損失。1、操作前請斷開所有資料庫連接。
2、分離資料庫
分離資料庫:企業管理器->伺服器->資料庫->cwbase1->右鍵->分離資料庫
分離後,cwbase1資料庫被刪除,但保留了數據文件和日誌文件
3、刪除log物理文件
刪除LOG物理文件,然後附加資料庫: 企業管理器->伺服器->資料庫->右鍵->附加資料庫
此法生成新的log,大小隻有500多k。
注意:建議使用第一種方法。操作前請確保所有操作員都已經推出系統,斷開資料庫的連接。
以上操作前,請務必做好數據備份!
1.sql server 2005 清除日誌語句
mp transaction 資料庫名稱 with no_log
backup log 資料庫名稱 with no_log
dbcc shrinkdatabase(資料庫名稱)
㈥ 數據清理利器 SQL數據清洗!
俗話說的好,工欲善其事,必先利其器。很多從事數據統計分析工作的朋友應該會深有感觸,苦於自己80%的時間在做數據清洗,而僅僅只有20%的時間在優化模型、分析統計結果等,今天我們就來介紹下SQL數據清洗。
因此,選擇高效且易用的數據清洗工具,其重要性就不言而喻,今天先簡單介紹下數據清洗中最重要的工具--SQL。
SQL,Structured Query Language, 結構化查詢語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統,堪稱數據清洗界的神器。
SQL具有數據定義、數據操縱和數據控制:
1、SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式有叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
2、SQL數據操縱功能:包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
3、SQL的數據控制功能:主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
SQL數據清洗方面特別突出,大家可以多多嘗試。
㈦ 如何清除SQL資料庫中的數據
單擊開始---->所有程序---->Microsoft SQL Server 2014,選擇SQL Server 2014 Management Studio選項,打開軟體。
(7)sql清理查詢痕跡擴展閱讀:
SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出「做什麼」的命令,「怎麼做」是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支持SQL。
SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為「基本表」(base table);存儲模式(內模式)稱為「存儲文件」(stored file);子模式(外模式)稱為「視圖」(view);元組稱為「行」(row);屬性稱為「列」(column)。名稱對稱如^00100009a^:
SQL包括了所有對資料庫的操作,主要是由4個部分組成:
數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。
數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
參考資料:IT專家網-微軟SQL
㈧ 如何清理sql server 2008日誌
教你如何清除SQL日誌
1.打開查詢分析器,輸入命令
DUMP TRANSACTION 資料庫名 WITH NO_LOG
2.再打開企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。
清除Log有兩種方法:
1.自動清除法
開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。此方法的優點是無須人工干預,由SQL Server自動執行,並且一般不會出現Log溢滿的情況;缺點是只清除Log而不做備份。
2.手動清除法
執行命令「mp transaction」來清除Log。以下兩條命令都可以清除日誌:
mp transaction with truncate_only
mp transaction with no_log
通常刪除事務日誌中不活躍的部分可使用「mp transaction with trancate_only」命令,這條命令寫進事務日誌時,還要做必要的並發性檢查。SYBASE提供「mp transaction with no_log」來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQL Server會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它作為「最後一招」。
以上兩種方法只是清除日誌,而不做日誌備份,若想備份日誌,應執行「mp transaction database_name to mpdevice」命令。
㈨ SQL查詢,如何去除重復的記錄
如果僅僅只是查詢出來去從,那麼就用distinct
select distinct 需要去重的列明(允許多列) from table
如果是需要在表中刪除,可以這樣處理
1、建立臨時表,將重復記錄查詢出來去重插入到臨時表
2、刪除實表中的重復記錄
3、將臨時表中的記錄插入到實表
處理完成
㈩ sql資料庫滿了怎麼清理
-- 清空日誌
--壓縮日誌及資料庫文件大小
/*--特別注意
請按步驟進行,未進行前面的步驟,請不要做後面的步驟
否則可能損壞你的資料庫.
--*/
select*fromsysfiles
--1.清空日誌
DUMPTRANSACTIONusernameWITHNO_LOG
--2.截斷事務日誌:
BACKUPLOGusernameWITHNO_LOG
--3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小
-- 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件
--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
--選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
-- 也可以用SQL語句來完成
--收縮資料庫
DBCCSHRINKDATABASE(username)
--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select*fromsysfiles
DBCCSHRINKFILE(2)
--4.為了最大化的縮小日誌文件(如果是sql7.0,這步只能在查詢分析器中進行)
-- a.分離資料庫:
-- 企業管理器--伺服器--資料庫--右鍵--分離資料庫
-- b.在我的電腦中刪除LOG文件
-- c.附加資料庫:
-- 企業管理器--伺服器--資料庫--右鍵--附加資料庫
-- 此法將生成新的LOG,大小隻有500多K
-- 或用代碼:
-- 下面的示例分離username,然後將username中的一個文件附加到當前伺服器。
execsp_dboptionusername,'singleuser',true
a.分離
EXECsp_detach_db@dbname='username'
b.刪除日誌文件
execmaster..xp_cmdshell'delD:\ProgramFiles\SQL\database\username_LOG.ldf'
c.再附加
EXECsp_attach_single_file_db@dbname='username',
@physname='D:\ProgramFiles\SQL\database\username_Data.MDF'
--5.為了以後能自動收縮,做如下設置:
-- 企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"
--SQL語句設置方式:
EXECsp_dboption'資料庫名','autoshrink','TRUE'
--6.如果想以後不讓它日誌增長得太大
-- 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌
--將文件增長限制為xM(x是你允許的最大數據文件大小)
--SQL語句的設置方式:
alterdatabase資料庫名modifyfile(name=邏輯文件名,maxsize=20)