




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據庫課第 2 天課件一、關于結構化數據1、 結構化數據的定義1)2)一個數據表中,任何一列數據不能細分并且每一列的數據有相同的數據類型2、 結構化數據比較好管理是有序的,有規(guī)律3、 關系數據庫表中的數據全部為結構化數據4、 結構化數據示例二、關于非結構化數據1、 非結構化數據大部分數據為非結構數據2、 生活的非結構化數據隨意的一個普通文件中的數據為非結構化數據例如.txt 文件office 類文件(.doc,.xls,.ppt) pdf 文件exe 文件。3、 下面的數據也為非結構化數據三、關于數據庫范式的概念了解1、 范式規(guī)范+格式2、 內含是指某一個數據表的規(guī)范化程度3、。第 6 范式,
2、或第 6NF數據庫范式有 6 個第 1 范式,或第 1NF第 2 范式,或第 2NF第 3 范式,或第 3NF用戶 ID地址10077881234沙河 12310166991235沙河 12310277881237沙河 123用戶 ID地址10077881234沙河 12310166991235沙河 12310277881237沙河 123四、數據庫的第 1 范式1、 定義這個數據表中的數據滿足結構化數據的要求,就是第 1 范式。2、 補充解釋關系型數據庫中所有數據表,均為第 1 范式,即第 1NF五、數據庫建表字段類型,da1、 整型ype有 N 多整型,只需要一個,或eger2、 浮點類型
3、float real moneydecimal(n,m)-不同數據庫名稱不相同可以取代碼任何浮點類型3、 字符串類型1)可變長度的字符串類型,2 個varchar(maxlength-byte 字節(jié)為最小nvarchar(maxLength-char 字符為最小)2)固定長度的字符串,2 個char(fixedLength-byte)nchar(fixedLength-char)4、 日期類型datetime MSSQL/dateOracle六、關于浮點類型,decimal 1、 decimal(n,m)MSSQL/MYSSQL2、 number(n,m) Oracle3、 上面的 n 表示數
4、字的最多顯示位數,包括整數與小數點后的位數之和,但不包括小數點本身是整數位及小數位的合起來的最多顯示位數,可以比這個少,但不能多4、 上面的 m 表示表示小數點后面的位數如果超過這個位數,數據庫自動執(zhí)行四舍五入操作5、 示例如下create table USER_REG_2(用戶 IDprimary key, 1 float,2 decimal(5,2)select * from user_Reg_2inserto user_reg_2 values(100,23.33,23.335121234124);-23.33512-23.34inserto user_reg_2 values(101,
5、103.33,103.495121234124);-103.49512-103.50 inserto user_reg_2 values(102,1103.33,1103.495121234124);-有錯,數據超界,最大值為 999.99inserto user_reg_2 values(102,999.99,999.895121234124);-OKinserto user_reg_2 values(103,999.99,999.99421234124);-OK,最大值為 999.99 inserto user_reg_2 values(104,999.99,999.99521234124
6、);-有錯七、關于 varchar/nvarchar 數據類型1、 可變長度字符串,有 2 個 varchar(最大的字節(jié)個數) nvarchar(最大的字符個數)2、 一個漢字要占用 2 個字節(jié)3、 nvarchar(。)與字節(jié)個數沒有關系計量與 java 中的String 相同4、 如果是以字符為一個漢字與一英文字母是同一個計量 與 java 的String 數據類型相同5、 varchar 英文解釋var=variable,可變的,在此表示可變長度 char=字符,在此表示字符串nvarchar 中的 n=native,本地的6、 示例如下-varchar,nvarchar-var=va
7、riable,可變的,n=native,本地的,當地的create table USER_REG_3(用戶 IDprimary key,name varchar(4) not null,-表示 name 最多 2 個漢字name2 nvarchar(4) not null-表示 name2 最多 4 個漢字)select * from user_reg_3inserto user_Reg_3 values(100,);inserto user_Reg_3 values(101,2,2);-有錯,name 的長度越界,name 此時有5 個字節(jié),一個漢字占用 2 個字節(jié)inserto user_
8、Reg_3 values(101,四);-OK八、char/nchar 數據類型1、 固定長度字符串2、 char(固定長度的字節(jié)個數)無論多少字符,這個字段的長度不變,是定長3、 nchar(固定長度的字符個數) 4、 char 解釋char(4)輸入1234,則為1234輸入123,則為123 ,自動補充 1 個空格輸入1,則為1 5、 nchar 解釋nchar(4),自動補充 3 個空格輸入班號 01,則為班號 01輸入班號,則為班號,自動補充 2 個英文空格輸入班,則為班6、 出錯的地方在,自動補充 3 個英文空格數據查詢時有錯,java 的 jdbc 查詢7、 示例如下九、-cha
9、r/ncharcreate table student(stud_idprimary key, class_id char(4) not null, class_id2 nchar(4) not null)select * from studentinserto student values(100,QH01,01); -OKinserto student values(101,01,清 01); -OK,class_id=01,class_id=清 01 inserto student values(102,2,1); -有錯,class_id 越界十、關于 datetime 數據類型1、
10、MSSQL/datetime的日期類型2、 可以將日期類型設想為一個 double 數據類型整數部分表示天數小數部分表示當天的時間3、 在 MSSQL、 1990-3-211988-7-141999-9-2中直接用字符串表示日期4、 在 oracle 的日期表示方式與此不相同5、 示例如下十一、 關于數據的冗余1、 冗余沒有意義的多余沒有意義的重復2、 數據庫中的冗余因為某些原因,有重復的十二、 數據庫主鍵的概念與設計1、 語法,這些沒有存在意義重復,就是冗余數據字段 A數據類型 primary key, 2、 主鍵字段的數據類型可以任意數值類型字符串類型(varchar,char)日期類型3
11、、 主鍵的值不能為空也就是 not null4、 主鍵最少有 2 個節(jié)約束不能為空在不,這個字段的值是惟一的5、 示例如下create table student_2( stud_idprimary key, birthday datetime not null)create table student_2( stud_idprimary key, birthday datetime not null)select * from student_2inserto student_2 values(100,1988-8-9)inserto student_2 values(101,1988080
12、9)-沒有錯,但不規(guī)范 inserto student_2 values(102,null);-有錯,不能為空十三、 關于自動主鍵1、 自動主鍵表示這個字段的值由數據庫當前表自動管理2、 數值可以自動加指定步長3、 自動主鍵的數據類型只能為不能為字符串,或日期4、 語法字段 Aidentity(初始值,步長) primary key,初始值與步長為 1 時,可以省略5、 自動主鍵只存在于MSSQL/中6、 Oracle 沒有自動主鍵但有序列號,作用類似,但不是自動主鍵7、 示例如下十四、 數據庫第 2 范式精通1、 一個數據表數據格式2、 每個字段必須與主鍵有直接的依賴關系3、 內含建表時,不
13、要將沒有依賴關系的字段放入此數據表中,否則產生4、 示例如下。-第 2 范式,下面的每個字段都與主鍵有直接關聯(lián)關系create table student_5(-滿足第 2 范式stud_idprimary key, name varchar(20),sex nchar(1),在第 1 范式基礎上,非主鍵字段與主鍵字段之間必須有依賴關系create table student_3(stud_ididentity(1000,1) primary key, name varchar(20) not null)select * from student_3inserto student_3 valu
14、es(); inserto student_3 values() inserto student_3 values(五五); create table student_4(stud_ididentity primary key,-省略初始值,則初始值為 1 name varchar(20) not null)select * from student_4inserto student_4 values(); inserto student_4 values() inserto student_4 values(五五);birthday datetime, mobile varchar(50)c
15、reate table student_6(-不滿足第 2 范式stud_idprimary key, name varchar(20),sex nchar(1), birthday datetime,助教 varchar(20),-不是第 2 范式型號 varchar(30), -不是第 2 范式工信部 varchar(100),-是第 2 范式varchar(100)-不是第 2 范式)十五、 SELECT 語法的基本用法1、 語法select 字段 1,字段 2,,字段 Nfrom 數據表 where 條件 1and(或 or)條件 2and(或 order by 排序字段 1,字段 2
16、,字段 n2、 如果想要一個數據表的全部字段,則可以用select * 3、 示例如下or)條件 n十六、 針對指定的查詢1、 針對指定的主鍵查詢每次只能查詢一條2、 語法select * from 數據表 where 主鍵字段=主鍵的值3、 示例如下select * from student_5 where stud_id=10003select * from student_5select * from student_5 where sex=女 and birthday 1990-1-1 select * from student_5 where sex=男 and birthday 1
17、990-1-1 select * from student_5 where sex=男 and birthday 日期格式的字符串 日期字段日期格式的字符串日期字段日期格式的字符串日期字段=2008-2-2and ruxue_time=20 and age=1980-9-1 and birthday1993-9-1只能是一個集合中的幾個值之一sex in(男,女)class_id in(java 框架,安卓開發(fā),ASP.NET)二十五、關于數據表設計中的字段約束針對某一些指定的數值1、 設計方法1字段 A數據類型 check(字段 A in(值 1,值 2,值 n), 2、 設計方法2,約束作
18、為獨立字字段 A數據類型,check(字段A in(值 1,值 2,值 n), 3、 示例如下create table student_3(-滿足第 2 范式 stud_ididentity(10000,1) primary key, name varchar(20),sex nchar(1) check(sex in(男,女), birthday datetime,mobile varchar(50)drop table student_3create table student_3(-滿足第 2 范式 stud_ididentity(10000,1) primary key, name v
19、archar(20),sex nchar(1) , birthday datetime, mobile varchar(50),check(sex in(男,女)-將 sex 的約束由字段設計行,移到最后的獨立設計行)select * from student_3inserto student_3 values(張平平,你,1994-9-24,1392763322);-有錯,sex 只能為:男,女inserto student_3 values(張平平,女,1994-9-24,1392763322); inserto student_3 values(平,男,1991-8-4,13927633
20、22);二十六、1、 語法有條件刪除數據表中的數據delete from 數據表 where 查詢條件2、 如果針對主鍵,則一次只能刪除一條3、 示例如下二十七、1、 語法有條件修改數據表中update 數據表名稱 set 字段 1值 1,字段 2值 2,字段 n=值 n where 查詢條件2、 如果沒有查詢,則改這個數據表的全部數據3、 示例如下二十八、刪除數據與刪除數據表的區(qū)別1、 刪除數據是刪除一個數據表中的部分,或全部數據但這個表還存在,也就是這個數據表的空間,或房子還在delete from 數據表 where 查詢條件如果不寫查詢條件,則刪除這個數據表的全部數據2、 刪除數據表表示刪除這個表的空間,或房間刪除后,不能執(zhí)行查詢,drop table 數據表名稱數據等操作updatestudent_3setname= 李 小 波 ,birthday=1990-3-1,mobile=62789977where stud_id=10005update student_3 set name=,birthday=1988-7-19,mobile=62
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 掛車租出合同6篇
- 場地有償使用合同7篇
- 公寓式房屋轉租合同
- 廣告制作安裝合同書
- 臨街商鋪租賃合同
- 工程降水分包合同
- 土地利用規(guī)劃的制定與執(zhí)行指導書
- 員工租賃車輛協(xié)議
- 信封印刷合同6篇
- 圍墻工程包工合同
- 2025年安全員C證(專職安全員)考試題庫
- 地理-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 醫(yī)療衛(wèi)生系統(tǒng)招聘考試(中醫(yī)學專業(yè)知識)題庫及答案
- 貴州省貴陽市2024-2025學年九年級上學期期末語文試題(含答案)
- 小巴掌童話課件
- 教科版六年級科學下冊全冊教學設計教案
- 部編版小學五年級下冊《道德與法治》全冊教案含教學計劃
- 2024年青島遠洋船員職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 定額〔2025〕1號文-關于發(fā)布2018版電力建設工程概預算定額2024年度價格水平調整的通知
- 2024建筑施工安全生產隱患識別圖合集
- 2025年江蘇南京技師學院招聘工作人員19人高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論