上帝通常會用三種方式給曾經(jīng)付出的人們作答:他點頭給你想要的;他搖頭給你更好的;他讓你等待贩挣,然后給你最好的。——劉強東
名詞解釋
1王财、DHCP:(Dynamic Host Configuration Protocol卵迂,動態(tài)主機配置協(xié)議)是一個局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,主要有兩個用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動分配IP地址绒净,或者給內(nèi)部網(wǎng)絡(luò)管理員作為對所有計算機作中央管理的手段见咒。
2、UDP:全稱是User Datagram Protocol挂疆, 意思是用戶數(shù)據(jù)報協(xié)議改览。是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議缤言,它不與對方建立連接宝当,而是直接就把數(shù)據(jù)包發(fā)送過去!是應(yīng)用程序之間的簡單通信胆萧。UDP的特性:它不屬于連接型協(xié)議庆揩,因而具有資源消耗小,處理速度快的優(yōu)點跌穗,所以通常音頻订晌、視頻和普通數(shù)據(jù)在傳送時使用UDP較多,因為它們即使偶爾丟失一兩個數(shù)據(jù)包瞻离,也不會對接收結(jié)果產(chǎn)生太大影響腾仅。比如我們聊天用的ICQ和QQ就是使用的UDP協(xié)議乒裆。
筆試/面試真題真題
題目描述(京東-2016筆試題)
果園里有一堆蘋果套利,一共n頭(n大于1小于9)熊來分,第一頭為小東鹤耍,它把蘋果均分n份后肉迫,多出了一個,它扔掉了這一個稿黄,拿走了自己的一份蘋果喊衫,接著第二頭熊重復(fù)這一過程,即先均分n份杆怕,扔掉一個然后拿走一份族购,以此類推直到最后一頭熊都是這樣(最后一頭熊扔掉后可以拿走0個,也算是n份均分)陵珍。問最初這堆蘋果最少有多少個寝杖。
給定一個整數(shù)n,表示熊的個數(shù)互纯,返回最初的蘋果數(shù)瑟幕,保證有解。
測試樣例:
2
返回:3
解題思路:
無法從后往前推,因為最后一個熊拿到的個數(shù)是不確定的只盹,所以就使用遍歷辣往,從n+1開始殖卑,判斷在每一次的加減的過程中站削,該數(shù)是否對n取余等于1,如果是則繼續(xù)減懦鼠,直到熊的個數(shù)等于0為止钻哩,否則就進入下一個數(shù)的判斷。
代碼如下(如果代碼頁面超出可以左右上下移動):
技術(shù)知識點
數(shù)據(jù)庫基本知識點(下)
第四節(jié)
一肛冶、相關(guān)概念和知識點
SQL語句總結(jié)
1. SELECT:將資料從數(shù)據(jù)庫中的表格內(nèi)選出街氢,兩個關(guān)鍵字:從 (FROM) 數(shù)據(jù)庫中的表格內(nèi)選出 (SELECT)。
語法為:SELECT "欄位名"FROM "表格名"
2. DISTINCT:在上述 SELECT 關(guān)鍵詞后加上一個DISTINCT 就可以去除選擇出來的欄位中的重復(fù)睦袖,從而完成求得這個表格/欄位內(nèi)有哪些不同的值的功能珊肃。
語法為:SELECT DISTINCT "欄位名" FROM "表格名"
3. WHERE:這個關(guān)鍵詞可以幫助我們選擇性地抓資料,而不是全取出來馅笙。語法為:SELECT "欄位名"FROM "表格名" WHERE "條件"
4. AND OR:上例中的 WHERE 指令可以被用來由表格中有條件地選取資料伦乔。這個條件可能是簡單的 (像上一頁的例子),也可能是復(fù)雜的董习。復(fù)雜條件是由二或多個簡單條件透過 AND 或是 OR 的連接而成烈和。
語法為:SELECT "欄位名" FROM "表格名" WHERE "簡單條件" {[AND|OR] "簡單條件"}+
5. IN:在 SQL 中,在兩個情況下會用到 IN 這個指令皿淋;這一頁將介紹其中之一:與WHERE 有關(guān)的那一個情況招刹。在這個用法下,我們事先已知道至少一個我們需要的值窝趣,而我們將這些知道的值都放入IN 這個子句疯暑。
語法為:SELECT "欄位名" FROM "表格名" WHERE "欄位名"IN ('值一', '值二', ...)
6. BETWEEN:IN 這個指令可以讓我們依照一或數(shù)個不連續(xù) (discrete)的值的限制之內(nèi)抓出資料庫中的值,而 BETWEEN 則是讓我們可以運用一個范圍 (range) 內(nèi)抓出資料庫中的值哑舒。
語法為:SELECT "欄位名" FROM "表格名"WHERE "欄位名" BETWEEN '值一' AND '值二'
7. LIKE:LIKE 是另一個在WHERE 子句中會用到的指令妇拯。基本上洗鸵, LIKE 能讓我們依據(jù)一個模式(pattern) 來找出我們要的資料越锈。
語法為:SELECT "欄位名" FROM "表格名" WHERE "欄位名"LIKE {模式}
8. ORDER BY:我們經(jīng)常需要能夠?qū)⒆コ龅馁Y料做一個有系統(tǒng)的顯示。這可能是由小往大(ascending) 或是由大往小(descending)膘滨。在這種情況下甘凭,我們就可以運用 ORDER BY 這個指令來達到我們的目的。
語法為:SELECT "欄位名" FROM "表格名 [WHERE"條件"] ORDER BY "欄位名" [ASC, DESC]
9. 函數(shù):函數(shù)允許我們能夠?qū)@些數(shù)字的型態(tài)存在的行或者列做運算吏祸,包括 AVG (平均)对蒲、COUNT (計數(shù))钩蚊、MAX (最大值)、MIN (最小值)蹈矮、SUM (總合)砰逻。
語法為:SELECT "函數(shù)名"("欄位名") FROM "表格名"
10. COUNT:這個關(guān)鍵詞能夠幫我我們統(tǒng)計有多少筆資料被選出來。
語法為:SELECT COUNT("欄位名") FROM "表格名"
11. GROUP BY:GROUP BY 語句用于結(jié)合合計函數(shù)泛鸟,根據(jù)一個或多個列對結(jié)果集進行分組蝠咆。
語法為:SELECT "欄位1",SUM("欄位2") FROM "表格名" GROUP BY "欄位1"
12. HAVING:該關(guān)鍵詞可以幫助我們對函數(shù)產(chǎn)生的值來設(shè)定條件。
語法為:SELECT "欄位1",SUM("欄位2") FROM "表格名" GROUP BY "欄位1" HAVING (函數(shù)條件)
13. ALIAS:我們可以通過ALIAS為列名稱和表名稱指定別名北滥。
語法為:SELECT "表格別名"."欄位1" "欄位別名" FROM "表格名" "表格別名"
二刚操、舉例說明SQL關(guān)鍵詞使用方法
下面為一個例子,通過它我們應(yīng)該能很好地掌握以上關(guān)鍵詞的使用方法再芋。
例子:
Student(S#,Sname,Sage,Ssex) 學生表
Course(C#,Cname,T#) 課程表
SC(S#,C#,score) 成績表
Teacher(T#,Tname) 教師表
問題:
1.查詢“001”課程比“002”課程成績高的所有學生的學號菊霜;
select a.S#
from (select s#,score from SC whereC#='001') a,
(select s#,score from SC where C#='002') b
where a.score>b.score and a.s#=b.s#;
2.查詢平均成績大于60分的同學的學號和平均成績;
select S#,avg(score)
from sc
group by S# having avg(score) >60;
3.查詢所有同學的學號济赎、姓名鉴逞、選課數(shù)、總成績司训;
selectStudent.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC onStudent.S#=SC.S#
group by Student.S#,Sname
4.查詢姓“李”的老師的個數(shù)构捡;
select count(distinct(Tname))
from Teacher
where Tname like '李%';
5.查詢沒學過“葉平”老師課的同學的學號、姓名壳猜;
select Student.S#,Student.Sname
from Student
where S# not in (select distinct( SC.S#)from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T#andTeacher.Tname='葉平');
6.查詢學過“001”并且也學過編號“002”課程的同學的學號勾徽、姓名;
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S# and SC.C#=’001′andexists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');
7.查詢學過“葉平”老師所教的所有課的同學的學號统扳、姓名喘帚;
select S#,Sname
from Student
where S# in
(select S#
from SC ,Course ,Teacher
where SC.C#=Course.C# andTeacher.T#=Course.T# and Teacher.Tname=’葉平’ group by S#having count(SC.C#)=(select count(C#) from Course,Teacher whereTeacher.T#=Course.T# and Tname='葉平'));
8.查詢所有課程成績小于60分的同學的學號、姓名闪幽;
select S#,Sname
from Student
where S# not in (select Student.S# fromStudent,SC where S.S#=SC.S# and score>60);
9.查詢沒有學全所有課的同學的學號啥辨、姓名涡匀;
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S#
group by Student.S#,Student.Sname havingcount(C#) <(select count(C#) from Course);
10.查詢至少有一門課與學號為“1001”的同學所學相同的同學的學號和姓名盯腌;
select S#,Sname
from Student,SC
where Student.S#=SC.S# and C# in (select C# from SC where S#='1001');
11.刪除學習“葉平”老師課的SC表記錄;
Delect SC
from course,Teacher
where Course.C#=SC.C# and Course.T#=Teacher.T# and Tname='葉平';
12.查詢各科成績最高和最低的分:以如下形式顯示:課程ID陨瘩,最高分腕够,最低分
SELECT L.C# 課程ID,L.score最高分,R.score 最低分
FROM SC L ,SC R
WHERE L.C# = R.C#
and
L.score = (SELECT MAX(IL.score)
FROM SC IL,Student IM
WHERE IL.C# = L.C# and IM.S#=IL.S#
GROUP BY IL.C#)
and
R.Score = (SELECT MIN(IR.score)
FROM SC IR
WHERE IR.C# = R.C#
GROUP BY IR.C# );
13.查詢學生平均成績及其名次
SELECT 1+(SELECT COUNT( distinct 平均成績)
FROM (SELECT S#,AVG(score) 平均成績
FROM SC
GROUP BY S# ) T1
WHERE 平均成績 > T2.平均成績) 名次, S# 學生學號,平均成績
FROM (SELECT S#,AVG(score) 平均成績 FROM SC GROUP BY S# ) T2 ORDER BY 平均成績 desc;
14.查詢各科成績前三名的記錄:(不考慮成績并列情況)
SELECT t1.S# as 學生ID,t1.C#as 課程ID,Score as 分數(shù)
FROM SC t1
WHERE score IN (SELECT TOP 3 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC)
ORDER BY t1.C#;
15.查詢每門功成績最好的前兩名
SELECT t1.S# as 學生ID,t1.C#as 課程ID,Score as 分數(shù)
FROM SC t1
WHERE score IN (SELECT TOP 2 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC )
ORDER BY t1.C#;
大廠暑期實習的招聘已到中后期,無論有沒有拿到offer都不要松懈舌劳。請相信:越努力帚湘,越幸運!小伙伴們甚淡,跟著【19應(yīng)屆生】學習技術(shù)知識大诸,我們一起加油吧~!