![我的數(shù)據(jù)庫原理及應(yīng)用學(xué)習(xí)筆記_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/d843cb89-d869-4ae0-9396-9a973c6626e3/d843cb89-d869-4ae0-9396-9a973c6626e31.gif)
![我的數(shù)據(jù)庫原理及應(yīng)用學(xué)習(xí)筆記_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/d843cb89-d869-4ae0-9396-9a973c6626e3/d843cb89-d869-4ae0-9396-9a973c6626e32.gif)
![我的數(shù)據(jù)庫原理及應(yīng)用學(xué)習(xí)筆記_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/d843cb89-d869-4ae0-9396-9a973c6626e3/d843cb89-d869-4ae0-9396-9a973c6626e33.gif)
![我的數(shù)據(jù)庫原理及應(yīng)用學(xué)習(xí)筆記_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/d843cb89-d869-4ae0-9396-9a973c6626e3/d843cb89-d869-4ae0-9396-9a973c6626e34.gif)
![我的數(shù)據(jù)庫原理及應(yīng)用學(xué)習(xí)筆記_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/d843cb89-d869-4ae0-9396-9a973c6626e3/d843cb89-d869-4ae0-9396-9a973c6626e35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 數(shù)據(jù)庫原理及開發(fā)應(yīng)用(總結(jié)的知識(shí)儲(chǔ)備)1. 數(shù)據(jù)庫就是儲(chǔ)存數(shù)據(jù)的倉庫,專業(yè)的解釋就是對(duì)數(shù)據(jù)存儲(chǔ)和管理的軟件和數(shù)據(jù)本身統(tǒng)稱為數(shù)據(jù)庫。2. 大型數(shù)據(jù)庫有oracle,sql sever屬于中型數(shù)據(jù)庫,小的太多忽略不計(jì),要知道就上網(wǎng)查。3. 數(shù)據(jù)庫管理系統(tǒng)的主要功能:數(shù)據(jù)庫定義功能;數(shù)據(jù)存取功能;數(shù)據(jù)庫運(yùn)行管理;數(shù)據(jù)庫的建立和維護(hù)功能。4. 數(shù)據(jù)庫的三級(jí)模式構(gòu):外模式、模式和內(nèi)模式。(外模式即是用戶模式可以多個(gè),模式只能一個(gè),內(nèi)模式就是儲(chǔ)存模式)。5. ddl: 數(shù)據(jù)庫模式定義語言ddl(data definition language)。6. dml:數(shù)據(jù)操作語言(datamanipulatio
2、nlanguage)。7. dbms: 數(shù)據(jù)庫管理系統(tǒng)(database management system)。8. dbs:數(shù)據(jù)庫系統(tǒng)(database system)。9. dba:數(shù)據(jù)庫管理員(database administrator)。從三方面學(xué)習(xí)數(shù)據(jù)庫1. 數(shù)據(jù)庫是如何儲(chǔ)存數(shù)據(jù)的?(主鍵,外鍵,唯一鍵)2. 數(shù)據(jù)庫是如何操作數(shù)據(jù)的?(insert update delete)3. 數(shù)據(jù)庫是如何顯示數(shù)據(jù)的?(select重點(diǎn))操作及代碼1. crate table 語句:create table student(stu_name nvarchar(30) not null,stu_
3、numb int not null,stu_sex nchar(1) not null);2. 主鍵外鍵:stu_numb int primary key;(可以在int 和primary中間加上constraint 約束名稱)。 sch_add nvarchar(30) foreign key references student (stu_numb); 順帶回憶一下主鍵和外鍵的定義:主鍵:能夠唯一標(biāo)示一個(gè)事物的的字段或者多個(gè)字段的組合,叫主鍵。(含有主鍵的表叫做主鍵表,主鍵一般是整數(shù)不建議用字符串,而且一般用代理主鍵不要用業(yè)務(wù)主鍵,也就是說不要用有業(yè)務(wù)的字段作為主鍵,一般就用沒有含義的編號(hào)
4、當(dāng)做主鍵。) 外鍵:如果一個(gè)表中的若干個(gè)字段來自若干個(gè)表的主鍵或者唯一鍵,就稱這若干個(gè)字段為外鍵。(含有外鍵的表叫做外鍵表,通常都來自主鍵,因?yàn)槲ㄒ绘I可能為null,而且外鍵不一定來自別的表可能就來自本表)。自認(rèn)為總結(jié)的超好。 哦哦,還有刪除表的時(shí)候先刪外鍵表,不然先刪主鍵會(huì)報(bào)錯(cuò),原因很簡單,外鍵引用錯(cuò)誤。 沒完,主鍵約束:不允許重復(fù)元素,避免了數(shù)據(jù)的冗余。外鍵約束:從語法上保證所關(guān)聯(lián)的事物一定存在,而且事物和事物之間的關(guān)系是通過外鍵來體現(xiàn)的。 3. check語句: stu_mark int check(stu_mark=60 and stu_mark=1500 and salary =15
5、00 and salary =5000是不可取的,這兩個(gè)命令是一起的,中間不能打分號(hào)。查找另外一個(gè)范圍的數(shù)據(jù)時(shí)可以用以下語句:select * from empwhere salary not between 1500 and 5000(另外一種是:select * from empwhere salary =5000 )4. in【若干個(gè)孤立的值】select * from emp where salary in (1500,3000)等價(jià)于select * from emp where salary =1500 or salary =3000select * from emp where
6、salary not in (1500,3000)等價(jià)于select * from emp where salary 1500 and salary 3000 也作select * from emp where salary !=1500 and salary != 3000-數(shù)據(jù)庫中不等于有兩種寫法: != 和 推薦使用第二種。-or取反時(shí)記得改為and,呵呵。5. top【最前面的若干個(gè)記錄,專屬于sql server不可移植到其他數(shù)據(jù)庫】select top 5 * from emp;select top 15 percent * from emp;-此語句輸出的是百分之15的行數(shù)的所有
7、字段,如果經(jīng)計(jì)算百分之15是2.1,則輸出的是三行。而且 * 不能省略,否則報(bào)錯(cuò)。6. null【沒有值 空值】零和null不一樣,null表示沒有值,而零表示一個(gè)確定的值。null不能參與這些運(yùn)算: != =可以參與如下運(yùn)算:is is not (下面的例子中emp 表示表名,而 comm表示字段名)select * from emp where comm is null;-輸出的是獎(jiǎng)金為空的員工的信息。select * from emp where comm is not null;-輸出的是獎(jiǎng)金不為空的員工信息。select * from emp where comm null;-輸出為
8、空errorselect * from emp where comm != null;-輸出為空errorselect * from emp where comm = null;-輸出為空error任何類型的數(shù)據(jù)都允許為nullcreate table t1 (stu_name nvarchar(30),stu_id int ,stu_sex nchar(1);insert into t1 values(null,null,null);-正確任何數(shù)字與null參與數(shù)學(xué)運(yùn)算的結(jié)果都是null(后面例子中empna表示員工名字,empsal表示月薪,empid表示員工號(hào)碼,comm與上面一樣表示年
9、終獎(jiǎng)金)select empid,empna,empsal * 12 + comm as ”年薪” from emp;運(yùn)行結(jié)果是最后一個(gè)字段都為null,證明了上面的說法。另外一種正確的寫法:select empid,empna,empsal * 12 + isnull(comm.,0) as “年薪”from emp;關(guān)于函數(shù) isnull(comm.,0)的解釋:如果comm的值為null則返回0,如果不是null則返回原本的comm值。7. order by【以某個(gè)字段排序】order by a,b按a,b都按升序排列。order by a,b desca升序,b,降序order by
10、a desc, ba 降序,b升序order by a desc,b desca,b 都按降序排列。-解釋:默認(rèn)是按照升序排列的,升序是asc 可以不寫。(ascending,descending)8. 模糊查詢【搜索時(shí)經(jīng)常使用】格式:select 字段的集合 from 表名 where 某個(gè)字段的名字 like 匹配條件(匹配條件通常含有通配符 % )通配符表示任意零個(gè)或者多個(gè)字符select * from emp where ename like %a%-只要含a的ename 就輸出。select * from emp where ename like a%-ename只要首字母為a就輸出
11、。select * from emp where ename like %a-ename 只要以a結(jié)尾就輸出。_【下劃線】表示任意單個(gè)字符select * from emp where ename like _a%-ename只要第二個(gè)字母為a就輸出。a-f a到f 中的任意單個(gè)字符select * from emp where ename like _a-f%-ename中只要第二個(gè)字母是在a到f中的就輸出。a,f a或fa-c不是a到c中的任意一個(gè)字母,看清楚是 不是 自己瞎了別怪我沒提醒。select * from emp where 部門ip like _發(fā),聯(lián)%(這個(gè)語句是從sql
12、sever里面復(fù)制的,感覺顏色還蠻好看的)注意:匹配的條件必須用單引號(hào)括起來,不能傻不拉幾的用雙引號(hào),后面來解釋一下要搜索帶 % _ 的字段時(shí)的方法。直接把在sql sever里的復(fù)制看:create table people (name nvarchar(30) not null, age int)insert into people values (張三,32);insert into people values (tom,66);insert into people values (a_b,22);insert into people values (c%d,44);insert int
13、o people values (abc_fe,56);insert into people values (snail,18);insert into people values (施寧一,19);insert into people values (c%,65);insert into people values (longs,100);select * from peopleselect * from people where name like %/% escape / ; -把含有%的字段輸出了select * from people where name like %/_% esc
14、ape /; -把含有_的字段輸出了噢耶9. 聚合函數(shù)【多行記錄返回至一個(gè)值,通常用于統(tǒng)計(jì)】函數(shù)的分類單行函數(shù)-每行返回一個(gè)值多行函數(shù)-每行返回一個(gè)值聚合函數(shù)是多行函數(shù)例子:select * from people select upper(name) from people ;-單行函數(shù)upper()將每行都返回為大寫的字母。select min(age) from people ;-多行函數(shù)將多行中最小的值找出來返回了。聚合函數(shù)的分類:max()min()avg()平均值count()求個(gè)數(shù)count(*)返回表中所有記錄的個(gè)數(shù)select count(*) from people ;-返
15、回了表people中的記錄個(gè)數(shù)。count (字段名)返回字段中包括重復(fù)的記錄的個(gè)數(shù),但是null不會(huì)被當(dāng)做有效的記錄算在個(gè)數(shù)之內(nèi)。count (distinct 字段名)-返回了出去重復(fù)的記錄后的記錄個(gè)數(shù)。注意:判斷下列sql語句是否正確1. select max(sal),min(sal),count(*) from emp;-ok2. select max(sal) “最高薪”,min(sal) “最低薪”,count(*) “員工人數(shù)” from emp; -ok3. select max(sal),lower(ename) from emp ; -error單行函數(shù)和多行函數(shù)不能混用
16、10. group by 【分組 難點(diǎn)】格式: group by 字段的集合功能: 把表中的記錄按照字段分成不同的組。例子: 查詢不同部門的平均工資并且按照升序排列select deptno , avg(sal) from emp group by deptno order by deptno ;注意理解:group by a, b, c的用法 先按a分組,如果a 相同,再按b分組,如果b相同,再按c分組最終統(tǒng)計(jì)的是最小分組的信息一定要明白下列語句為什么是錯(cuò)誤的:select deptno , avg(sal) as “部門平均工資”,enamefrom emp group by deptno
17、select deptno,enamefrom empgroup by deptnoselect deptno, job, salfrom emp group by deptno,job記住:使用group by之后select 中只能出現(xiàn)分組后的整體信息,不能出現(xiàn)組內(nèi)的詳細(xì)信息11. having【對(duì)分組后的信息進(jìn)行過濾 難點(diǎn)】1. having通常是對(duì)分組之后的記錄進(jìn)一步過濾,所以having時(shí)一般先使用group up2. 如果沒有使用group up而使用了having則意味著把所有的內(nèi)容當(dāng)做一組來處理3. having子句出現(xiàn)的字段必須是分組之后組的整體信息,having子句不允許出
18、現(xiàn)組內(nèi)的詳細(xì)信息。4. having子句中不能使用別名,盡管select中能使用別名。5. having和where的異同相同點(diǎn):都是過濾的作用,都不允許使用別名,只允許使用最原始的字段名。不同點(diǎn):where是對(duì)原始數(shù)據(jù)進(jìn)行過濾,而having是對(duì)分組之后的數(shù)據(jù)進(jìn)行過濾,where必須在having前面,否則運(yùn)行出錯(cuò)。(沒試過)例子:select deptno ,avg(sal) “平均工資”,count(*) ”部門人數(shù)”,max(sal) “部門的最高工資”from empwhere sal 2000 -where是對(duì)原始記錄的過濾group by deptnohaving avg(sal)3000 -對(duì)分組之后的記錄的過濾 (where不能出現(xiàn)聚合函數(shù))12. 連接查詢定義:將兩個(gè)或者兩個(gè)以上的表以一定的連接條件連接起來,從中檢索出滿足條件的數(shù)據(jù)。分類內(nèi)連接【重點(diǎn)的重點(diǎn) 也是難點(diǎn)的難點(diǎn)】1. select from a,b 的用法產(chǎn)生的結(jié)果:行數(shù)是a b 的乘積列數(shù)是a b 之和或者說把a(bǔ)表的每一條記錄都和b 表的每一條記錄組合起來了形成的是一個(gè)笛卡爾積 注意:select from a,b 和 select from b,a 是一摸一樣的。2. select from a,b where 的用法其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國純棉棉襖行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年焊泥粉項(xiàng)目可行性研究報(bào)告
- 2025年槽式混合機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年料流開關(guān)項(xiàng)目可行性研究報(bào)告
- 廣西2025年廣西民族大學(xué)招聘教職人員控制數(shù)人員28人筆試歷年參考題庫附帶答案詳解
- 2025至2031年中國單片微電腦繞線機(jī)控制器行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年制冷管項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國CRP定量試劑盒行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年高真冷裱膜項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年中國閃光繼電器數(shù)據(jù)監(jiān)測研究報(bào)告
- (高清版)DB43∕T 1147-2015 太陽能果蔬烘干機(jī)
- 醫(yī)院人體器官捐獻(xiàn)及獲取流程
- 結(jié)腸造瘺還納手術(shù)配合
- 2024年云南省中考物理真題含解析
- 《安防監(jiān)控培訓(xùn)》課件
- 2025年中國艾草行業(yè)市場現(xiàn)狀、發(fā)展概況、未來前景分析報(bào)告
- (閩教版)六年級(jí)下英語教學(xué)計(jì)劃
- 人教版英語高考試卷與參考答案(2024年)
- 河砂、碎石生產(chǎn)質(zhì)量保證措施方案
- 全國教育科學(xué)規(guī)劃課題申報(bào)書:02.《鑄牢中華民族共同體意識(shí)的學(xué)校教育研究》
- 三位數(shù)除以兩位數(shù)過關(guān)練習(xí)口算題大全附答案
評(píng)論
0/150
提交評(píng)論