面試題 資料庫

2021-09-26 07:37:29 字數 1407 閱讀 8957

1. 資料庫的優化方案

1)建立和優化索引

建立索引

復合索引

使用短索引

排序的索引問題

2)優化sql語句

like語句的優化

使用連線(join)來代替子查詢

不要在列上進行運算

不使用not in和<>操作 3

)優化硬體和網路

4)通過快取減輕資料庫的壓力

2. 寫出複製表(只複製表結構,源表明:a,新錶名:b)的sql語句

法一:select * into b from a where 1$amp;

法二:select top 0 * into b from a;

3. 寫出複製表(拷貝資料,源表明:a,新錶名:b)的sql語句

insert into b(a, b, c) select d,e,f from a;

4. 簡述不同資料庫分頁語句的用法

1). mysql的分頁:

select * from table_name limit(pagenum-1)*pagesize,pagenum*pagesize;

2). sqlserver的分頁:

select top pagesize * from tabe_name where id not in (select top (pagenum-1)*pagesize id from table_name); 

3). oracle的分頁:

//pagenum:當前頁,pagesize:一頁的記錄數

select * from (select t.*,rownum rn from (select * from tb_users) t) where rn > (pagenum-1)*pagesize and rn <= pagenum*pagesize;

注意:rownum分頁時必須重新命名。

5.  preparedstatement和statement的區別    

1>. prepared statement是預編譯的,而statement不是,在每次執行sql語句的增刪改時,如果是一條資料兩者沒差距,但如果資料量大於1,那麼每次執行sql語句statement都要重新編譯一次,而prepared statement不用,prepared statement的執行效率大於statement;

2>. 從**的可維護性和可讀性來說,雖然用prepared statement來代替statement會使**多出幾行,但這樣的**無論從可讀性還是可維護性來說,都比直接使用statement的**高很多檔次;

3>. 最重要的一點,從安全角度來說,使用prepared statement可以大大提高程式的安全性,因為prepared statement是用『?』傳參,可以防止sql注入,具有安全性,而statement用的是『+』字串拼接,安全性較低 。  

面試題 資料庫

今天面試,遇到資料庫方面的問題,由於好久沒接觸過,很多都忘記了,回來查了資料,整理一下 1 觸發器與儲存過程的區別 觸發器 是一種特殊型別的儲存過程,當使用下面的一種或多種資料修改操作在指定表中對資料進行修改時,觸發器會生效 update insert 或 delete。觸發器可以查詢其它表,而且可...

資料庫 面試題

正規化 第一正規化 1nf 所謂第一正規化 1nf 是指在關係模型中,所有的域都應該是原子性的,而不能是集合 陣列 記錄等非原子資料項。第二正規化 2nf 在1nf基礎上消除非主屬性對主碼的部分函式依賴。第三正規化 3nf 在2nf基礎上消除非主屬性對主碼的傳遞函式依賴。巴斯 科德正規化 bcnf ...

資料庫面試題

這個主要是給自己看的,答案都是網上搜的 乙個叫department的表,裡面只有乙個字段 name 一共有4條紀錄,分別是a,b,c,d,對應四個球對,現在四個球對進行比賽,用一條sql語句顯示所有可能的比賽組合 select a.name,b.name fromdepartment a,depar...