1.一道SQL語句面試題,關(guān)于group by

創(chuàng)新互聯(lián)是一家專業(yè)提供蓮湖企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為蓮湖眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
表內(nèi)容:
2005-05-09 勝
2005-05-09 勝
2005-05-09 負(fù)
2005-05-09 負(fù)
2005-05-10 勝
2005-05-10 負(fù)
2005-05-10 負(fù)
如果要生成下列結(jié)果, 該如何寫sql語句?
勝 負(fù)
2005-05-09 2 2
2005-05-10 1 2
------------------------------------------
create table #tmp(rq varchar(10),shengfu nchar(1))
insert into #tmp values('2005-05-09','勝')
insert into #tmp values('2005-05-09','勝')
insert into #tmp values('2005-05-09','負(fù)')
insert into #tmp values('2005-05-09','負(fù)')
insert into #tmp values('2005-05-10','勝')
insert into #tmp values('2005-05-10','負(fù)')
insert into #tmp values('2005-05-10','負(fù)')
select * from #tmp
select rq, shengfu from #tmp group by rq,shengfu
select rq, shengfu from #tmp group by shengfu,rq
select rq, shengfu,sum(shengfu) from #tmp group by shengfu,rq
1)select rq, sum(case when shengfu='勝' then 1 else 0 end)'勝',sum(case when shengfu='負(fù)' then 1 else 0 end)'負(fù)' from #tmp group by rq
2) select N.rq,N.勝,M.負(fù) from (
select rq,勝=count(*) from #tmp where shengfu='勝'group by rq)N inner join
(select rq,負(fù)=count(*) from #tmp where shengfu='負(fù)'group by rq)M on N.rq=M.rq
3)select a.col001,a.a1 勝,b.b1 負(fù) from
(select col001,count(col001) a1 from temp1 where col002='勝' group by col001) a,
(select col001,count(col001) b1 from temp1 where col002='負(fù)' group by col001) b
where a.col001=b.col001
2.請教一個面試中遇到的SQL語句的查詢問題
表中有A B C三列,用SQL語句實(shí)現(xiàn):當(dāng)A列大于B列時選擇A列否則選擇B列,當(dāng)B列大于C列時選擇B列否則選擇C列。
------------------------------------------
select (case when ab then a else b end ),
(case when bc then b esle c end)
from table_name
3.面試題:一個日期判斷的sql語句?
請取出tb_send表中日期(SendTime字段)為當(dāng)天的所有記錄?(SendTime字段為datetime型,包含日期與時間)
------------------------------------------
select * from tb where datediff(dd,SendTime,getdate())=0
4.有一張表,里面有3個字段:語文,數(shù)學(xué),英語。其中有3條記錄分別表示語文70分,數(shù)學(xué)80分,英語58分,請用一條sql語句查詢出這三條記錄并按以下條件顯示出來(并寫出您的思路):
大于或等于80表示優(yōu)秀,大于或等于60表示及格,小于60分表示不及格。
顯示格式:
語文 數(shù)學(xué) 英語
及格 優(yōu)秀 不及格
------------------------------------------
select
(case when 語文=80 then '優(yōu)秀'
when 語文=60 then '及格'
else '不及格') as 語文,
(case when 數(shù)學(xué)=80 then '優(yōu)秀'
when 數(shù)學(xué)=60 then '及格'
else '不及格') as 數(shù)學(xué),
(case when 英語=80 then '優(yōu)秀'
when 英語=60 then '及格'
else '不及格') as 英語,
from table
5.在sqlserver2000中請用sql創(chuàng)建一張用戶臨時表和系統(tǒng)臨時表,里面包含兩個字段ID和IDValues,類型都是int型,并解釋下兩者的區(qū)別?
------------------------------------------
用戶臨時表:create table #xx(ID int, IDValues int)
系統(tǒng)臨時表:create table ##xx(ID int, IDValues int)
區(qū)別:
用戶臨時表只對創(chuàng)建這個表的用戶的Session可見,對其他進(jìn)程是不可見的.
當(dāng)創(chuàng)建它的進(jìn)程消失時這個臨時表就自動刪除.
全局臨時表對整個SQL Server實(shí)例都可見,但是所有訪問它的Session都消失的時候,它也自動刪除.
6.sqlserver2000是一種大型數(shù)據(jù)庫,他的存儲容量只受存儲介質(zhì)的限制,請問它是通過什么方式實(shí)現(xiàn)這種無限容量機(jī)制的。
------------------------------------------
它的所有數(shù)據(jù)都存儲在數(shù)據(jù)文件中(*.dbf),所以只要文件夠大,SQL Server的存儲容量是可以擴(kuò)大的.
SQL Server 2000 數(shù)據(jù)庫有三種類型的文件:
主要數(shù)據(jù)文件
主要數(shù)據(jù)文件是數(shù)據(jù)庫的起點(diǎn),指向數(shù)據(jù)庫中文件的其它部分。每個數(shù)據(jù)庫都有一個主要數(shù)據(jù)文件。主要數(shù)據(jù)文件的推薦文件擴(kuò)展名是 .mdf。
次要數(shù)據(jù)文件
次要數(shù)據(jù)文件包含除主要數(shù)據(jù)文件外的所有數(shù)據(jù)文件。有些數(shù)據(jù)庫可能沒有次要數(shù)據(jù)文件,而有些數(shù)據(jù)庫則有多個次要數(shù)據(jù)文件。次要數(shù)據(jù)文件的推薦文件擴(kuò)展名是 .ndf。
日志文件
日志文件包含恢復(fù)數(shù)據(jù)庫所需的所有日志信息。每個數(shù)據(jù)庫必須至少有一個日志文件,但可以不止一個。日志文件的推薦文件擴(kuò)展名是 .ldf。
7.請用一個sql語句得出結(jié)果
從table1,table2中取出如table3所列格式數(shù)據(jù),注意提供的數(shù)據(jù)及結(jié)果不準(zhǔn)確,只是作為一個格式向大家請教。
如使用存儲過程也可以。
table1
月份mon 部門dep 業(yè)績yj
-------------------------------
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部門dep 部門名稱dname
--------------------------------
01 國內(nèi)業(yè)務(wù)一部
02 國內(nèi)業(yè)務(wù)二部
03 國內(nèi)業(yè)務(wù)三部
04 國際業(yè)務(wù)部
table3 (result)
部門dep 一月份 二月份 三月份
--------------------------------------
01 10 null null
02 10 8 null
03 null 5 8
04 null null 9
------------------------------------------
1)
select a.部門名稱dname,b.業(yè)績yj as '一月份',c.業(yè)績yj as '二月份',d.業(yè)績yj as '三月份'
from table1 a,table2 b,table2 c,table2 d
where a.部門dep = b.部門dep and b.月份mon = '一月份' and
a.部門dep = c.部門dep and c.月份mon = '二月份' and
a.部門dep = d.部門dep and d.月份mon = '三月份' and
2)
select a.dep,
sum(case when b.mon=1 then b.yj else 0 end) as '一月份',
sum(case when b.mon=2 then b.yj else 0 end) as '二月份',
sum(case when b.mon=3 then b.yj else 0 end) as '三月份',
sum(case when b.mon=4 then b.yj else 0 end) as '四月份',
sum(case when b.mon=5 then b.yj else 0 end) as '五月份',
sum(case when b.mon=6 then b.yj else 0 end) as '六月份',
sum(case when b.mon=7 then b.yj else 0 end) as '七月份',
sum(case when b.mon=8 then b.yj else 0 end) as '八月份',
sum(case when b.mon=9 then b.yj else 0 end) as '九月份',
sum(case when b.mon=10 then b.yj else 0 end) as '十月份',
sum(case when b.mon=11 then b.yj else 0 end) as '十一月份',
sum(case when b.mon=12 then b.yj else 0 end) as '十二月份',
from table2 a left join table1 b on a.dep=b.dep
8.華為一道面試題
一個表中的Id有多個記錄,把所有這個id的記錄查出來,并顯示共有多少條記錄數(shù)。
------------------------------------------
select id, Count(*) from tb group by id having count(*)1
select * from(select count(ID) as count from table group by ID)T where T.count1
top 3,desc
declare
--,;
exec sp_rename
identity(1,1),not null
select , set
update,6
ORC
數(shù)據(jù)庫文件的初始大小
DECLARE CURSOR
原子性,隔離性
顯示事務(wù),自動提交事務(wù)
go
實(shí)體型,聯(lián)系
實(shí)體完整性,參照完整性
第1章 SQL Server2005安裝本章要點(diǎn) 版本 組件 安裝企業(yè)版 服務(wù)器上的服務(wù) 客戶機(jī)的管理工具 1.1 版本 SQL Server 2005數(shù)據(jù)庫產(chǎn)品按照用戶需求的不同劃分為不同的版本。表1-1 SQL Server 2005的6個版本版本名稱 功能特點(diǎn) 主要用途企業(yè)版 支持超大型企業(yè)進(jìn)行聯(lián)機(jī)事務(wù)處理、高度復(fù)雜的數(shù)據(jù)分析、數(shù)據(jù)倉庫系統(tǒng)和網(wǎng)站,全面的商業(yè)智能和分析能力、高可用性(比如故障轉(zhuǎn)移群集) 超大型企業(yè)商業(yè)應(yīng)用標(biāo)準(zhǔn)版 包括電子商務(wù)、數(shù)據(jù)倉庫和業(yè)務(wù)流解決方案所需要的基本功能,集成商業(yè)智能和高可用性 中小型企業(yè)商業(yè)應(yīng)用工作組版 包括SQLServer產(chǎn)品系列的核心數(shù)據(jù)庫功能,并且可以輕松地升級至Standard Edintion或Enterprise Edition。入門級數(shù)據(jù)庫,具有可靠、功能強(qiáng)大且易于管理的特點(diǎn) 適合在大小和用戶數(shù)量上沒有限制的小型企業(yè),可以用作前端Web服務(wù)器,也可以用于部門分支機(jī)構(gòu)的運(yùn)營開發(fā)版 開發(fā)人員可以再SQLServer2005 開發(fā)版上生成任何類型的應(yīng)用程序,包括SQLServer 2005版的所有功能,但有許多限制,只能用于開發(fā)和測試系統(tǒng),而不能用作生產(chǎn)服務(wù)器 獨(dú)立軟件供應(yīng)商、咨詢?nèi)藛T、系統(tǒng)集成商、解決方案提供商及創(chuàng)建和測試應(yīng)用程序的企業(yè)開發(fā)人員的選擇。可以根據(jù)生產(chǎn)需要升級至SQLServer2005企業(yè)版簡易版 一個免費(fèi)、易用且便于管理的數(shù)據(jù)庫,可以和Microsoft visual Studio 2005集成在一起,開發(fā)功能豐富、存儲安全、可快速部署的數(shù)據(jù)驅(qū)動應(yīng)用程序,可以免費(fèi)再分發(fā),還可以起到客戶端數(shù)據(jù)庫及基本服務(wù)器數(shù)據(jù)庫的作用 低端ISV、低端服務(wù)器用戶、創(chuàng)建Web應(yīng)用程序的非專業(yè)開發(fā)人員及創(chuàng)建客戶端應(yīng)用程序的編程者企業(yè)評估版 免費(fèi)獲得 初學(xué)者使用 1.2 組件所謂組件,就是指構(gòu)成SQL Server 2005角色的不同功能。SQL Server 2005為服務(wù)器和客戶機(jī)設(shè)計(jì)了不同的組件,這些組件協(xié)調(diào)工作,完成SQL Server 2005 基于網(wǎng)絡(luò)的數(shù)據(jù)庫管理和應(yīng)用。 1.2.1 服務(wù)器組件如果需要構(gòu)建SQL Server 2005 服務(wù)器,可以選擇安裝如表 1-2 所示組件。 表1-2 服務(wù)器組件組件名稱 組件說明 使用說明數(shù)據(jù)庫引擎 用于構(gòu)建SQL Server 2005數(shù)據(jù)庫服務(wù)器,實(shí)現(xiàn)數(shù)據(jù)的存儲、處理、保護(hù)和管理,以及全文搜索、復(fù)制等,提供對XML類型數(shù)據(jù)的支持 構(gòu)建數(shù)據(jù)庫服務(wù)器必選組件分析服務(wù) 用于創(chuàng)建和管理聯(lián)機(jī)分析處理OLAP系統(tǒng),數(shù)據(jù)挖掘 構(gòu)建OLAP系統(tǒng)必選組件報表服務(wù) 創(chuàng)建、管理、部署表格報表,開發(fā)報表應(yīng)用 可選服務(wù)器組件通知服務(wù) 用于開發(fā)和部署個性化的消息 可選服務(wù)器組件集成服務(wù) 圖形工具,可以編程,用于移動、復(fù)制和轉(zhuǎn)移數(shù)據(jù) 可選服務(wù)器組件 1.2.2 客戶機(jī)組件如果需要構(gòu)建SQL Server 2005客戶機(jī),可以選擇安裝如表1-3所示的組件。 表1-3客戶機(jī)組件組件名稱 組件說明 使用說明連接組件 客戶機(jī)和服務(wù)器間進(jìn)行通信的必需組件,包括各種接口的網(wǎng)絡(luò)庫 必選的組件 Management Studio 集成的管理控制臺,訪問、配置、管理和開發(fā)SQL Server 2005 建議選擇 SQL Server配置管理器 管理SQL Server服務(wù),配置服務(wù)器和客戶機(jī)的協(xié)議 建議選擇 SQL Server事件探查器 用于監(jiān)控服務(wù)器的性能 建議選擇數(shù)據(jù)庫引擎優(yōu)化向?qū)?可以對索引、分區(qū)和視圖的創(chuàng)建提供性能優(yōu)化的建議 建議選擇商業(yè)智能開發(fā) 簡化的Visual Studio 2005集成開發(fā)環(huán)境,提供開發(fā)分析服務(wù)、報表服務(wù)和集成服務(wù)的編程功能 可選聯(lián)機(jī)叢書和實(shí)例數(shù)據(jù)庫 SQL Server 2005聯(lián)機(jī)叢書和實(shí)例數(shù)據(jù)庫 建議選擇 1.3 安裝企業(yè)版 1.3.1 安裝服務(wù)器 SQL SERVER 2005 服務(wù)器安裝 圖1 圖2 圖3 圖4 圖5 圖6 圖7 圖8 圖9 圖10 圖11 圖12 圖13 圖14 圖15 圖16 圖17 圖18 圖19 SQL SERVER 2005客戶端安裝 1.3.1 安裝客戶機(jī) 1.4 服務(wù)器的后臺服務(wù) 1.4.1 MSQLSERVER MSQLSERVER 服務(wù)時SQL Server2005服務(wù)器核心數(shù)據(jù)庫引擎服務(wù)。 MSQLSERVER服務(wù)的主要功能包括: 數(shù)據(jù)庫管理 事務(wù)處理和查詢 維護(hù)數(shù)據(jù)庫的完整性和安全 默認(rèn)實(shí)例數(shù)據(jù)庫引擎后臺服務(wù)名稱:MSSQLSERVER。 命名實(shí)例的后臺數(shù)據(jù)庫引擎服務(wù)名稱:MSSQL$實(shí)例名。 該服務(wù)時SQL Server 2005服務(wù)器的核心服務(wù)。 1.4.2 SQLSERVERAGENT SQLSERVERAGENT 相當(dāng)于SQL Server 2005的系統(tǒng)自動管理、控制、調(diào)度中心。啟動代理服務(wù)能夠使系統(tǒng)安裝管理員的意圖自動運(yùn)行并管理數(shù)據(jù)庫系統(tǒng)。 默認(rèn)實(shí)例的后臺代理服務(wù)名稱:SQLServerAgent。 命名實(shí)例的后臺代理服務(wù)名稱:SQLAgent$實(shí)例名。 如果不需要自動執(zhí)行管理任務(wù),那么該服務(wù)可以不啟動。 1.4.3 MSSQLServerOLAPService 為商業(yè)智能應(yīng)用程序提供聯(lián)機(jī)分析處理(OLAP)和數(shù)據(jù)挖掘功能的服務(wù)。 默認(rèn)實(shí)例的后臺OLAP服務(wù)名稱:MSSQLServerOLAPService。 命名實(shí)例的后臺OLAP服務(wù)名稱:MSOLAP$實(shí)例名。 1.4.4 ReportServer 管理、執(zhí)行、呈現(xiàn)、計(jì)劃和傳遞報表的后臺服務(wù)。 默認(rèn)實(shí)例的后臺報表服務(wù)名稱:ReportServer。 命名實(shí)例的后臺報表服務(wù)名稱:ReportServer$實(shí)例名。 1.4.5 MSDTSServer 為集成服務(wù)包的存儲和執(zhí)行提供管理支持的后臺服務(wù)。 默認(rèn)實(shí)例和命名共用一個服務(wù),名稱:MSDTSServer。 1.4.6 SQLBrowser 向客戶機(jī)提供SQL Server 2005連接信息的名稱解析服務(wù)。多個SQL Server實(shí)例和集成服務(wù)實(shí)例共享此服務(wù)。 默認(rèn)實(shí)例或命名實(shí)例的后臺服務(wù)名稱:SQLBrowser。 1.4.7 MSFTESQL 對結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)的內(nèi)容和屬性快速創(chuàng)建全文索引,以允許對此數(shù)據(jù)的快速語言搜索,即SQL Server全文搜索的后臺服務(wù)。 默認(rèn)實(shí)例的后臺服務(wù)名稱:MSFTESQL。 命名實(shí)例的后臺服務(wù)名稱:MSFTESQL$實(shí)例名。 1.5 客戶機(jī)上的管理工具 1.5.1 Management Studio Management Studio 是SQL Server 2005中最重要的管理工具,是一個集成的管理平臺。 1.5.2 Visual Studio 2005 1.5.3 SQL Server 2005商業(yè)智能開發(fā)的相應(yīng)功能 分析服務(wù) Analysis Service,稱為分析服務(wù)。要理解分析服務(wù),需要先理解OLTP和OLAP這兩個概念。 OLTP譯為聯(lián)機(jī)事務(wù)處理,OLAP譯為聯(lián)機(jī)分析處理,這是網(wǎng)絡(luò)數(shù)據(jù)庫 兩種不同應(yīng)用。 報表服務(wù) Reporting Service,稱為報表服務(wù)。開發(fā)基于報表的應(yīng)用時很多數(shù)據(jù)庫應(yīng)用系統(tǒng)要求提供的功能。 集成服務(wù) Integration Service,稱為集成服務(wù)。是基于SQL Server 2000的DTS基礎(chǔ)上發(fā)展起來的新一代數(shù)據(jù)集成解決方案。使用商業(yè)智能開發(fā)工具可以開發(fā)出具有強(qiáng)大的數(shù)據(jù)集成功能的應(yīng)用系統(tǒng)。 1.5.4 SQL Server配置管理器 SQL Server Configuration Manager(SQL Server配置管理器)的功能: 服務(wù)管理器:管理后臺服務(wù)。 服務(wù)器網(wǎng)絡(luò)實(shí)用工具:配置服務(wù)器的網(wǎng)絡(luò)參數(shù)。 客戶端網(wǎng)絡(luò)實(shí)用工具:配置客戶機(jī)的網(wǎng)絡(luò)參數(shù)。 習(xí)題:(1) SQL Server 2005服務(wù)器安裝后的后臺服務(wù)各有什么功能?(2) 在Windows XP Professional上可以安裝什么版本的SQL Server 2005?(3) SQL Server 2005 的Management Studio 有什么主要功能?(4) SQL Server 2005 的配置管理器有什么主要功能?上機(jī)練習(xí):安裝服務(wù)器配置客戶端
----table 為你的表名,通過循環(huán)語句實(shí)現(xiàn)更新,@coun為更新次數(shù)
declare @cou int,@count int
set @cou=0
set @count=0
select top 0 * into #t1 from table
select @cou =COUNT (*) from table where [分?jǐn)?shù)]90
while @cou0
begin
set @count=@count+@cou
insert into #t1
select * from table where [分?jǐn)?shù)]90
update a
set a.[分?jǐn)?shù)]= case when [分?jǐn)?shù)] 60 then [分?jǐn)?shù)]+5
when [分?jǐn)?shù)] 70 then [分?jǐn)?shù)]+4
when [分?jǐn)?shù)] 80 then [分?jǐn)?shù)]+3
when [分?jǐn)?shù)] 90 then [分?jǐn)?shù)]+2
else [分?jǐn)?shù)]
end
from table a
inner join #t1 b on a.[姓名]=b.[姓名] and a.[課程]=b.[課程]
delete from #t1
select @cou =COUNT (*) from table where [分?jǐn)?shù)]90
end
print @count
網(wǎng)站標(biāo)題:sqlserver上機(jī)練習(xí)題,sqlserver上機(jī)試題答案
本文URL:http://chinadenli.net/article13/dsisods.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、網(wǎng)站制作、、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)