當前位置:首頁 » 編程語言 » 常用sql語句面試題

常用sql語句面試題

發布時間: 2022-08-21 03:58:29

『壹』 sql語句問題 面試題

select * from Voucher where 發生額>(select 發生額 from Voucher where 科目代碼=101)

『貳』 資料庫SQL查詢語句面試題

5.1
select a.username,b.deptname from users a,dept b where a.dept_id=b.id;

5.2
update users set dept_id='9' where dept_id='2';

5.3
select a.deptname,b.count_id from dept a,(select dept_id,count(id) as count_id from users group by dept_id having count(id)>1) b where a.id=b.dept_id;

5.4
select a.deptname,b.count_man,c.count_woman from dept a,(select dept_id,count(sex) as count_man from users where sex='男' group by dept_id) b,(select dept_id,count(sex) as count_woman from users where sex='女' group by dept_id) c where a.id=b.dept_id and a.id=c.dept_id;

5.5
添加歷史記錄表
create table history(
id number(8), -- 記錄編號
dept_id varchar2(5), -- 部門ID
user_id varchar2(5), -- 用戶ID
change_date date -- 變動日期
);

『叄』 SQL資料庫面試題 急急急

a)select pname as '商品名',avg(qty) as 平均銷售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno,select p.Pno,p.pname,sum(s.qty)
from s left join p on s.pno=p.pno left join m on p.Mno=m.Mno
where m.city='上海市'
group by p.Pno,p.pname,p.city,p.color
b)、先刪除Sale表的外鍵PNO,再刪除gds表。

c)聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系
區別:1、視圖是已經編譯好的sql語句。而表不是
2、視圖沒有實際的物理記錄。而表有。
3、表是內容,視圖是窗口
4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改
5、表是內模式,視圖是外模式
6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。
8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。

『肆』 資料庫存儲過程有哪些,面試題

/*
系統存儲過程很多,有些常用,有些不常用
常用:
sp_attach_db附加資料庫到一個伺服器中
sp_columns返回在當前環境中列的信息
sp_databases列出當前系統中的資料庫
sp_configure顯示或修改當前伺服器的全局配置
sp_depends顯示資料庫對象的依賴信息
sp_executesql執行動態的T-SQL語句
sp_help報告有關資料庫對象的信息
sp_helpdb返回指定資料庫或全部資料庫的信息
sp_helptext顯示規則、默認值、存儲過程、觸發器、視圖等的未加密的文本定義信息
sp_indexes返回指定遠程表的索引信息
sp_lock返回有關鎖的信息
sp_password增加或者修改指定login的口令
sp_rename更改用戶創建的資料庫對象名稱
sp_renamedb更改資料庫名稱
sp_spaceused顯示資料庫的空間使用情況
sp_tables返回在當前環境中可以被查詢的對象的列表
sp_who提供當前用戶和進程的信息
不常用:
sp_addlinkedserver創建一個允許執行分布式查詢的鏈接伺服器
sp_addlinkedsrvlogin在本地伺服器和遠程伺服器之間創建login帳戶的映射關系
sp_addlogin創建一個新的login帳戶
sp_add_agent_parameter在代理文件中增加一個參數
sp_add_agent_profile為復制代理增加一個代理文件
sp_add_alert創建一個警報
sp_add_category在伺服器上,增加一種作業、警報或者操作員的特定分類
sp_add_data_file_recover_suspect_db當資料庫復原不能完成時,向文件組增加一個數據文件
sp_add_file_recover_suspect_db對於復原有問題的資料庫增加一個文件
sp_add_job增加一個sqlserveragent可以執行的作業
sp_add_jobschele為作業創建調度
sp_add_jobserver把指定的作業增加到指定伺服器上
sp_add_jobstep在作業中增加一步或一個操作
sp_add_log_file_recover_suspect_db當資料庫復原不能完成時,向文件組增加一個日誌文件
sp_add_notification為警報創建一個通知
sp_add_operator為警報或者作業創建一個操作員
sp_add_targetservergroup增加指定的伺服器組
sp_add_targetsvrgrp_member在指定的目標伺服器組增加一個目標伺服器
sp_addalias在資料庫中為login帳戶增加一個別名
sp_addapprole在資料庫中增加一個特殊的應用程序角色
sp_addarticle創建文章,並把該文章添加到出版物中
sp_adddistpublisher創建一個使用本地分布伺服器的出版伺服器
sp_adddistributiondb在分布伺服器上創建一個新的distribution資料庫
sp_adddistributor增加一個分布伺服器
sp_addextendedproc在系統中增加一個擴展存儲過程
sp_addgroup在當前資料庫中增加一個組
sp_addmergearticle為一個已有的合並出版物創建一個文章
sp_addmergefilter為了連接另外一個表,創建一個合並過濾器
sp_addmergepublication創建一個新的合並出版物
sp_addmergepullsubscription增加一個拉回類型的訂閱物
sp_addmergepullsubscription_agent在訂閱伺服器上,為合並拉回訂閱物創建一個代理
sp_addmergesubscription創建一個推出或者拉回類型的訂閱物
sp_addmessage在系統中增加一個新的錯誤消息
sp_addpublicaton創建一個快照復制或者事務復制出版物
sp_addpublicaton_snapshot創建一個快照代理
sp_addpullsusscription在當前訂閱伺服器的資料庫中增加一個拉回或者匿名訂閱物
sp_addpullsusscription_agent在訂閱伺服器的資料庫中增加一個新的代理
sp_addremotelogin在本地伺服器上增加一個遠程login帳戶,允許執行遠程存儲過程調用
sp_addrole在當前資料庫中增加一個角色
sp_addrolemember為當前資料庫中的一個角色增加一個安全性帳戶
sp_addserver添加一個遠程或者本地伺服器
sp_addsrvrolemember為固定的伺服器角色增加一個成員
sp_addsubscriber增加一個新的訂閱伺服器
sp_addsubscriber_schele為分布代理和合並代理增加一個調度
sp_addsubscription訂閱文章並且設置訂閱伺服器的狀態
sp_addsynctrigers在訂閱伺服器上創建一個立即修改觸發器
sp_addtabletocontents在合並跟蹤表中插入一個參考
sp_addtype創建一個用戶定義的數據類型
sp_admpdevice增加一個備份設備
sp_adser在當前資料庫中為一個新用戶增加一個安全性帳戶
sp_altermessage修改錯誤信息的狀態
sp_addly_job_to_targets把作業應用到一個或者多個目標伺服器
sp_approlepassword在當前資料庫中改變應用程序角色的口令
sp_aarticle_validation為指定的文章初始化確認請求
sp_aarticlecolumn指定在文章中使用的列
sp_aarticlefilter創建一個用於水平過濾數據的過濾器
sp_articleview當表被過濾時,為文章創建一個同步化對象
sp_attach_single_file_db在當前伺服器中,附加一個只有一個數據文件的資料庫
sp_aautostats對於一個指定的索引或統計,自動顯示updatestatistics的狀態
sp_bindefault把默認值綁定到列或用戶定義的數據類型上
sp_bindrule把規則綁定到列或用戶定義的數據類型上
sp_bindsession綁定或解除綁定與實例中的其它事務的連接
sp_browsereplcmds在分布資料庫中返回一種可讀格式的結果集
sp_catalogs返回指定連接伺服器中的系統目錄列表,在本地伺服器中等價於資料庫列表
sp_certify_removable確認在可移動介質上用於分布的資料庫是否正確配置
sp_change_agent_parameter修改復制代理配置使用的參數
sp_change_agent_profile修改復制代理配置使用的配置參數
sp_change_users_login修改login與當前資料庫中用戶之間的關系
sp_changearticle改變文章的屬性
sp_changedbowner改變當前資料庫的所有者
sp_changedistpublisher改變分布出版伺服器的屬性
sp_changedistributor_password改變分布伺服器的口令
sp_changedistributor_property改變分布伺服器的屬性
sp_changedistribtutiondb改變分布資料庫的屬性
sp_changegroup改變安全性帳戶所屬的角色
sp_changemergearticle改變合並文章的屬性
sp_changemergefilter改變一些合並過濾器的屬性
sp_changemergepublication改變合並出版物的屬性
sp_changemergepullsubscription改變合並拉回出版物的屬性
sp_changemergesubscription改變合並的推出或者拉回出版物的屬性
sp_changeobjectowner改變對象的所有者
sp_changepublication改變出版物的屬性
sp_changesubscriber改變用於訂閱伺服器的選項
sp_changesubscriber_schele改變用於分布式代理和事務代理的訂閱伺服器的調度
sp_changesubstatus改變訂閱伺服器的狀態
sp_column_privileges返回列的許可權信息
sp_column_privileges_ex返回在鏈接伺服器上指定表的列的許可權信息
sp_columns_ex返回在鏈接伺服器上列的信息
sp_create_removable創建一個可移動介質資料庫
sp_createstats創建單列的統計信息
sp_cursor用於請求定位更新
sp_cursor_list報告當前打開的伺服器游標屬性
sp_cursorclose關閉和釋放游標
sp_cursorfetch從游標中取出數據行
sp_cursoropen定義與游標和游標選項相關聯的SQL語句,然後填充游標
sp_cursoroption用於設置各種游標選項
sp_cycle_errorlog關閉錯誤日誌文件重新開始錯誤記錄
sp_datatype_info返回當前環境支持的數據類型信息
sp_dbfixedrolepermission顯示每一個固定資料庫角色的許可
sp_dboption顯示或修改資料庫選項
sp_dbremove刪除資料庫和與該資料庫相關的所有文件
sp_defaultdb設置登錄帳戶的默認資料庫
sp_defaultlanguage設置登錄帳戶的默認語言
sp_delete_alert刪除警報
sp_delete_backuphistory刪除備份和恢復的歷史信息
sp_delete_category刪除指定類型的作業、警報和操作員
sp_delete_job刪除一個作業
sp_delete_jobschele刪除作業的調度
sp_delete_jobserver刪除指定的目標伺服器
sp_delete_jobstep從作業中刪除指定的作業步驟
sp_delete_notfication刪除發送給某個操作員的所有通知
sp_delete_operator刪除操作員
sp_delete_targetserver從可以使用的目標伺服器列表中刪除指定的伺服器
sp_delete_targetservergroup刪除指定的目標伺服器組
sp_delete_targetsvrgrp_member從目標伺服器組中刪除一個目標伺服器
sp_deletemergeconflictrow刪除沖突表中的記錄行
sp_denylogin防止window用戶或群組連接到sqlserver
sp_describe_cursor報告伺服器游標的屬性
sp_describe_cursor_columns報告在伺服器游標的結果集中列的屬性
sp_describe_cursor_tables報告伺服器游標參考的基表信息
sp_detach_db分享伺服器中的資料庫
sp_drop_agentparameger刪除配置文件中的一個或者多個參數
sp_drop_profile刪除配置文件
sp_dropalias刪除一個帳戶的別名
sp_dropapprole刪除當前資料庫中的應用程序角色
sp_droparticle從出版物中刪除一篇文章
sp_dropdevice刪除資料庫或者備份設備
sp_dropdistpublisher刪除出版伺服器
sp_dropdistributiondb刪除分布資料庫
sp_dropdistributor刪除分布伺服器
sp_dropdropextendedproc刪除一個擴展存儲過程
sp_dropgroup從當前資料庫中刪除角色
sp_droplinkedsrvlogin刪除一個本地伺服器和連接伺服器的映射帳戶
sp_droplogin刪除一個登錄帳戶
sp_dropmergearticle從合並出版物中刪除一篇文章
sp_dropmergefilter刪除一個合並過濾器
sp_dropmergepublication刪除一個合並出版物和與其相關的快照復制
sp_dropmergepullsubscription刪除一個合並拉回訂購物
sp_dropmergesubscription刪除一個訂閱物
sp_dropmessage刪除一個消息
sp_droppublication刪除出版物和與其相關的文章
sp_droppullsubscription刪除當前訂閱伺服器資料庫中的訂閱物
sp_dropremotelogin刪除一個遠程登錄帳戶
sp_droprole從當前資料庫中刪除一個角色
sp_droprolemember從當前資料庫中的一個角色中刪除一個安全性帳戶
sp_dropserver刪除一個遠程或者連接伺服器列表中的伺服器
sp_dropsrvrolemember從一個固定的伺服器角色中刪除一個帳戶
sp_dropsubscriber刪除一個訂閱伺服器
sp_dropsubscription刪除訂閱物
sp_droptype刪除一種用戶定義的數據類型
sp_dropuser從當前資料庫中刪除一個用戶
sp_dropdropwebtask刪除以前版本定義的web任務
sp_dsninfo從一個與當前伺服器相關的分布伺服器返回ODBC和OLEDB數據源的信息
sp_mpparamcmd返回存儲在分布資料庫中的參數化命令的詳細信息
sp_enumcodepages返回一個字元集和代碼頁的列表
sp_enumcustomresovers返回所有可用的定製解決方案表表
sp_enumdsn返回所有可用的odbc和oledb數據源列表
sp_enumfullsubscribers返回訂閱伺服器的列表
sp_expired_subscription_cleanup周期性地檢查訂閱物的狀態是否失效
sp_fkeys返回當前環境的外鍵信息
sp_foreignkeys返回參照連接伺服器的表的主鍵的外鍵
sp_fulltext_catalog創建和刪除全文本目錄
sp_fulltext_column指定某一個列是否參加全文本索引
sp_fulltext_database從當前資料庫中初始化全文本索引
sp_fulltext_service改變MicrosoftSearchService屬性
sp_fulltext_table標記用於全文本索引的表
sp_generatefilters在外鍵表上創建一個過濾器
sp_get_distributor確定一個分布伺服器是否安裝在某個伺服器上
sp_getbindtoken創建一個綁定的連接文本
sp_getmergedeletype返回合並刪除的類型
sp_grant_publication_access在出版物的訪問列表中增加一個用戶
sp_grantdbaccess在當前資料庫中增加一個安全性帳戶
sp_grantlogin允許Windows用戶或群組連接到SQLServer
sp_help_agent_default檢索作為參數傳送的代理類型的默認配置的標識號
sp_help_agent_parameter返回代理配置的所有參數
sp_help_agent_profile返回指定代理的配置
sp_help_alert報告有關警報的信息
sp_help_category提供有關作業、警報、操作員的指定種類的信息
sp_help_downloadlist列出有關作業的信息
sp_help_fulltext_catalogs返回有關全文本索引表的信息
sp_help_fulltext_columns返回標記全文本索引的列信息
sp_help_fulltext_columns_cursor使用游標檢索標記為全文本的索引列
sp_help_fulltext_tables返回標記為全文本索引的表
sp_help_fulltext_tables_cursor使用游標返回標記為全文本索引的表
sp_help_job返回有關作業的信息
sp_help_jobhistory提供有關作業的歷史信息
sp_help_jobschele返回作業的調度信息
sp_help_jobserver返回給定作業的伺服器信息
sp_help_jobstep返回作業的步驟信息
sp_help_operator返回有關操作員的信息
sp_help_publication_access返回可以訪問指定出版物的帳戶列表
sp_help_targetserver列出全部目標伺服器
sp_help_targetservergroup列出指定伺服器組中的全部目標伺服器
sp_helparticle顯示有關文章的信息
sp_helpconstraint返回有關約束的類型、名稱等信息
sp_helpdbfixedrole返回固定的伺服器角色的列表
sp_helpdevice返回有關資料庫文件的信息
sp_helpdistpublisher返回充當分布伺服器的出版伺服器的屬性
sp_helpdistributiondb返回分布資料庫的屬性信息
sp_helpdistributor列出分布伺服器、分布資料庫、工作目錄等信息
sp_helpextendproc顯示當前定義的擴展存儲過程信息
sp_helpfile返回與當前資料庫相關的物理文件信息
sp_helpfilegroup返回與當前資料庫相關的文件組信息
sp_helpgroup返回當前資料庫中的角色信息
sp_helpindex返回有關表的索引信息
sp_helplanguage返回有關語言的信息
sp_helplinkedsrvlogin返回鏈接伺服器中映射的帳戶信息
sp_helplogins返回有關login和與其相關的資料庫用戶信息
sp_helpmergearticle返回有關合並文章的信息
sp_helpmergearticleconflicts返回有關沖突的出版物中的文章信息
sp_helpmergeconflictrows返回在指定沖突表中的行
sp_helpmergefilter返回有關合並過濾器的信息
sp_helpmergepublication返回有關合並出版物的信息
sp_helpmergepullsubscription返回有關拉回訂閱物的信息
sp_helpmergesubscription返回有關推出訂閱物的信息
sp_help_notification報告對於給定操作員的警報信息
sp_helppublication返回有關出版物的信息
sp_helprole返回當前資料庫中的角色信息
sp_helprolemember返回當前資料庫中角色成員的信息
sp_helprotect返回有關用戶許可的信息
sp_helpserver顯示特定遠程或者復制伺服器的信息
sp_helpsort顯示系統的排列順序和字元集的信息
sp_helpsrvrole顯示系統中的固定伺服器角色列表
sp_helpsrvrolemember顯示系統中的固定伺服器角色成員的信息
sp_helpsubscrberinfo顯示有關訂閱伺服器的信息
sp_helpsubscription顯示有特定出版物等有關的訂閱物信息
sp_helpsubscription_properties檢索安全性信息
sp_helptrigger顯示觸發器的類型
sp_helpuser顯示當前資料庫中的用戶、WindowsNT用戶和組、角色等信息
sp_indexoption為用戶定義的索引設置選項
sp_link_publication設置立即修改訂閱伺服器的同步化觸發器使用的配置和安全性信息
sp_linkedservers返回在本地伺服器上定義的鏈接伺服器的列表
sp_makewebtask創建一個執行html文檔的任務
sp_manage_jobs_by_login刪除或者重新指定屬於login的作業
sp_mergemmyupdate製作用於合並復制的修改備份
sp_mergesubscription_cleanup刪除元數據
sp_monitor顯示系統的統計信息
sp_msx_defect從多個伺服器操作中刪除當前伺服器
sp_msx_enlist增加當前伺服器到可用的目標伺服器列表中
sp_pkeys返回某個表的主鍵信息
sp_post_msx_operation插入一些目標伺服器可以執行的信息
sp_primarykeys返回主鍵列的信息
sp_processmail使用擴展存儲過程修改郵件信息
sp_procoption設置或者顯示過程選項
sp_publication_validation初始化文章校驗請求
sp_purge_jobhistory刪除作業的歷史記錄
sp_recompile使存儲過程和觸發器在下一次運行時重新編譯
sp_refreshsubscriptions在拉回出版物中增加訂閱物到文章中
sp_refreshview刷新指定視圖的元數據
sp_reinitmergepullsubscription標記一個合並拉回訂閱
sp_reiniteergesubscription標記一個合並訂閱
sp_reinitpullsubscription標記一個事務訂閱或者匿名訂閱
sp_reinitsubscription重新初始化訂閱
sp_remoteoption顯示或者修改遠程登錄帳戶的選項
sp_remove_job_from_targets從給定的目標伺服器中刪除指定的作業
sp_removedbreplication從資料庫中刪除所有的復制對象
sp_replcounters返回復制的統計信息
sp_repldone修改伺服器做的分布事務的統計信息
sp_replflush處理文章的高速緩沖存儲區
sp_replication_agent_checkup檢查每一個分布資料庫
sp_replicationdboption在當前資料庫中設置復制資料庫的選項
sp_replsetoriginator用於在事務復制中檢測循環登錄
sp_replshowcmds返回標記復制的事務命令
sp_repltrans返回在出版資料庫事務日誌中的所有事務的結果集
sp_resetstatus重新設置異常資料庫的形態
sp_resync_targetserver重新同步所有的多伺服器作業
sp_revoke_publication_access從出版資料庫的訪問列表中刪除login帳戶
sp_revokedbaccess從當前資料庫中刪除安全性帳戶
sp_revokelogin刪除系統的login帳戶
sp_script_synctran_commands生成一個可以用於立即修改訂閱物的腳本
*/

『伍』 SQL查詢面試題與答案

SQL查詢面試題與答案

SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。下面是我搜集的SQL查詢面試題與答案,歡迎大家閱讀。

SQL查詢面試題與答案一

1.一道SQL語句面試題,關於group by表內容:

2005-05-09 勝

2005-05-09 勝

2005-05-09 負

2005-05-09 負

2005-05-10 勝

2005-05-10 負

2005-05-10 負

如果要生成下列結果, 該如何寫sql語句?

勝 負

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','負')

insert into #tmp values('2005-05-09','負')

insert into #tmp values('2005-05-10','勝')

insert into #tmp values('2005-05-10','負')

insert into #tmp values('2005-05-10','負')

1)select rq, sum(case when shengfu='勝' then 1 else 0 end)'勝',sum(case when shengfu='負' then 1 else 0 end)'負' from #tmp group by rq

2) select N.rq,N.勝,M.負 from (

select rq,勝=count(*) from #tmp where shengfu='勝'group by rq)N inner join

(select rq,負=count(*) from #tmp where shengfu='負'group by rq)M on N.rq=M.rq

3)select a.col001,a.a1 勝,b.b1 負 from

(select col001,count(col001) a1 from temp1 where col002='勝' group by col001) a,

(select col001,count(col001) b1 from temp1 where col002='負' group by col001) b

where a.col001=b.col001

2.請教一個面試中遇到的SQL語句的查詢問題

表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列否則選擇B列,當B列大於C列時選擇B列否則選擇C列。

------------------------------------------

select (case when a>b then a else b end ),

(case when b>c then b esle c end)

from table_name

3.面試題:一個日期判斷的sql語句?

請取出tb_send表中日期(SendTime欄位)為當天的所有記錄?(SendTime欄位為datetime型,包含日期與時間)

------------------------------------------

select * from tb where datediff(dd,SendTime,getdate())=0

4.有一張表,裡面有3個欄位:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄並按以下條件顯示出來(並寫出您的思路):

大於或等於80表示優秀,大於或等於60表示及格,小於60分表示不及格。

顯示格式:

語文 數學 英語

及格 優秀 不及格

------------------------------------------

select

(case when 語文>=80 then '優秀'

when 語文>=60 then '及格'

else '不及格') as 語文,

(case when 數學>=80 then '優秀'

when 數學>=60 then '及格'

else '不及格') as 數學,

(case when 英語>=80 then '優秀'

when 英語>=60 then '及格'

else '不及格') as 英語,

from table

5.在sqlserver2000中請用sql創建一張用戶臨時表和系統臨時表,裡麵包含兩個欄位ID和IDValues,類型都是int型,並解釋下兩者的區別?

------------------------------------------

用戶臨時表:create table #xx(ID int, IDValues int)

系統臨時表:create table ##xx(ID int, IDValues int)

區別:

用戶臨時表只對創建這個表的用戶的Session可見,對其他進程是不可見的.

當創建它的進程消失時這個臨時表就自動刪除.

全局臨時表對整個SQL Server實例都可見,但是所有訪問它的Session都消失的時候,它也自動刪除.

6.sqlserver2000是一種大型資料庫,他的`存儲容量只受存儲介質的限制,請問它是通過什麼方式實現這種無限容量機制的。

------------------------------------------

它的所有數據都存儲在數據文件中(*.dbf),所以只要文件夠大,SQL Server的存儲容量是可以擴大的.

SQL Server 2000 資料庫有三種類型的文件:

主要數據文件

主要數據文件是資料庫的起點,指向資料庫中文件的其它部分。每個資料庫都有一個主要數據文件。主要數據文件的推薦文件擴展名是 .mdf。

次要數據文件

次要數據文件包含除主要數據文件外的所有數據文件。有些資料庫可能沒有次要數據文件,而有些資料庫則有多個次要數據文件。次要數據文件的推薦文件擴展名是 .ndf。

日誌文件

日誌文件包含恢復資料庫所需的所有日誌信息。每個資料庫必須至少有一個日誌文件,但可以不止一個。日誌文件的推薦文件擴展名是 .ldf。

7.請用一個sql語句得出結果

從table1,table2中取出如table3所列格式數據,注意提供的數據及結果不準確,只是作為一個格式向大家請教。

如使用存儲過程也可以。

table1

月份mon 部門dep 業績yj

-------------------------------

一月份 01 10

一月份 02 10

一月份 03 5

二月份 02 8

二月份 04 9

三月份 03 8

table2

部門dep 部門名稱dname

--------------------------------

01 國內業務一部

02 國內業務二部

03 國內業務三部

04 國際業務部

table3 (result)

部門dep 一月份 二月份 三月份

--------------------------------------

01 10 null null

02 10 8 null

03 null 5 8

04 null null 9

------------------------------------------

1)

select a.部門名稱dname,b.業績yj as '一月份',c.業績yj as '二月份',d.業績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的記錄查出來,並顯示共有多少條記錄數。

------------------------------------------

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.count>1

SQL查詢面試題與答案二

1、查詢不同老師所教不同課程平均分從高到低顯示

SELECT max(Z.T#) AS 教師ID,MAX(Z.Tname) AS 教師姓名,C.C# AS 課程ID,MAX(C.Cname) AS 課程名稱,AVG(Score) AS 平均成績

FROM SC AS T,Course AS C ,Teacher AS Z

where T.C#=C.C# and C.T#=Z.T#

GROUP BY C.C#

ORDER BY AVG(Score) DESC

2、查詢如下課程成績第 3 名到第 6 名的學生成績單:企業管理(001),馬克思(002),UML (003),資料庫(004)

[學生ID],[學生姓名],企業管理,馬克思,UML,資料庫,平均成績

SELECT DISTINCT top 3

SC.S# As 學生學號,

Student.Sname AS 學生姓名 ,

T1.score AS 企業管理,

T2.score AS 馬克思,

T3.score AS UML,

T4.score AS 資料庫,

ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 總分

FROM Student,SC LEFT JOIN SC AS T1

ON SC.S# = T1.S# AND T1.C# = '001'

LEFT JOIN SC AS T2

ON SC.S# = T2.S# AND T2.C# = '002'

LEFT JOIN SC AS T3

ON SC.S# = T3.S# AND T3.C# = '003'

LEFT JOIN SC AS T4

ON SC.S# = T4.S# AND T4.C# = '004'

WHERE student.S#=SC.S# and

ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)

NOT IN

(SELECT

DISTINCT

TOP 15 WITH TIES

ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)

FROM sc

LEFT JOIN sc AS T1

ON sc.S# = T1.S# AND T1.C# = 'k1'

LEFT JOIN sc AS T2

ON sc.S# = T2.S# AND T2.C# = 'k2'

LEFT JOIN sc AS T3

ON sc.S# = T3.S# AND T3.C# = 'k3'

LEFT JOIN sc AS T4

ON sc.S# = T4.S# AND T4.C# = 'k4'

ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);

3、統計列印各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ <60]

SELECT SC.C# as 課程ID, Cname as 課程名稱

,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85]

,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70]

,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60]

,SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]

FROM SC,Course

where SC.C#=Course.C#

GROUP BY SC.C#,Cname;

4、查詢學生平均成績及其名次

SELECT 1+(SELECT COUNT( distinct 平均成績)

FROM (SELECT S#,AVG(score) AS 平均成績

FROM SC

GROUP BY S#

) AS T1

WHERE 平均成績 > T2.平均成績) as 名次,

S# as 學生學號,平均成績

FROM (SELECT S#,AVG(score) 平均成績

FROM SC

GROUP BY S#

) AS T2

ORDER BY 平均成績 desc;

5、查詢各科成績前三名的記錄:(不考慮成績並列情況)

SELECT t1.S# as 學生ID,t1.C# as 課程ID,Score as 分數

FROM SC t1

WHERE score IN (SELECT TOP 3 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC

)

ORDER BY t1.C#;

6、查詢每門課程被選修的學生數

select c#,count(S#) from sc group by C#;

7、查詢出只選修了一門課程的全部學生的學號和姓名

select SC.S#,Student.Sname,count(C#) AS 選課數

from SC ,Student

where SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;

8、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名;

Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2

from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2

9、查詢所有課程成績小於60分的同學的學號、姓名;

select S#,Sname

from Student

where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);

10、查詢沒有學全所有課的同學的學號、姓名;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);

11、查詢至少有一門課與學號為“1001”的同學所學相同的同學的學號和姓名;

select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';

12、查詢至少學過學號為“001”同學所有一門課的其他同學學號和姓名;

select distinct SC.S#,Sname

from Student,SC

where Student.S#=SC.S# and C# in (select C# from SC where S#='001');

13、把“SC”表中“葉平”老師教的課的成績都更改為此課程的平均成績;

update SC set score=(select avg(SC_2.score)

from SC SC_2

where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='葉平');

14、查詢和“1002”號的同學學習的課程完全相同的其他同學學號和姓名;

select S# from SC where C# in (select C# from SC where S#='1002')

group by S# having count(*)=(select count(*) from SC where S#='1002');

15、刪除學習“葉平”老師課的SC表記錄;

Delect SC

from course ,Teacher

where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='葉平';

16、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號“003”課程的同學學號、2、

號課的平均成績;

Insert SC select S#,'002',(Select avg(score)

from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');

17、按平均成績從高到低顯示所有學生的“資料庫”、“企業管理”、“英語”三門的課程成績,按如下形式顯示: 學生ID,,資料庫,企業管理,英語,有效課程數,有效平均分

SELECT S# as 學生ID

,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 資料庫

,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企業管理

,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英語

,COUNT(*) AS 有效課程數, AVG(t.score) AS 平均成績

FROM SC AS t

GROUP BY S#

ORDER BY avg(t.score)

18、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分

SELECT L.C# As 課程ID,L.score AS 最高分,R.score AS 最低分

FROM SC L ,SC AS R

WHERE L.C# = R.C# and

L.score = (SELECT MAX(IL.score)

FROM SC AS IL,Student AS IM

WHERE L.C# = IL.C# and IM.S#=IL.S#

GROUP BY IL.C#)

AND

R.Score = (SELECT MIN(IR.score)

FROM SC AS IR

WHERE R.C# = IR.C#

GROUP BY IR.C#

);

19、按各科平均成績從低到高和及格率的百分數從高到低順序

SELECT t.C# AS 課程號,max(course.Cname)AS 課程名,isnull(AVG(score),0) AS 平均成績

,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分數

FROM SC T,Course

where t.C#=course.C#

GROUP BY t.C#

ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC

20、查詢如下課程平均成績和及格率的百分數(用"1行"顯示): 企業管理(001),馬克思(002),OO&UML (003),資料庫(004)

SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企業管理平均分

,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企業管理及格百分數

,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 馬克思平均分

,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 馬克思及格百分數

,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分

,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分數

,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 資料庫平均分

,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 資料庫及格百分數

FROM SC

;

『陸』 sql語句 面試題

A.創建表格CODE省略

註明:學生表PK stu_id 課程表pk cos_id 分數表PK enrollment_id FK stu_id,cos_id

B.插入數據code省略

C.Query

  1. select s.stu_id,stu_name,count(cos_id) from student s,enrollments e where s.stu_id = e.stu_id and e.grade>60 group by s.stu_id,stu_name;

  2. select e.stu_id,s.stu_name,c.cos_name from student s,enrollments e,course c

    where s.stu_id = e.stu_id

    and e.cos_id = c.cos_id

    and c.cos_name = 'CHINESE'

    and s.stu_name like 'W%';

  3. select stu_id,stu_name from (select e.stu_id,stu_name,cos_name from enrollments e,student s,course c

    where s.stu_id = e.stu_id

    and e.cos_id = c.cos_id

    and c.cos_name IN ('CHINESE','MUSIC'))

    group by stu_id,stu_name

    having count(cos_name) = 2

  4. select distinct e.cos_id,c.cos_name,count(e.stu_id) stu_count,count(e.stu_id)-NVL(A.FAIL,0) upscore,(count(e.stu_id)-NVL(A.FAIL,0))/count(e.stu_id) rate from

    (select cos_id,count(stu_id) fail from enrollments where grade<60 group by cos_id) a,enrollments e,course c

    where e.cos_id = a.cos_id(+)

    and e.cos_id = c.cos_id

    group by e.cos_id,NVL(a.fail,0),c.cos_name;

  5. update student

    set avg_grade =(select avg(grade) X from enrollments group by stu_id

    having student.stu_id = enrollments.stu_id);

  6. select stu_id,avg(grade) from

    (select stu_id,cos_id,grade,row_number() over(partition by stu_id order by grade ) X from enrollments)

    group by stu_id

    having count(*)<=2

    UNION

    select A.stu_id,avg(A.grade)from

    (select stu_id,cos_id,grade,row_number() over(partition by stu_id order by grade ) X from enrollments) A,

    (select stu_id,count(*) c from

    (select stu_id,cos_id,grade,row_number() over(partition by stu_id order by grade ) X from enrollments)

    group by stu_id) B

    where A.stu_id = B.stu_id

    and A.x>1 and x<B.c

    group by A.stu_id,b.c

_________________________________________________

環境:oracle 10g/TOAD 以上代碼均通過測試,如有問題,請聯系,謝謝

『柒』 這幾個SQL語句面試題該怎麼寫

第一題:

selecta.name
fromemployeealeftjoin
(selectt.dptid,avg(t.salary)avgsal
fromemployeet
groupbyt.dptid)bona.dptid=b.dptid
wherea.salary>b.avgsal

第二題

selectcount(a.name),a.dptid
fromemployeealeftjoin
(selectt.dptid,avg(t.salary)avgsal
fromemployeet
groupbyt.dptid)bona.dptid=b.dptid
wherea.salary>b.avgsal
groupbya.dptid

第三題:

selectavg(t.salary)
fromemployeet
wheret.salary>6000

『捌』 SQL語句面試題

SELECT*,
(SELECTCOUNT(*)FROM(SELECTCOUNT(*),b.sidFROMscbLEFTJOINcoursecONb.Cid=c.CidGROUPBYb.sid,c.tid)owWHEREow.sid=a.sid)as'
選課數量',
(SELECTsum(Score)FROMScdWHEREa.sid=d.sid)as'總成績'
FROMstudenta
;

SELECTd.sid,d.snamefromteachera
LEFTJOINcoursebona.tid=b.tid
LEFTJOINscconc.cid=b.cid
leftJOINstudentdONd.sid=c.sid
WHEREa.tname='葉萍';

SELECTsid,sname
FROMstudent
WHEREsidin(selecta.sid
FROMscAleftjoinscbona.sid=b.sid
WHEREa.cid=1andb.cid=2anda.score>b.score)

SELECTsc.Sid,sum(CASEWHENc.Cname='
數學'thensc.Scoreelse0end)數學,SUM(casewhenc.Cname='物理
'THENsc.ScoreELSE0END)物理,AVG(sc.Score)平均分
FROMsc
INNERJOINCourseconsc.Cid=c.Cid
WHEREc.Cnamein('數學','物理')
GROUPBYsc.Sid
ORDERBYAVG(sc.Score)DESC

insertintoSc(Sid,Cid,Score)values(003,3,85);

insertintoSc(Sid,Cid,Score)values(003,3,30);

首先這個不知道是你i寫錯了還是怎麼一個人化學成績有2個所以我在這里按照你這個上做的查詢所以有一個人是選了單個課程

熱點內容
二級程序編譯答案 發布:2024-05-03 18:41:35 瀏覽:653
領動自動精英版是哪個配置 發布:2024-05-03 18:37:30 瀏覽:150
java編譯器中cd什麼意思 發布:2024-05-03 18:36:00 瀏覽:389
傳奇伺服器如何刷錢 發布:2024-05-03 18:36:00 瀏覽:977
安卓版twitter怎麼注冊 發布:2024-05-03 18:28:05 瀏覽:893
Python邏輯優先順序 發布:2024-05-03 18:26:14 瀏覽:267
linux查看svn密碼 發布:2024-05-03 18:12:47 瀏覽:804
地鐵逃生怎麼進入游戲安卓 發布:2024-05-03 17:49:35 瀏覽:992
aws雲存儲 發布:2024-05-03 17:48:50 瀏覽:955
安卓微信王者號怎麼轉成蘋果 發布:2024-05-03 17:44:38 瀏覽:745