20天沒系統整理了,之前是爲面試爲而學習,前段時間想換個方式,以提升技術實力來學習,可是效率過低。其實我丟了不少東西,巔峯過去了,想要快速撿回來也不容易。時間一天一天過去,是讓我感到惟一開心的事了,不想當學生,沒意思。也有種被現實擊敗的感受,確實不知道怎麼辦了,反正我儘可能想吧,別墮落就行。
linux
一、內鏈接與外鏈接區別?web
答:(1)內鏈接:返回兩個表中鏈接條件相同即對應的列值相同的行面試
(2)外鏈接:分爲左外鏈接、右外鏈接、全外鏈接。以某一個表爲基表,去匹配另外一個基表,若是列值匹配則返回,若是列值不匹配,保留第一個基表的所在行,並將另外一個基表所在的列值設爲空。sql
(3)內鏈接是保證兩個表中全部的行都要知足鏈接條件,而在外鏈接中,某些不知足條件的列也會顯示出來,也就是說,只限制其中一個表的行,而不限制另外一個表的行。數據庫
二、觸發器的做用?瀏覽器
答:(1)定義:觸發器是一種特殊的存儲過程,被定義在對特定表或視圖中發出insert/update/delete觸發事件時知足觸發條件而自動執行的語句。緩存
(2)做用:強化約束,維護數據的完整性和一致性,跟蹤數據庫內的操做從而不容許未經許可的更新和變化。安全
## 數據庫的完整性是爲了保證由受權用戶對數據庫所作的修改不會影響數據一致性的損失。服務器
(3)類型:Insteaf-of觸發器、After觸發器。表明DML語句以前、以後的意思。cookie
三、什麼是存儲過程?用什麼來調用?
答:(1)定義:一組預編譯好了的SQL語句,執行效率高,容許模塊化的設計。
(2)SQL Server中使用exec來調用,Mysql中使用call來調用
四、內存溢出和內存泄露的區別?
答:(1)內存溢出 out of memory:是指程序在申請內存時,沒有足夠的內存空間供其使用,出現out of memory;好比申請了一個integer,
但給它存了long才能存下的數,那就是內存溢出。
(2)內存泄露 memory leak:是指程序在申請內存後,沒法釋放已申請的內存空間,一次內存泄露危害能夠忽略,
但內存泄露堆積後果很嚴重,不管多少內存,早晚會被佔光。
五、Time_wait等待超時了會怎樣?等待2MSL的意義?
答:會出現大量socket處於TIMEWAIT狀態。若是客戶端的併發量持續很高,此時部分客戶端就會顯示鏈接不上。
意義:(1)使最後一個ACK報文段能達到被動關閉的一方(2)使網絡中的分組所有消失,避免干擾下一次鏈接
六、針對寫的sql語句怎麼優化?(注意是寫)
答:(1)select使用明確的字段用來代替*號
(2)對錶使用別名
(3)合理添加索引
(4)用內鏈接代替使用子查詢
(5)少使用遊標和臨時表
七、主鍵索引和惟一索引區別?(主鍵索引貌似就是主鍵約束)
答:(1)一個表的主鍵索引只能有一個,而惟一索引能夠建多個。
(2)主鍵不可爲null,惟一索引能夠有一列爲null。
(3)主鍵約束會自動建立彙集索引,惟一約束會自動建立一個非彙集索引
八、什麼是事務?什麼是鎖?
答:(1)一個事務被定義爲做爲一個單元執行的符合所謂ACID屬性的一系列的操做。
事務是單個的工做單元,在事務中能夠包含多條操做語句;若是對事務執行提交,該事物中進行的全部操做均會提交,若是事務遇到錯誤而被取消或回滾,則事務的全部操做均會被清除,數據恢復到事務執行前的狀態。
(2)鎖是用來防止其餘用戶修改當前還沒完成事務中的資源的一種機制。鎖的類型有:排他鎖、共享鎖、更新鎖、意向鎖等。
九、什麼叫視圖,與表有什麼區別嗎?遊標又是什麼?
答:視圖的定義:將預約義的查詢存儲成數據庫中的對象稱爲視圖。
視圖與表的區別:(1)視圖是虛表,它不存放數據,只存放查詢的定義,而表存放實際的數據
(2)能夠經過視圖修改數據,可是有限制條件(where語句),而表能夠直接修改。
(3)能夠在視圖上創建索引,可是有限制條件,而表能夠直接創建索引。
遊標的定義:爲了方便對結果集(定義select語句所返回的數據行集合)中單獨的數據行進行訪問。遊標包括遊標結果集和遊標位置兩部分。
十、數據庫對象有哪些,NULL意味着什麼?
答:表格、視圖、用戶自定義函數、存儲過程、觸發器。NULL表明着unknown未知,而不是所謂的(空字符串)。
十一、你能夠用什麼來確保表格裏的字段只接受特定範圍裏的值?那麼完整性又有哪些?
答:check約束,以及觸發器(正如觸發器的做用所體現的)。完整性:實體完整性、域完整性、自定義完整性、參照完整性。
十二、什麼是相關子查詢?如何使用這些查詢?
答:相關子查詢指的是查詢中再查詢,一般是以一個查詢做爲條件來供另外一個查詢使用,查詢裏包含的子查詢會真正請求外部查詢的值。嵌入IN、exists語句使用
1三、爲何使用索引能提升查詢性能0?使用索引查詢必定能提升查詢的性能嗎?
答:提升查詢性能的緣由:對原始記錄的排序狀況,至關於一個多級目錄的樹形結構。
不必定。緣由:(1)全表掃描可能比使用索引查詢速度快。
(2)對於那些定義爲text, p_w_picpath和bit數據類型的列使用索引無用。這是由於,這些列的數據量要麼至關大,要麼取值不多。
(3)當修改性能遠遠大於檢索性能時,由於彼此矛盾,使用索引無用。
(4)對於那些只有不多數據值的列,使用索引無用。
1四、事務的分類有哪些?數據庫的總體結構可分爲?
答:事務類型:顯示事務、自動提交事務、隱式事務、批處理範圍事務。
數據庫的結構:網狀、層次型、關係型
1五、關係數據庫有幾種實體之間的關係?存儲過程的種類有哪些?
答:1對1,1對多,多對多。
1)、系統存儲過程:以sp_開頭,用來進行系統的各項設定.取得信息.相關管理工做, 2)、擴展存儲過程以XP_開頭,用來調用操做系統提供的功能 3)、用戶自定義的存儲過程,這是咱們所指的存儲過程
1六、有一我的事系統數據庫,人員在入職的時候,往人員表中插入數據,現要求人員入職的同時,講該人員登記到考勤表和薪資表,能夠不能夠實現,用什麼技術實現!
答:能夠,使用觸發器,在人員數據插入到人員表的後,使用觸發器技術更新到考勤表和薪資表便可。
1七、什麼是E-R模型?E-R模型的主要組成有哪些?
答:實體聯繫圖(E-R圖)是用來描述現實世界中概念模型的一種著名方法。E-R模型主要實體集、屬性和聯繫的方法組成。
1八、SQL Server 的字符型系統數據類型主要包括
答:char、varchar、text、nchar等
1九、cookie和session的區別?(這個會更詳細點)
答:(1)session對象的狀態信息保存在web服務器的緩存中,cookie對象的狀態信息保存在客戶端的硬盤中
(2)session與會話相關,在會話的整個生存期中存在,不會被主動丟棄,而cookie與用戶相關,在必定時間內持久化存儲,能夠跨瀏覽器共享數據
(3)session不會被序列化,不會發生服務器與客戶端的數據傳輸,cookie會被序列化,會發生服務器與客戶端的數據傳輸,例如某些網站使用cookie實現記住個人功能。
(4)session具備很高的安全性,而cookie存在安全性和狀態過時等問題,***能夠利用進行cookie欺騙
20、什麼是數據庫的安全性?如何保證數據庫的安全性。(這個很差答)
答:數據庫的安全性是指保護數據庫以防止不合法的使用所形成的數據泄露、更改或破壞。
(1)對用戶的合理受權管理
(2)數據庫加密、日誌審計
(3)硬件防火牆、以及***檢測系統IDS/IPS
2一、 常見的幾種約束有哪些?分別表明什麼意思?如何使用?
答:主鍵約束,外鍵約束,檢查約束,惟一約束,默認約束
約束:在Create table或alter table時加約束,保證數據的完整性和一致性
(1)主鍵:PRIMARY KEY (主鍵字段) 保證了實體完整性,一個表只有一個主鍵,但一個主鍵可有包 含多個字段,主鍵字段不能爲空
(2)惟一:UNIQUE (約束字段) 保證了實體完整性,一個表只有多個惟一約束,一個惟一約束可有包含多個字段
(3)外鍵:FOREIGN KEY (外鍵字段) REFERENCES 主鍵表(主鍵字段) 保證了引用完整性,一個表能夠有多個外鍵
(4)檢查:CHECK(檢查表達式) 保證了域完整性, 一個表中能夠有多個檢查性約束
(5)默認值:DEFAULT (默認值的表達式或NULL),保證了域完整性,一個表能夠有多個默認值約束,可是一個字段只有一個默認值
2二、什麼是存儲過程,他有何優勢?
答:存儲在服務器上的一組預編譯好的SQL代碼,它是封裝性重複性任務的方法。
存儲過程的優勢:
(1)提升性能:應用沒必要從新編譯此過程
(2)減輕網絡擁塞:客戶端直接調用便可,不須要執行大量SQL語句
(3)一致性較好:結果只受傳參影響
(4)改善安全機制:能夠給用戶受權來執行存儲過程。
2三、請列出4個Mail Server的相關組件,以及其功能是什麼?
答:(1)MUA:郵件用戶代理,它是客戶端的應用程序,爲用戶轉發郵件到郵件服務器的(即MTA)。
(2)MTA:郵件傳輸代理,例如sendmail和postfix,使用SMTP協議,在發送郵件服務器與接收郵件服務器之間轉發郵件,
(3)MDA:Delivery 郵件投遞代理,就是將接收郵件服務器的郵件,放置到本機帳戶下的郵件信箱( Mailbox )中
(4)MRA:Retrieve 郵件檢索代理,使用POP3或者IMAP協議,從郵件信箱中取出來返回給用戶顯示的。
2四、請說出郵件服務器的工做原理?(很差說,步驟太冗長,能畫圖最好)
答:基於C/S模式,SMTP的25端口,POP3協議的110端口。
(1)用戶A編輯完一封郵件後,用戶代理MUA使用SMTP協議將該郵件發送給管理本地域的郵件服務器mail.a.org,該郵件服務器通過域名解析,先查MX記錄找到mail.b.org,再根據A記錄找到關於mail.b.org的IP地址
(2)而後該MTA使用本身本地的SMTP協議進行郵件轉發到目的郵件服務器,目的郵件服務器發現是發往被域的,因而交給MDA投遞代理到對應用戶的油筒中,而後P0P3服務器使用POP3協議讀取該郵筒的郵件,使用MRA郵件檢索協議交給目的用戶B。
2五、小明訪問互聯網的網關是192.168.1.1,訪問局域網段192.168.2.0的網關是192.168.1.254,怎麼操做才能讓他既能訪問Internet又能訪問公司內網?
答:route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254 >>/etc/rc.local
route add default gw 192.168.1.1 >>/etc/rc.local
2六、談談你對syslog.conf的認識?若是loglevel=err,在日誌文件error_log中發現什麼樣的錯誤日誌?
答:認識:(1)linux使用syslogd做爲日誌監控進程,配置文件是/etc/rsyslog.conf,其中格式定義規則爲設備.優先級 處理方案
(2)設備定義了日誌消息的範圍,好比local0-local7,kern(內核信息)、lpr(打印服務),mark(生成時間戳),*表明處了mark之外的全部功能。
(3)優先級定義消息的緊急程度,如emerg(不可用)、alert(警告須要當即被修改)、crit、warning、info、notice(重要信息)、err
(4)格式中的處理方案能夠表明日誌文件的路徑或者終端設備好比/dev/console等
錯誤日誌:若是Loglevel=err,錯誤日誌文件中會出現alert警告,以及crit緊急狀況。
2七、介紹下計算機網絡中的ICMP協議?有哪幾種報文(此題爭議較大,書上說它說IP協議,而閆輝老師說它是傳輸層協議)
答:事實上,我之前也以爲是網絡層協議,後來我想閆輝老師這麼權威,應該沒錯是傳輸層協議。另外一方面,它做爲網關向源主機報錯的協議,由於網絡層不可靠,因此須要ICMP協議,雖然知道可能傳輸錯誤,可是解決不了實質問題。ICMP報文是被封裝在IP數據包裏的,他擁有類型、代碼(即類型值)以及數據部分。
類型:(1)終點不可達(2)時間超過(3)參數問題(4)源點抑制(5)重定向(6)Echo request和Echuo reply
2八、請簡要描述IPv4的數據報格式?並談談你對IPv6的認識(哎呀,這麼倒背如流的東西竟然卡克了,再敏感的頭腦不復習都不行!)
答:IP報頭在不加填充選項的時候是20字節,報文格式有版本號,包頭長度,優先級(即服務類型),整個數據報長度,協議字段,源IP地址,目的IP地址,以及一些分片標誌、TTL和報頭校驗和。
IPv6:首部固定128位,極大地解決了地址稀缺的問題,不存在ARP協議,由於沒有廣播,集成了移動性、全球可達性和靈活性,可以實現無狀態自動配置,用戶一連上就能訪問Internet,簡單的包頭減少處理開銷引發的延遲,也沒有校驗和,對於一些動態路由協議,也進行了開發,好比RIPng、OSPFv三、DHCPv6
2九、drop,delete與truncate的區別?
答:(1)drop直接刪除表結構;truncate清空表中數據,再次插入時自增加,id又從1開始;delete刪除表中數據,能夠加where字句
指定刪除部分行;
(2)truncate與不帶where的delete等價,可是truncate只能刪除表,而delete既能刪除視圖又能刪除表;
(3)從執行效率來講,drop>truncate>delete;
(4)當表被TRUNCATE後,這個表和索引所佔用的空間會恢復到初始大小,而DELETE操做不會減小表或索引所佔用的空間。drop語句將表所佔用的空間全釋放掉。
30、SQL語句優化。(跟上一期還有點不同)
答:(1)應儘可能避免在 where 子句中使用非等於(!=或<>)操做符,不然將引擎放棄使用索引而進行全表掃描。
(2)應儘可能避免在 where 子句中對字段進行 null 值判斷,不然將致使引擎放棄使用索引而進行全表掃描,如:
select id from t where num is null 能夠在num上設置默認值0,確保表中num列沒有null值,而後這樣查詢:select id from t where num=0
(3)不少時候用 exists 代替 in 是一個好的選擇
(4)用Where子句替換HAVING 子句 由於HAVING 只會在檢索出全部記錄以後纔對結果集進行過濾