日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

面试题: 数据库 真实面试题已看1 操作语句 存储过程 挺好 sql语句练习 有用

發(fā)布時(shí)間:2024/4/13 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试题: 数据库 真实面试题已看1 操作语句 存储过程 挺好 sql语句练习 有用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天到某公司筆試,數(shù)據(jù)庫(kù)考的比較多,但是說(shuō)老實(shí)話,考的也比較基礎(chǔ)。現(xiàn)在趁回憶得起來(lái),將數(shù)據(jù)庫(kù)知識(shí)簡(jiǎn)單整理如下:

?一、建表指令

?

比如創(chuàng)建一個(gè)學(xué)生表student,它由學(xué)號(hào)Sno,姓名Sname,性別Ssex,年齡Sage,所在系Sdept五個(gè)屬性組成。其中學(xué)號(hào)不能為空,值是唯一的,并且姓名取值也唯一。

?

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

?

  • 修改列名稱,語(yǔ)法:alter table 表名稱 change 字段名稱 新名稱 類型[ 約束]
  • ?

    ?

    ?

    三、建立與刪除索引

    ?

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

    ?

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

    ?

    2、刪除索引

    ? ? ? ? ? ? ?

    DROP??INDEX??Student??S_INDEX

    ?

    ?

    ?

    四、連接查詢。

    ?

    在對(duì)表進(jìn)行連接時(shí),最常用的連接條件是等值連接,也就是使兩個(gè)表中對(duì)應(yīng)列相等所進(jìn)行的連接通常一個(gè)列是所在表的主鍵,另一個(gè)列是所在表的主鍵或外鍵,只有這樣的等值連接才有意義。(隱式內(nèi)連接)

    ?

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

    ?

    查詢所有學(xué)生所選的課程名稱:

    ?

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

    ?

    ?

    ?

    五、單表查詢時(shí),去掉重復(fù)行

    ?

    比如查詢Student表中所有系的名稱,去掉重復(fù)行

    ?

    Select??distinct??age??From??student

    ?

    ?

    ?

    六、常用條件表達(dá)式運(yùn)算符IN,NOT IN;between,and,not like.

    ?

    在上面的Student表和enrolls表中,查詢成績(jī)?cè)?strong>80分以上的的學(xué)號(hào)和姓名。 ? 成績(jī)?cè)?0分以上的為子查詢 ?然后讓學(xué)生的學(xué)號(hào)在子查詢的結(jié)果中

    ?

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

    ?

    上面的SQL語(yǔ)句也是嵌套查詢。

    ?

    ?

    ?

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

    ?

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

    ?

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

    ?

    Select??department??From??Student??Group??BY?department??Having??COUNT(*) >= 3。 ?這個(gè)好像不對(duì)

    ?

    ?

    ?

    八、插入數(shù)據(jù)

    ?

    1、單行插入,比如在上面的Student表中插入學(xué)生王強(qiáng)的信息。

    ?

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

    ?

    Values(‘2005012’,’王強(qiáng)’,’男’,18,’計(jì)算機(jī)’)

    ? insert ?多個(gè)value ?這樣執(zhí)行效率要 小于 values()

    2、多行插入,比如每個(gè)學(xué)生都要修操作系統(tǒng)c2這門課,將選課信息加入表enrolls中。

    ?

    INSERT??INTTO??enrolls(sno,cno)

    ?

    SELECT??Sno, ‘c2’??FROM??Student

    ?

    ?

    ?

    九、修改數(shù)據(jù)

    ?

    比如給enrolls這個(gè)表中選修了操作系統(tǒng)這門課的學(xué)生的成績(jī)修改為60分。

    ?

    UPDATE enrolls

    ?

    SET grade = 60

    ?

    WHER cno IN

    ?

    (SELECT??cno??FROM??courses??WHERE??cname??= ‘操作系統(tǒng)’)

    ?

    ?

    ?

    十、刪除數(shù)據(jù)

    ?

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

    ?

    Delete???from??Student???where??Sage > 20

    ?

    刪除整張表的數(shù)據(jù)?delete from Student

    ?

    ?

    ?

    十一、存儲(chǔ)過(guò)程(兩個(gè)參數(shù),根據(jù)輸入的參數(shù)查詢好數(shù)據(jù)后返回給輸出的參數(shù))

    ?存儲(chǔ)過(guò)程案例:

    比如創(chuàng)建一個(gè)存儲(chǔ)過(guò)程procGetDepName,它帶有1個(gè)輸入?yún)?shù)@sno,還帶有1個(gè)輸出參數(shù)@DepartmentName,功能:根據(jù)輸入的學(xué)號(hào),找到該生所在的院系,輸出院系名稱。

    ?

    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

    ?

    ?

    十二、數(shù)據(jù)庫(kù)常用數(shù)據(jù)類型和作用。

    ?

    第一大類:整數(shù)數(shù)據(jù)

    ?

    bit:bit數(shù)據(jù)類型代表0,1或NULL,就是表示true,false.占用1byte.

    ?

    int:以4個(gè)字節(jié)來(lái)存儲(chǔ)正負(fù)數(shù)。可存儲(chǔ)范圍為:-2^31至2^31-1。

    ?

    smallint:以2個(gè)字節(jié)來(lái)存儲(chǔ)正負(fù)數(shù)。存儲(chǔ)范圍為:-2^15至2^15-1。

    ?

    tinyint:?是最小的整數(shù)類型,僅用1字節(jié),范圍:0至此^8-1。

    ?

    ?

    ?

    第二大類:精確數(shù)值數(shù)據(jù)

    ?

    numeric:表示的數(shù)字可以達(dá)到38位,存儲(chǔ)數(shù)據(jù)時(shí)所用的字節(jié)數(shù)目會(huì)隨著使用權(quán)用位數(shù)的多少變化。

    ?

    decimal:和numeric差不多。

    ?

    ?

    ?

    第三大類:近似浮點(diǎn)數(shù)值數(shù)據(jù)

    ?

    float:用8個(gè)字節(jié)來(lái)存儲(chǔ)數(shù)據(jù).最多可為53位。范圍為:-1.79E+308至1.79E+308。

    ?

    real:位數(shù)為24,用4個(gè)字節(jié),數(shù)字范圍:-3.04E+38至3.04E+38。

    ?

    ?

    ?

    第四大類:日期時(shí)間數(shù)據(jù)

    ?

    datatime:表示時(shí)間范圍可以表示從1753/1/1至9999/12/31,時(shí)間可以表示到3.33/1000秒.使用8個(gè)字節(jié)。

    ?

    smalldatetime:表示時(shí)間范圍可以表示從1900/1/1至2079/12/31,使用4個(gè)字節(jié)。

    ?

    ?

    ?

    第五大類:字符串?dāng)?shù)據(jù)

    ?

    char:長(zhǎng)度是設(shè)定的,不可變的。最短為1字節(jié),最長(zhǎng)為8000個(gè)字節(jié).不足的長(zhǎng)度會(huì)用空白補(bǔ)上。

    ?

    varchar:長(zhǎng)度是可變的。最短為1字節(jié),最長(zhǎng)為8000個(gè)字節(jié),尾部的空白會(huì)去掉。

    ?

    text:長(zhǎng)寬也是設(shè)定的,最長(zhǎng)可以存放2G的數(shù)據(jù)。

    ?

    ?

    ?

    第六大類:Unincode字符串?dāng)?shù)據(jù)

    ?

    nchar:長(zhǎng)度是設(shè)定的,最短為1字節(jié),最長(zhǎng)為4000個(gè)字節(jié)。不足的長(zhǎng)度會(huì)用空白補(bǔ)上,儲(chǔ)存一個(gè)字符需要2個(gè)字節(jié)。

    ?

    nvarchar:長(zhǎng)度是設(shè)定的,可變的。最短為1字節(jié),最長(zhǎng)為4000個(gè)字節(jié).尾部的空白會(huì)去掉。儲(chǔ)存一個(gè)字符需要2個(gè)字節(jié)。

    ?

    ntext:長(zhǎng)度是設(shè)定的,最短為1字節(jié),最長(zhǎng)為2G.尾部的空白會(huì)去掉,儲(chǔ)存一個(gè)字符需要2個(gè)字節(jié)。

    ?

    ?

    ?

    第七大類:貨幣數(shù)據(jù)類型

    ?

    money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8?個(gè)字節(jié)。

    ?

    smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個(gè)字節(jié)。

    ?

    ?

    ?

    第八大類:標(biāo)記數(shù)據(jù)

    ?

    timestamp:該數(shù)據(jù)類型在每一個(gè)表中是唯一的!當(dāng)表中的一個(gè)記錄更改時(shí),該記錄的timestamp字段會(huì)自動(dòng)更新.

    ?

    uniqueidentifier:用于識(shí)別數(shù)據(jù)庫(kù)里面許多個(gè)表的唯一一個(gè)記錄.

    ?

    ?

    ?

    第九大類:二進(jìn)制碼字符串?dāng)?shù)據(jù)

    ?

    binary:固定長(zhǎng)度的二進(jìn)制碼字符串字段,最短為1,最長(zhǎng)為8000。

    ?

    varbinary:與binary差異為數(shù)據(jù)尾部是00時(shí),varbinary會(huì)將其去掉。

    ?

    image:為可變長(zhǎng)度的二進(jìn)制碼字符串,最長(zhǎng)2G。


    十三、C的內(nèi)容

    主要考C的內(nèi)存分配,for循環(huán)的局部性等基礎(chǔ)知識(shí),主要是林銳那本高質(zhì)量C/C++里面后面的習(xí)題。


    十四、C++

    基本不會(huì),因?yàn)閼?yīng)聘的是C++,也因?yàn)檫@個(gè),被筆試給鄙視掉了

    轉(zhuǎn)載于:https://www.cnblogs.com/shan1393/p/9117775.html

    總結(jié)

    以上是生活随笔為你收集整理的面试题: 数据库 真实面试题已看1 操作语句 存储过程 挺好 sql语句练习 有用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。