asp.net 資料庫面試題(基礎)

來源:互聯網
上載者:User

標籤:

今天到某公司筆試,資料庫考的比較多,但是說老實話,考的也比較基礎。現在趁回憶得起來,將資料庫知識簡單整理如下:

 

 

 

一、建表指令

 

比如建立一個學生表student,它由學號Sno,姓名Sname,性別Ssex,年齡Sage,所在系Sdept五個屬性群組成。其中學號不可為空,值是唯一的,並且姓名取值也唯一。

 

CREATE TABLE Student

 

(Sno    CHAR(10) NOT NULL UNIQUE,

 

 Sname  CHAR(20) UNIQUE,

 

 Ssex    char(2),

 

Sage    INT,

 

Sdept  char(15)

 

)

 

 

 

二、增加列、刪除列、修改列

 

1、增加列Stel

 

Alter table Student ADD Stel Char(12)

 

2、刪除列Stel

 

Alter Table Student DROP COLUMN Stel

 

3、修改列Sdept

 

ALTER  Table  Student  ALTER  COLUMN  Sdept  CHAR(8)  Sno CHAR(8)

 

 

 

三、建立與刪除索引

 

1、在表Student中建立按年齡Sage升序建立索引

 

建立索引:Create  INDEX  S_INDEX  ON  Student(Sage)

 

2、刪除索引

 

DROP  INDEX  Student  S_INDEX

 

 

 

四、串連查詢。

 

在對錶進行串連時,最常用的串連條件是等值串連,也就是使兩個表中對應列相等所進行的串連,通常一個列是所在表的主鍵,另一個列是所在表的主鍵或外鍵,只有這樣的等值串連才有意義。

 

比如說有兩張表分別為courses表(cno,cname,credit)和enrolls表(sno,cno,grade)。

 

查詢所有學生所選的課程名稱:

 

Select  sno,  enrolls.cno, cname, grade  from  enrolls, courses WHERE enrolls.cno = courses.cno

 

 

 

五、單表查詢時,去掉重複行

 

比如查詢Student表中所有系的名稱,去掉重複行

 

Select  distinct  department  From  student

 

 

 

六、常用條件運算式運算子IN,NOT IN;between,and,not like.

 

在上面的Student表和enrolls表中,查詢成績在80分以上的的學號和姓名。

 

Select  sno,  sname  From  Student WHERE  sno  IN (select sno FROM enrolls Where grade > 80)

 

上面的SQL語句也是巢狀查詢。

 

 

 

七、有個需用到having字句的,具體題目忘了。

 

Having子句,篩選出只滿足指定條件的組。注意的是,該子句只能同GROUP BY子句配合使用,篩選出合格分組資訊。

 

類似題目如下:查詢Student表中每個系有三個以上的學生的所在系。

 

Select  department  From  Student  Group  BY department  Having  COUNT(*) >= 3。

 

 

 

八、插入資料

 

1、單行插入,比如在上面的Student表中插入學生王強的資訊。

 

Insert  into  Student(Sno,Sname,Ssex,Sage,Sdept)

 

Values(‘2005012’,’王強’,’男’,18,’電腦’)

 

2、多行插入,比如每個學生都要修作業系統c2這門課,將選課資訊加入表enrolls中。

 

INSERT  INTTO  enrolls(sno,cno)

 

SELECT  Sno, ‘c2’  FROM  Student

 

 

 

九、修改資料

 

比如給enrolls這個表中選修了作業系統這門課的學生的成績修改為60分。

 

UPDATE enrolls

 

SET grade = 60

 

WHER cno IN

 

(SELECT  cno  FROM  courses  WHERE  cname  = ‘作業系統’)

 

 

 

十、刪除資料

 

比如刪除Student表中年齡在20歲以上的學生

 

Delete   from  Student   where  Sage > 20

 

刪除整張表的資料 delete from Student

 

 

 

十一、預存程序(兩個參數,根據輸入的參數查詢好資料後返回給輸出的參數)

 

比如建立一個預存程序procGetDepName,它帶有1個輸入參數@sno,還帶有1個輸出參數@DepartmentName,功能:根據輸入的學號,找到該生所在的院系,輸出院系名稱。

 

create procedure procGetDepName

 

@sno nvarchar(10),

 

@DepartmentName nvarchar(20) output

 

as

 

begin

 

select @DepartmentName = DepartmentName

 

from Department d, Student s

 

where d.DepartmentID = s.DepartmentID and

 

s.sno = @sno

 

end

 

 

十二、資料庫常用資料類型和作用。

 

第一大類:整數資料

 

bit:bit資料類型代表0,1或NULL,就是表示true,false.佔用1byte.

 

int:以4個位元組來儲存正負數。可儲存範圍為:-2^31至2^31-1。

 

smallint:以2個位元組來儲存正負數。儲存範圍為:-2^15至2^15-1。

 

tinyint: 是最小的整數類型,僅用1位元組,範圍:0至此^8-1。

 

 

 

第二大類:精確數值資料

 

numeric:表示的數字可以達到38位,儲存資料時所用的位元組數目會隨著使用權用位元的多少變化。

 

decimal:和numeric差不多。

 

 

 

第三大類:近似浮點數值資料

 

float:用8個位元組來儲存資料.最多可為53位。範圍為:-1.79E+308至1.79E+308。

 

real:位元為24,用4個位元組,數字範圍:-3.04E+38至3.04E+38。

 

 

 

第四大類:日期時間資料

 

datatime:表示時間範圍可以表示從1753/1/1至9999/12/31,時間可以表示到3.33/1000秒.使用8個位元組。

 

smalldatetime:表示時間範圍可以表示從1900/1/1至2079/12/31,使用4個位元組。

 

 

 

第五大類:字串資料

 

char:長度是設定的,不可變的。最短為1位元組,最長為8000個位元組.不足的長度會用空白補上。

 

varchar:長度是可變的。最短為1位元組,最長為8000個位元組,尾部的空白會去掉。

 

text:長寬也是設定的,最長可以存放2G的資料。

 

 

 

第六大類:Unincode字串資料

 

nchar:長度是設定的,最短為1位元組,最長為4000個位元組。不足的長度會用空白補上,儲存一個字元需要2個位元組。

 

nvarchar:長度是設定的,可變的。最短為1位元組,最長為4000個位元組.尾部的空白會去掉。儲存一個字元需要2個位元組。

 

ntext:長度是設定的,最短為1位元組,最長為2G.尾部的空白會去掉,儲存一個字元需要2個位元組。

 

 

 

第七大類:貨幣資料類型

 

money:記錄金額範圍為:-92233720368577.5808至92233720368577.5807.需要8 個位元組。

 

smallmoney:記錄金額範圍為:-214748.3648至214748.36487.需要4個位元組。

 

 

 

第八大類:標記資料

 

timestamp:該資料類型在每一個表中是唯一的!當表中的一個記錄更改時,該記錄的timestamp欄位會自動更新.

 

uniqueidentifier:用於識別資料庫裡面許多個表的唯一一個記錄.

 

 

 

第九大類:二進位碼字串資料

 

binary:固定長度的二進位碼字串欄位,最短為1,最長為8000。

 

varbinary:與binary差異為資料尾部是00時,varbinary會將其去掉。

 

image:為可變長度的二進位碼字串,最長2G。



 

 

 

  

asp.net 資料庫面試題(基礎)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.