sql語句大全
sp_helpdb ----------查本服務器中所有數據庫 可跟庫名 例:sp_helpdb 庫名 ------------------------------------------------------------- sp_databases -------------查看本服務器中可用的數據庫 -------------------------------------------------------------------- sp_helpfile -------------------查看當前工作著的數據庫 ----------------------------------------------------------- sp_helpfilegroup ---------------查看當前工作著的組的信息。
可加參數,跟組名 例:sp_helpdb 庫名 ---------------------------------------------------------------- sp_renamedb -----------改數據庫名 例:sp_renamedb 舊庫名,新庫名 ---------------------------------------------------------------- select groupname from sysfilegroups where status=24 ---------查看文件組 =8是查只讀文件組 =16是查默認文件組 =24是查即只讀又默認 --------------------------------------------------------------------------- sp_dboption ----------修改數據庫選項值 例:sp_dboption 庫名 選項 值 值決定真假 一般用:true/faule 或off/on表示 選項一般常用為:use only(數據庫擁有者)single user(單一用戶)read only(只讀) -------------------------------------------------------------------------- dbcc shrinkdatabase ---------收縮數據庫 例:dbcc shrinkdatabase (庫名,10) 收縮庫,剩余空間保留10%,后面如果不加notruncate,則釋放空間操作系統, 加truncateonly,歸還空間給操作系統,但忽略所給的百分比數值。 ---------------------------------------------------------------------- dbcc shrinkfile ---------收縮文件 用法與ddcc shrinkdatabase相同。
---------------------------------------------------------------------- alter database ---------------修改數據庫 用法:這是起始句,告訴要做的是修改數據庫,然后再接要做什么工作。每次只做一項工作 alter database 庫名 add file 文件名。
.to filegroup 文件組名 ----------------增加庫文件,格式與建庫時括號里指定大小時的格式一樣 add log file 文件名 -------------增加日志文件 remove file 文件名 ---------刪除庫內的文件 add filegroup 文件組名 -----------增加一個文件組 modify file 文件名 -------------修改文件屬性 modify filegroup 組名 ------------修改文件組屬性 --------------------------------------------------------------------------- drop database --------------刪除數據庫 例:drop database 庫名1,庫名2 ---------可同時刪除兩個庫 ------------------------------------------------------------------------ create table 表名 (列名 類型, 列名 類型) -------------------建立表 -------------------------------------------------------------------- select * from 表名 ---------查詢表結構 -------------------------------------------------------------------- select @@dbts ----------查詢最后一次操作 -------------------------------------------------------------------- insert into 表名 (列名,列名) values (變量,變量。..) ------------向表中插入數據 如省略列名,則必須把每列的變量填全,不可缺少。
可以省略 into -------------------------------------------------------------------- sp_addtype 自定義類型名 系統類型名 -------用戶自定義類型 -------------------------------------------------------------------- sp_droptype 自定義類型名 -----------刪除自定義類型 如有數據庫正在使用該自定義類型,則不能刪除 -------------------------------------------------------------------- alter table ---------修改表結構 用法: alter table 表名 alter column 列名 類型 ---------修改列的類型 drop column 列名 --------刪除列 add (column) 列名 --------增加列,實際用時不加 column ----------------------------------------------------------------- sp_help -------------查看數據庫中對象信息 用法: sp_help 表名 ---------------查表的信息 或 sp_help 庫名 --------------查庫信息 后面可以跟庫名或者表名,是查數據庫或者表的信息 ----------------------------------------------------------------- sp_spaceused --------查看對象占用的空間信息 用法: sp_spaceused ----------查當前庫占用空間信息 或 sp_spaceused 表名 ----------查指定表占用空間信息 后面可以加表名查看表占空間信息。如不加,則查看當前數據庫。
------------------------------------------------------------------ sp_depends ------------查看對象的相關性 用法: sp_depends 表名 -----------后面加表名 ------------------------------------------------------------------ sp_rename ---------------重新命名 用法: sp_rename 舊表名,新表名 ---------改表名 或 sp_rename '表名.舊列名','新列名' 'column' -------修改列名 -------------------------------------------------------------------- create index --------------創建索引 用法: create index 索引名 on 表名 (列名) ------創建索引 或: create unique clustered index 索引名 on 表名 (列名) ------創建簇集唯一索引 unique是建唯一索引 clustered是建簇集索引 ---非簇集索引用:nonclustered ---------------------------------------------------------------------- select top ---------查表中前幾行 用法: select top 3 * from 表名 -------查表中前三行 或: select top 10 percent * from 表名 -------顯示表中前10%數據 ------------加入percent是百分比的意思。只以大于的最小整數,無小數 ---------------------------------------------------------------------- select 列名,列名,列名 from 表名 -------顯示表中特定的列 ---------------------------------------------------------------------- 。
求一個SQL語句的聯系關系發芽
SQL codeWITH test (學員ID ,評委ID, 分數) AS (SELECT1, 1, 45UNIONALLSELECT1, 2 ,55UNIONALLSELECT1, 3, 34UNIONALLSELECT1 ,4 ,23) SELECT 學員ID,評委1=MAX(CASEWHEN 評委ID='1'THEN 分數 END ),評委2=MAX(CASEWHEN 評委ID='2'THEN 分數 END ), 評委3=MAX(CASEWHEN 評委ID='3'THEN 分數 END ),評委3=MAX(CASEWHEN 評委ID='3'THEN 分數 END ),合計=MAX(CASEWHEN 評委ID='1'THEN 分數 END )+MAX(CASEWHEN 評委ID='2'THEN 分數 END ) +MAX(CASEWHEN 評委ID='3'THEN 分數 END )+MAX(CASEWHEN 評委ID='4'THEN 分數 END ) FROM test GROUPBY 學員ID /* 學員ID 評委1 評委2 評委3 評委3 合計 ----------- ----------- ----------- ----------- ----------- ----------- 1 45 55 34 34 157 警告: 聚合或其他 SET 操作消弭了 Null 值。
(1 行受影響) */。
SQL語句:查詢出所有有聯系的數據(高手來)
現在都些什么人,不仔細回答就不要亂拷貝,有什么意思。
你的問題1個SQL應該實現不了,不過這樣就行了,也很簡單,你可以多些數據測測,如果有其他更好的方法可以告訴我
---------------------建立 Temporarily 臨時表----------------------------
DECLARE @Temporarily TABLE (Temporarilyid int, TemporarilyPId int)
---------------------申明臨時變量a,b,存儲你的第一個查詢條件,這個固定----------------------------
DECLARE @a int
set @a=(SELECT ID1 as a FROM test WHERE ID1 = 1)
DECLARE @b int
set @b=(SELECT ParentID as b FROM test WHERE ID1 = 1)
---------------------將第一條結果插入臨時表----------------------------
INSERT INTO @Temporarily VALUES (@a,@b)
---------------------循環執行,循環數為你記錄的條數,這個不固定----------------------------
DECLARE @i int
SET @i = 1
WHILE @i <= 10
BEGIN
---------------------臨時變量e,返回表的某條數據是否符合你的子父關聯要求----------------------------
DECLARE @e int
set @e=(SELECT distinct Temporarilyid as e FROM @Temporarily WHERE Temporarilyid IN(SELECT ParentID FROM test WHERE ID1 = @i) or TemporarilyPId in(SELECT ID1 FROM test WHERE ID1 = @i))
---------------------符合,執行插入操作----------------------------
IF @e>0
BEGIN
set @a=(SELECT ID1 as c FROM test WHERE ID1 = @i)
set @b=(SELECT ParentID as d FROM test WHERE ID1 = @i)
INSERT INTO @Temporarily VALUES (@a,@b)
END
SET @i = @i + 1
END
---------------------顯示結果集----------------------------
SELECT Temporarilyid AS a,TemporarilyPId AS b FROM @Temporarily
覺對可以滿足你說的要求,多少條數據都可以,具體說一條sql語句執行,我還沒想到可以的
其實只要循環,必定要建立臨時表,這也是目前最好的解決方法了吧。
常用的SQL語句語法有哪些
CONNECT(基本的連接), RESOURCE(程序開發), DBA(數據庫管理) 常用的數據對象權限有以下五個: ALL ON 數據對象名, SELECT ON 數據對象名, UPDATE ON 數據對象名, DELETE ON 數據對象名, INSERT ON 數據對象名, ALTER ON 數據對象名 GRANT CONNECT, RESOURCE TO 用戶名; GRANT SELECT ON 表名 TO 用戶名; GRANT SELECT, INSERT, DELETE ON表名 TO 用戶名1, 用戶名2; * 回收權限 REVOKE CONNECT, RESOURCE FROM 用戶名; REVOKE SELECT ON 表名 FROM 用戶名; REVOKE SELECT, INSERT, DELETE ON表名 FROM 用戶名1, 用戶名2; 以下是MS SQL SQL分類: DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE) DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT) DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,簡要介紹基礎語句: 1、說明:創建數據庫 CREATE DATABASE database-name 2、說明:刪除數據庫 drop database dbname 3、說明:備份sql server --- 創建 備份數據的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_*' --- 開始 備份 BACKUP DATABASE pubs TO testBack 4、說明:創建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根據已有的表創建新表: A:create table tab_new like tab_old (使用舊表創建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、說明:刪除新表drop table tabname 6、說明:增加一個列 Alter table tabname add column col type 注:列增加后將不能刪除。
DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。 7、說明:添加主鍵: Alter table tabname add primary key(col) 說明:刪除主鍵: Alter table tabname drop primary key(col) 8、說明:創建索引:create [unique] index idxname on tabname(col ….) 刪除索引:drop index idxname 注:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:create view viewname as select statement 刪除視圖:drop view viewname 10、說明:幾個簡單的基本的sql語句 選擇:select * from table1 where 范圍 插入:insert into table1(field1,field2) values(value1,value2) 刪除:delete from table1 where 范圍。
SQL語句練習,求全部語句
-------創庫create database EDUC-------創表create table student( id nchar(12), name nchar(4), sex char(2), birthday smalldatetime, part_id char(8)) 1.0 insert into student(id,name,sex,birthday,part_id)values('2016110011','張三' 。
。. )。
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 @objname9.查看數據庫里所有的存儲過程和函數 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 完成的所有修復,包括需要較長時間的修復(如重建索引)。 執行這些修復時不會有丟失數據的危險。
添加、刪除、修改使用*e(Sql)命令執行操作 ╔--------------------╗ ☆ 數據記錄篩選 ☆ ╚--------------------╝ 注意:單雙引號的用法可能有誤(沒有測式) Sql = "Select Distinct 字段名 From 數據表" Distinct函數,查詢數據庫存表內不重復的記錄 Sql = "Select Count(*) From 數據表 where 字段名1>#18:0:0# and 。
誰能給下SQL語句查詢大全,謝謝
日志清除 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 1 法二:select top 0 * into b from a拷貝表 (拷貝數據,源表名:a 目標表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b;跨數據庫之間表的拷貝 (具體數據使用絕對路徑) (Access可用) insert into b(a, b, c) select d,e,f from b in '具體數據庫' where 條件 例子:..from b in '"&*h("."&"\*" &"' where..子查詢 (表名1:a 表名2:b) select a,b,c from a where a IN (select d from b 或者: select a,b,c from a where a IN (1,2,3)顯示文章、提交人和最后回復時間 select *,*me,*e from table a,(select max(adddate) adddate from table where *=*) b外連接查詢 (表名1:a 表名2:b) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c在線視圖查詢 (表名1:a select * from (Select a,b,c FROM a) T where t.a > 1;between的用法 between限制查詢數據范圍時包括了邊界值,not between不包括 select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 數值1 and 數值2in 的使用方法 select * from table1 where a [not] in ('值1','值2','值4','值6')刪除主表中已經在副表中沒有的信息 兩張關聯表delete from table1 where not exists ( select * from table2 where *1=*1四表聯查問題 select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where 。
..日程安排提前五分鐘提醒 SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5一條sql 語句搞定數據庫分頁 select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字段前10條記錄 select top 10 * form table1 where 范圍選擇排名 選擇在每一組b值相同的數據中對應的a最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)派生結果表 包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重復行而派生出一個結果表 (select a from tableA except (select a from tableB) except (select a from tableC)隨機取出10條數據 select top 10 * from tablename order by newid()隨機選擇記錄 select newid()刪除重復記錄 Delete from tablename where id not in (select max(id) from tablename group by col1,col2,。)列出數據庫里所有的表名 select name from sysobjects where type='U'列出表里的所有的 select name from syscolumns where id=object_id('TableName')列示排列 列示type、vender、pcs字段,以type字段排列,case可以方便地實現多重選擇,類似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 顯示結果: type vender pcs 電腦 A 1 電腦 A 1 光盤 B 2 光盤 A 2 手機 B 3 手機 C 3初始化表table1 TRUNCATE TABLE table1選擇從10到15的記錄 select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc數據類型轉換 declare @numid int declare @id varchar(50) set @numid=2005 set @id=convert(varchar,@numid) 通過上述語句完成數據類型Int轉換成varchar,其他轉換類似,可參看convert函數[編輯本段]技巧1=1,1=2的使用 在SQL語句組合時用的較多 “where 1=1” 。