⑴ sql面試題
1.
select
s.title,
count(p.id)
from
書表
s
left
join
評論
p
on
s.id=p.書表中的id
group
by
s.title
(注意:左外連接的作用是將評價數為0的書顯示出來.count(p.id)和count(*)的區別是count(p.id)不計入p.id為null的行)
2.
select
top
1
s.title,
count(p.id)
from
書表
s
left
join
評論
p
on
s.id=p.書表中的id
group
by
s.title
order
by
2
desc
(以第2列倒序排序,取第1行)
⑵ 一個新手面試 Linux 運維工作至少需要知道哪些知識
忘記了在哪兒摘的,我一直保存著:
1、linux系統基礎,這個不用說了,是基礎中的基礎,連這個都不會就別幹了,參考書籍,可以看鳥哥linux基礎篇,至少要掌握這書60%內容,沒必須全部掌握,但基本命令總得會吧
2、網路服務,服務有很多種,每間公司都會用到不同的,但基礎的服務肯定要掌握,如FTP, DNS,SAMBA, 郵件, 這幾個大概學一下就行,LAMP和LNMP是必須要熟練,我所指的不是光光會搭建,而是要很熟悉裡面的相當配置才行,因為公司最關鍵的絕對是WEB伺服器,所以nginx和apache要熟悉,特別是nginx一定要很熟悉才行,至少有些公司還會用tomcat,這個也最好學一下。其實網路服務方面不用太擔心,一般公司的環境都已經搭建好,就算有新伺服器或讓你整改,公司會有相應的文檔讓你參照來弄,不會讓你亂來的,但至少相關的配置一定要學熟,而且肯定是編譯安裝多,那些模塊要熟悉一下他的作用,特別是PHP那些模塊。
這面2點只是基礎,也是必要條件,不能說是工具,下以才是真正的要掌握的工具。
3、shell腳本和另一個腳本語言,shell是運維人員必須具備的,不懂這個連入職都不行,至少也要寫出一些系統管理腳本,最簡單也得寫個監控CPU,內存比率的腳本吧,這是最最最基本了,別以為會寫那些猜數字和計算什麼數的,這些沒什麼作用,只作學習意義,寫系統腳本才是最有意義,而另一個腳本語言是可選的,一般是3P,即python, perl和php,php就不需要考慮了,除非你要做開發,我個人建議學python會比較好,難實現自動化運維,perl是文本處理很強大,反正這兩個學一個就行了。
4、sed和awk工具,必須要掌握,在掌握這兩個工具同時,還要掌握正則表達式,這個就痛苦了,正則是最難學的表達式,但結合到sed和awk中會很強大,在處理文本內容和過濾WEB內容時十分有用,不過在學shell的同時一般會經常結合用到的,所以學第3點就會順便學第4點。
5、文本處理命令,sort , tr , cut, paste, uniq, tee等,必學,也是結合第3點時一並學習的。
6、資料庫,首選mysql,別問我為什麼不學sqlserver和oracle,因為linux用得最多絕對是mysql,增刪改查必學,特別要學熟查,其它方面可能不太需要,因為運維人員使用最多還是查,哪些優化和開發語句不會讓你弄的。
7、防火牆,不學不行,防火牆也算是個難點,說難不難,說易不易,最重要弄懂規則,如果學過CCNA的朋友可能會比較好學,因為iptables也有NAT表,原理是一樣的,而FILTER表用得最多,反正不學就肯定不合格。
8、監控工具,十分十分重要,我個人建議,最好學這3個,cacti,nagios,zibbix,企業用得最多應該是nagios和 zibbix,反正都學吧,但nagios會有點難,因為會涉及到用腳本寫自動監控,那個地方很難。
9、集群和熱備,這個很重要,肯定要懂的,但到了公司就不會讓你去弄,因為新手基本不讓你碰,集群工具有很多,最好學是LVS,這是必學,最好也學學nginx集群,反向代理,還有熱備,這個就更多工具能實現了,像我公司是自己開發熱備工具的,mysql熱備也要學,就是主從復制,這個別告訴我容易,其實不容易的,要學懂整個流程一點也不容易,只照著做根本沒意思。
10、數據備份,不學不行,工具有很多,但至少要把RAID的原理弄懂,特別是企業最常用的1+0或0+1,自己做實驗也要弄出來,備份工具有很多,如tar, mp, rsync等,最好多了解一下。
算了,說到這10點已經夠你受了,應該可以入門了,因為有些技術會比較難學,例如apache和nginx中還有些很重要的技術,如系統調優和服務優化,還有程序優化,這些在沒接觸工作前很難學習到的,所以先把這10點學了吧,估計要學熟至少3個月不止,就腳本那部分已經讓你很吃力了,我建議是先學熟shell,等工作後再學另一門腳本語言,這樣會比較好。
⑶ 面試題目(sql)
1、忍不住想說一句,因為第一題中的欄位類型是
【日期型】,而各種資料庫操作日期型數據有不同的方法,沒有一種共通的方法,所以脫離了資料庫而言沒有一種共通的sql。
2、select
ID,NAME,ADDRESS,PHONE,LOGDATE
from
T
where
ID
in(
select
ID
from
T
group
by
NAME
having
count(*)>1)
order
by
NAME;
3、delete
from
T
where
ID
not
in
(select
min(id)
from
T
group
by
name);
4、update
T
set
T.ADDRESS=(select
E.ADDRESS
from
E
where
E.NAME=T.NAME),
T.PHONE=(select
E.PHONE
from
E
where
E.NAME=T.NAME);
5、這個不同的資料庫也有不同的處理方法,不能脫離資料庫談了。
如:SqlServer或者access可以使用
top
oracle可以使用
rownum
等
---
以上,希望對你有所幫助。
⑷ 怎麼才叫會使用sqlserver 面試的時候會問SQLserver和orecal等,都有些什麼問
相關問題沒有一個規范,主要決定於用人單位工作要求。
資料庫及表格操作,和一些基本的伺服器的操作,是一定需要掌握的。
⑸ sqlserver資料庫知識難點
1、數據分頁輸出
2、事務,事務節點、保存與回滾
3、存儲過程高效
4、分布式部署
5、分區存儲
6、高可用,資料庫鏡像
⑹ 有關SQL的面試題。。。
1:
〔車輛〕、〔站台〕、〔行車路線〕最少3個表
〔車輛〕表欄位〔ID〕,〔名稱〕
〔站台〕表欄位〔ID〕,〔名稱〕,〔描述〕
〔行車路線〕表欄位〔ID〕,〔車ID〕,〔站ID〕
查詢:
SELECT 〔車輛〕.〔名稱〕,〔站台〕.〔名稱〕
FROM 〔車輛〕 INNER JOIN 〔行車路線〕
ON 〔車輛〕.〔ID〕=〔行車路線〕.〔車ID〕
INNER JOIN 〔站台〕
ON 〔站台〕.〔ID〕=〔行車路線〕.〔站ID〕
WHERE 〔站台〕.〔名稱〕 = '車站1'
OR 〔站台〕.〔名稱〕 = '車站2'
2:資料庫設計
〔部門〕表:ID,父級ID,名稱
〔員工〕表:ID,父級ID,名稱,許可權
〔員工所屬部門〕表:ID,員工ID,部門ID
〔申請〕表:ID,內容,申請人ID,審核人ID,審核結果,備注
系統設計:
1 員工進入申請頁面時,根據〔員工〕的許可權來判斷是否能進入
2 員工查詢〔申請〕表,通過申請人ID過濾,只有申請許可權
3 經理查詢〔申請〕表,通過〔員工〕表查申請人的父級ID過濾,可以進行審批操作
⑺ 幫幫忙,sql面試題
如果是SqlServer 2005 的話可以這樣寫
select * from (
select id,name,sal,
rank() over( PARTITION BY month order by sal) as [分組排名]
from 表名)a where 分組排名 <6
人家要的是每月的前五
--------------------------------------------------
declare @ysj_month varchar(max)
declare ysj_cursor Cursor For
select distinct month from table
open ysj_cursor
while @@fetch_status =0
begin
fetch next from ysj_cursor into @ysj_month
select top 5 * from table where month = @ysj_month order by money desc
end;
CLOSE ysj_cursor
----------------------------------
declare @月份 smallint
declare @月份max smallint
set @月份=1
set @月份max=max(month)
while @月份<=@月份max
begin
select top 5 * from table where month = @ysj_month order by money desc
set @月份=@月份+1
end
⑻ SQL面試題,謝謝,麻煩了
1 select to_char(regdate,'yyyymm'),count(*) from a group by to_char(regdate,'yyyymm');
2 select name,count(*) from a group by name;
3 insert into c select id,name from a where name in (select name from a group by name having count(*)>1);
4 select * from a, (select name,max(regdate) from a group by name ) as d where a.name=d.name and a.regdate=d.regdate
這里用to_char了,說明是oracle庫,LS的那是sqlserver的查法
⑼ 急--sqlserver查詢問題
少有的聰明的提問題者,你一定會得到最准確的答復
SELECT RQ,SUM(CASE WHEN SHENGFU='勝' then 1 else 0 end) as 勝,
SUM(CASE WHEN SHENGFU='負' then 1 else 0 end) as 負
from #tmp group by rq