資料庫面試題
❶ 資料庫面試題!!!!
你可以把欄位值先轉化一下,在輸入資料庫
$a為原始值
$b = sprintf('%08s',$a);
把$b錄入資料庫
❷ 前幾天面試,面試官問會不會用資料庫,完全不懂這資料庫指的是什麼
簡單來說資料庫就是個電腦中用於儲存數據的軟體工具;
你說的文案類的工作,可能就只是要求一些簡單的資料庫操作,因為資料庫中可以用特定的方法,對儲存的數據進行查詢,更新及插入操作(也就是對儲存數據的維護)
例如:
如果公司的人事資料在資料庫中建立儲存,就可以通過資料庫查詢人員的相關信息(例如入職日期,學歷,出生年月等),也可以統計在1個月中入職多少,離職多少的信息
有問題,請繼續追問,沒問題,請採納,謝謝~
❸ 資料庫面試題1
select a.產品名,
isnull(b1.產品數量,0) as 倉庫id_1,
isnull(b2.產品數量,0) as 倉庫id_2,
isnull(b3.產品數量,0) as 倉庫id_3,
isnull(b4.產品數量,0) as 倉庫id_4
from
(select distinct 產品名 from tablename) a
left join tablename b1 on b1.產品名=a.產品名 and b1.倉庫id=1
left join tablename b2 on b2.產品名=a.產品名 and b2.倉庫id=2
left join tablename b3 on b3.產品名=a.產品名 and b3.倉庫id=3
left join tablename b4 on b4.產品名=a.產品名 and b4.倉庫id=4
❹ oracle資料庫面試題
1、b沒有訪問表employee的許可權,或者有許可權但是在做desc時沒有加用戶名在表前面。
2、在建表時設置了max extent參數導致了表extent數滿了之後不能再進行擴展。
3、tablespace full表示該表空間沒有可擴展的塊了,這是設置了datafile為autoextend off後或者系統中沒有可擴展的物理空間導致。
4、首先我需要有一張主表(pri)擁有關鍵欄位(id),然後分兩種情況,一種是目標表不存在的情況那麼我需要建立目標表,如:create table oerder(id not null,aa char(8),id_p int, primary key(id),forergn key (id_p) references pri(id));。另一種情況是目標表存在,則增加約束條件:alter table order add foreign key (id_p) references pri(id);
5、pct_increase代表的是表在做了第一次extent後,下次再擴展時的增量,它是一個百分比值,也就是說,如果你設置了該值為50那麼在表下一次擴展時擴展量就增加為150%。這是個很「恐怖」的設置,如果你使用了它那麼有可能你會發現你的表空間很快就沒有可擴展的地方了。
6、英文不好,題目意思沒讀懂。
7、這題還是分兩種情況,一種是nt server就是你的database server,那麼你可能需要先在nt server上確認listener已經啟動,然後進行ping和tracert看看是否是網路問題,最後檢查pc上的tnsnames.ora配置文件是否正確,在pc上做tracerc看網路鏈接是否正常?檢查pc上防火牆的設置等。如果nt server 不是你的database server那麼說明你的database server的網路鏈接是正常的,那麼需要的就是:檢查pc上的tnsnames.ora配置文件是否正確,在pc上做tracerc看網路鏈接是否正常,檢查pc上防火牆的設置等。當然還有一種比較特殊的情況,在pc安裝了64位win操作系統+32位的oracle時會發生在cmd下可以進行鏈接,但是使用oracle的其他連接方式如客戶端,oem等等就會報tns錯誤,這是oracle本身的bug。
8、char和varchar2最根本的區別就在於一個是固定長度,另一個是可變長度。它們對空間的佔用量是不同的,在同樣長度的字元下char類型的需要用空字元補充不足的字元數,而varchar2則不會。當然運行效率上char占優。
9、這個太長,懶得打了。
❺ 資料庫sql查詢語句面試題
5.1
select a.username,b.deptname from users a,dept b where a.dept_id=b.id;
5.2
update users set dept_id='9' where dept_id='2';
5.3
select a.deptname,b.count_id from dept a,(select dept_id,count(id) as count_id from users group by dept_id having count(id)>1) b where a.id=b.dept_id;
5.4
select a.deptname,b.count_man,c.count_woman from dept a,(select dept_id,count(sex) as count_man from users where sex='男' group by dept_id) b,(select dept_id,count(sex) as count_woman from users where sex='女' group by dept_id) c where a.id=b.dept_id and a.id=c.dept_id;
5.5
添加歷史記錄表
create table history(
id number(8), -- 記錄編號
dept_id varchar2(5), -- 部門ID
user_id varchar2(5), -- 用戶ID
change_date date -- 變動日期
);
❻ java面試題中一般資料庫會問什麼內容
資料庫基礎(面試常見題)
一、資料庫基礎
1. 數據抽象:物理抽象、概念抽象、視圖級抽象,內模式、模式、外模式
2. SQL語言包括數據定義、數據操縱(Data Manipulation),數據控制(Data Control)
數據定義:Create Table,Alter Table,Drop Table, Craete/Drop Index等
數據操縱:Select ,insert,update,delete,
數據控制:grant,revoke
3. SQL常用命令:
CREATE TABLE Student(
ID NUMBER PRIMARY KEY,
NAME VARCHAR2(50) NOT NULL);//建表
CREATE VIEW view_name AS
Select * FROM Table_name;//建視圖
Create UNIQUE INDEX index_name ON TableName(col_name);//建索引
INSERT INTO tablename {column1,column2,…} values(exp1,exp2,…);//插入
INSERT INTO Viewname {column1,column2,…} values(exp1,exp2,…);//插入視圖實際影響表
UPDATE tablename SET name=』zang 3』 condition;//更新數據
DELETE FROM Tablename WHERE condition;//刪除
GRANT (Select,delete,…) ON (對象) TO USER_NAME [WITH GRANT OPTION];//授權
REVOKE (許可權表) ON(對象) FROM USER_NAME [WITH REVOKE OPTION] //撤權
列出工作人員及其領導的名字:
Select E.NAME, S.NAME FROM EMPLOYEE E S
WHERE E.SUPERName=S.Name
4. 視圖:
5. 完整性約束:實體完整性、參照完整性、用戶定義完整性
❼ 面試常問的資料庫問題及答案
目前在職場中很難找到非常合格的資料庫開發人員。有人說:「SQL開發是一門語言,它很容易學,但是很難掌握。」
在面試應聘的SQL Server資料庫開發人員時,我運用了一套標準的基準技術問題。下面這些問題是我覺得能夠真正有助於淘汰不合格應聘者的問題。它們按照從易到難的順序排列。當你問到關於主鍵和外鍵的問題時,後面的問題都十分有難度,因為答案可能會更難解釋和說明,尤其是在面試的情形下。
你能向我簡要敘述一下SQL Server 2000中使用的一些資料庫對象嗎?
你希望聽到的答案包括這樣一些對象:表格、視圖、用戶定義的函數,以及存儲過程;如果他們還能夠提到像觸發器這樣的對象就更好了。如果應聘者不能回答這個基本的問題,那麼這不是一個好兆頭。
NULL是什麼意思?
NULL(空)這個值是資料庫世界裡一個非常難纏的東西,所以有不少應聘者會在這個問題上跌跟頭您也不要覺得意外。
NULL這個值表示UNKNOWN(未知):它不表示「」(空字元串)。假設您的SQL Server資料庫里有ANSI_NULLS,當然在默認情況下會有,對NULL這個值的任何比較都會生產一個NULL值。您不能把任何值與一個 UNKNOWN值進行比較,並在邏輯上希望獲得一個答案。您必須使用IS NULL操作符。
什麼是索引?SQL Server 2000里有什麼類型的索引?
任何有經驗的資料庫開發人員都應該能夠很輕易地回答這個問題。一些經驗不太多的開發人員能夠回答這個問題,但是有些地方會說不清楚。
簡單地說,索引是一個數據結構,用來快速訪問資料庫表格或者視圖里的數據。在SQL Server里,它們有兩種形式:聚集索引和非聚集索引。聚集索引在索引的葉級保存數據。這意味著不論聚集索引里有表格的哪個(或哪些)欄位,這些欄位都會按順序被保存在表格。由於存在這種排序,所以每個表格只會有一個聚集索引。非聚集索引在索引的葉級有一個行標識符。這個行標識符是一個指向磁碟上數據的指針。它允許每個表格有多個非聚集索引。
什麼是主鍵?什麼是外鍵?
主鍵是表格里的(一個或多個)欄位,只用來定義表格里的行;主鍵里的值總是唯一的。外鍵是一個用來建立兩個表格之間關系的約束。這種關系一般都涉及一個表格里的主鍵欄位與另外一個表格(盡管可能是同一個表格)里的一系列相連的欄位。那麼這些相連的欄位就是外鍵。
什麼是觸發器?SQL Server 2000有什麼不同類型的觸發器?
讓未來的資料庫開發人員知道可用的觸發器類型以及如何實現它們是非常有益的
觸發器是一種專用類型的存儲過程,它被捆綁到SQL Server 2000的表格或者視圖上。在SQL Server 2000里,有INSTEAD-OF和AFTER兩種觸發器。INSTEAD-OF觸發器是替代數據操控語言(Data Manipulation Language,DML)語句對表格執行語句的存儲過程。例如,如果我有一個用於TableA的INSTEAD-OF-UPDATE觸發器,同時對這個表格執行一個更新語句,那麼INSTEAD-OF-UPDATE觸發器里的代碼會執行,而不是我執行的更新語句則不會執行操作。
AFTER觸發器要在DML語句在資料庫里使用之後才執行。這些類型的觸發器對於監視發生在資料庫表格里的數據變化十分好用。
您如何確一個帶有名為Fld1欄位的TableB表格里只具有Fld1欄位里的那些值,而這些值同時在名為TableA的表格的Fld1欄位里?
這個與關系相關的問題有兩個可能的答案。第一個答案(而且是您希望聽到的答案)是使用外鍵限制。外鍵限制用來維護引用的完整性。它被用來確保表格里的欄位只保存有已經在不同的(或者相同的)表格里的另一個欄位里定義了的值。這個欄位就是候選鍵(通常是另外一個表格的主鍵)。
另外一種答案是觸發器。觸發器可以被用來保證以另外一種方式實現與限制相同的作用,但是它非常難設置與維護,而且性能一般都很糟糕。由於這個原因,微軟建議開發人員使用外鍵限制而不是觸發器來維護引用的完整性。
對一個投入使用的在線事務處理表格有過多索引需要有什麼樣的性能考慮?
你正在尋找進行與數據操控有關的應聘人員。對一個表格的索引越多,資料庫引擎用來更新、插入或者刪除數據所需要的時間就越多,因為在數據操控發生的時候索引也必須要維護。
你可以用什麼來確保表格里的欄位只接受特定范圍里的值?
這個問題可以用多種方式來回答,但是只有一個答案是「好」答案。您希望聽到的回答是Check限制,它在資料庫表格里被定義,用來限制輸入該列的值。
觸發器也可以被用來限制資料庫表格里的欄位能夠接受的值,但是這種辦法要求觸發器在表格里被定義,這可能會在某些情況下影響到性能。因此,微軟建議使用Check限制而不是其他的方式來限制域的完整性。
<b?返回參數和output參數之間的區別是什麼?>如果應聘者能夠正確地回答這個問題,那麼他的機會就非常大了,因為這表明他們具有使用存儲過程的經驗。
返回參數總是由存儲過程返回,它用來表示存儲過程是成功還是失敗。返回參數總是INT數據類型。
OUTPUT參數明確要求由開發人員來指定,它可以返回其他類型的數據,例如字元型和數值型的值。(可以用作輸出參數的數據類型是有一些限制的。)您可以在一個存儲過程里使用多個OUTPUT參數,而您只能夠使用一個返回參數。
什麼是相關子查詢?如何使用這些查詢?
經驗更加豐富的開發人員將能夠准確地描述這種類型的查詢。
相關子查詢是一種包含子查詢的特殊類型的查詢。查詢里包含的子查詢會真正請求外部查詢的值,從而形成一個類似於循環的狀況。</b?返回參數和output參數之間的區別是什麼?>
❽ SQL資料庫面試題 急急急
a)select pname as '商品名',avg(qty) as 平均銷售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno,select p.Pno,p.pname,sum(s.qty)
from s left join p on s.pno=p.pno left join m on p.Mno=m.Mno
where m.city='上海市'
group by p.Pno,p.pname,p.city,p.color
b)、先刪除Sale表的外鍵PNO,再刪除gds表。
c)聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系
區別:1、視圖是已經編譯好的sql語句。而表不是
2、視圖沒有實際的物理記錄。而表有。
3、表是內容,視圖是窗口
4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改
5、表是內模式,視圖是外模式
6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。
8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。
❾ SQL資料庫筆試題
1 前面加createview 視圖名 as 2 sele 學號 from 學生表 where 學號 in(sele max(成績) from 成績) group by 學號3 類似
❿ 資料庫開發工程師面試題
select LESSON_NAME as '科目',
max(case when sequence = 1 then NameGrade else null end) as '第一名(姓名+分數)',
max(case when sequence = 2 then NameGrade else null end) as '第二名(姓名+分數)',
max(case when sequence = 3 then NameGrade else null end) as '第三名(姓名+分數)'
(
select LESSON_NAME,STU_NAME+','+convert(varchar,GRADE) as NameGrade,sequence
(select b.LESSON_NAME,c.STU_NAME,a.GRADE,row_number() over(order by a.GRADE Desc, c.STU_NAME asc) as sequence from score a
inner join lession b on (a.LESSION_ID = b.LESSION_ID)
inner join student c on (a.STU_ID = c.STU_ID) ) d
where sequence < 4
) e
group by LESSON_NAME
order by case(when LESSON_NAME = '語文' then 1,
when LESSON_NAME = '數學' then 2,
when LESSON_NAME = '英語' then 3,
when LESSON_NAME = '物理' then 4,
when LESSON_NAME = '化學' then 5,
else 9999 end)
大概就是這個樣子,沒執行,你自己再調試下 。
如果兩個人相同分數,根據名字順序排列