資料庫理論知識及面試題

2022-08-21 22:00:17 字數 1424 閱讀 3122

資料庫部分

1、什麼是sql注入,如何防止?

sql注入:就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。簡單說就是sql拼接。

如何防禦:

a:刪除使用者輸入內容中的所有連字元

b:對於用來執行查詢的資料庫帳戶,限制其許可權。用不同的使用者帳戶執行查詢、插入、更新、刪除操作。由於隔離了不同帳戶可執行的操作

c: 用儲存過程來執行所有的查詢。sql引數的傳遞方式將防止攻擊者利用單引號和連字元實施攻擊

d:查使用者輸入的合法性,確信輸入的內容只包含合法的資料

2、sql如何優化?

a:要顯示什麼字段, 就查詢什麼字段

b: 建立索引

c:減少對錶的查詢

d:分表分庫

3、左連線與有連線的區別?

左連線:只要左邊表中有記錄,資料就能檢索出來,而右邊有的記錄必要在左邊表中有的記錄才能被檢索出來

右連線:右連線是只要右邊表中有記錄,資料就能檢索出來

4、union與union all區別

union 將兩個表連線後刪除其重複的項; 

union all 將兩個表連線都不刪除其重複的項。 

5、什麼是jquery? jquery的選擇器有幾種?

1、基本選擇器

2、層次選擇器

3、過濾選擇器

4、表單選擇器

一.sql server查詢第31到40條資料?

大致分為兩種情況:id連續和id不連續。

1.id連續的情況:select * from a where id between 31 and 40

2.id不連續的情況:

(1)兩次對錶查詢,效率較低。

select top 10 * from a where id not in (select top 30 id from a)

(2)外層查詢沒有對錶a進行查詢,效率提高。

select top 10 * from (select top 40 id from a order by id) as a order by a.id desc 

(3)row_number()函式效率更高,sql2005以上版本可用。

select * from(select *,row_number() over(order by id)as 'userid' from a) as a where a.userid between 31 and 40

資料庫事務相關理論知識

儲存結構 序列化排程 隔離級別及實現方式 併發控制 事務 transaction 是構成單一邏輯工作單元的操作集合。是訪問並可能更新各種資料項的乙個程式執行單元。原子性 atomicity 事務操作在資料庫中要麼全部正確反映出來,要麼完全不反映。一致性 consistency 隔離執行事務時,保持資...

mysql理論知識 MySQL資料庫理論知識

1 mysql連線方式 1 tcp ip 需要三次握手建立連線 mysql uroot p123 h10.0.0.51 mysql uroot p123 h127.0.0.1 2 socket mysql預設使用socket連線 socket預設路徑 tmp mysql.sock,可以通過編譯引數更...

資料庫相關理論知識整理複習

database management system dbms 資料庫管理系統是乙個為儲存和管理資料庫的軟體包。1 從資料模型的發展來看 2 從體系結構的發展來看 3 從應用領域的拓展來看 工程資料庫 cad,cam 演繹資料庫 知識庫,知識管理,需要推理過程 時態資料庫 空間資料庫 資料倉儲 資料...