02資料庫 二

2023-02-06 23:27:04 字數 4837 閱讀 3359

上節回顧:

sql server 特點、版本、management studio使用

管理資料庫(建立、刪除、修改、匯入匯出、備份還原)

管理資料表(建立表,表關係,資料型別,完整性規則等)

沒有操作成功的:

1.匯入/匯出:在不同格式資料庫匯入匯出時,資料型別對映,會出現錯誤提示,忽略這些錯誤就行了。

2.備份/還原資料庫:因為是資料庫維護的一大項,可以找時間詳細講。

上次作業:根據書上建立blogdb資料庫。

blogdb資料庫的三個表的字段設定比較合理,沒有多餘的項,也沒有缺少的項,怎麼樣做到這樣呢。需要根據資料庫設計的正規化來設計。

完整性規則是為了保證表中的資料正確、一致、有效。

1)資料完整性規則

主鍵不能為空,要唯一,因為乙個主鍵標識一條記錄(實體),如果為空或有重複就不能正確識別。

2)參照完整性規則

外來鍵的值必須參照主鍵的取值,也就是說,外來鍵的值必須有對應的主鍵值。

3)使用者定義完整性規則

主要是取值範圍,例如年齡不能小於0.

為了建立結構合理,冗餘小的資料庫,設計、構造資料表時要遵循一定的規則,就是正規化。

共有6種正規化

從簡單到複雜為:第一正規化(1nf),第二正規化,第三正規化,bc正規化(bcnf),第四正規化,第五正規化。

一般滿足前三個正規化就足夠了。

第一正規化

表中的所有屬性都不能再分割。(每一列都是乙個分量),是關係模式最起碼的要求,不滿足第一正規化的資料庫模式不能稱為關聯式資料庫。

工號姓名固定**和手機

應當將該列分為兩列

工號姓名固定**手機

第二正規化

除了滿足第一正規化,還要做到表中的非主鍵值都依賴於主鍵。如果不符合的要分成兩個表。

學號姓名性別課程號成績

姓名、性別是依賴學號的,成績是依賴課程號的,要分為兩個表。

根據學號能推導出姓名,性別,但是不能推出成績。

學號姓名性別

課程號學號成績

第三正規化

除了滿足第一正規化和第二正規化,還要滿足任何兩個非主鍵欄位不存在函式依賴關係。

商品編號商品名稱單價數量金額

不能有金額=單價*數量這樣的依賴關係

遵循第三正規化就能設計出比較好的資料庫了。

了解:bc正規化

任何欄位都不能被非主屬性決定

姓名國家地區

洲決定有哪些國家

思考:根據這些正規化設計資料庫表字段。

插入記錄:

設定自動增長的列不寫資料,非空的列一定要有資料

要點一下!執行sql語句才能提交。

修改記錄(編輯前200條)

修改外來鍵時要注意,在關聯表中一定要有這個主鍵。

刪除記錄

刪除記錄時要注意,表中的主鍵是否有關聯的外來鍵,要是有關聯外來鍵,需要先刪除關聯的記錄,再刪除本記錄。

否則會違反完整性規則(外來鍵必須有對應的主鍵)。

查詢記錄(前1000條)

少量的運算元據可以使用ssms,一條記錄一條記錄的新增、修改、刪除,如果大批量的資料操作,或者有一些限定條件,就會很麻煩,容易出現錯誤。

再一種情況,操作遠端資料庫伺服器上的資料,網路卻不給力,不能使用遠端桌面、圖形客戶端等,就只能在sqlcmd命令列下操作了。

要解決這種問題,我們的sql語言就要閃亮登場了。

先介紹sql語言中的 select 語句:

select 以記錄的形式返回資料,

from 子句,是表示從表或檢視中查詢資料

where 子句設定查詢條件

例如:select * from users -- *號表示所有列

select username,password from users -- 列之間逗號隔開,效率高

select * from users where username= '張三查詢條件

不過在正式講 sql語言登場前,按照慣例,先補充一些理論依據。

集合運算的理論,是sql語言的理論基礎。

有兩個集合,r和s,裡面有若干元素。

如果要與資料庫聯絡起來,兩個集合就是兩個資料表,其中的元素就是資料表中一條一條記錄。

並 ---- 屬於r或屬於s的元素組成的集合, 記作 r∪s

交 ---- 既屬於r同時也屬於s的元素的集合,記作 r∩s

差 ---- r-s 表示屬於r但是不屬於s的元素集合

s-r 表示屬於s但是不屬於r的元素集合

廣義笛卡爾積 ---- r×s

r和s元組分別為n和m,那麼,r和s的笛卡爾積是乙個 n+m 元的元組集合,新集合中,每個元組的前n個分量來自r的乙個元組,後m個分量來自s的乙個元組,總元組數為r和s元組數的乘積。

rsa b c d e

ra1 rb1 rc1 sd1 se1

ra2 rb2 rc2 sd2 se2

r x s

ra1 rb1 rc1 sd1 se1

ra1 rb1 rc1 sd2 se2

ra2 rb2 rc2 sd1 se1

ra2 rb2 rc2 sd2 se2

這是資料庫中使用的運算方式。

選擇 ---- 選出符合某種條件的記錄組成新的集合。(水平分割,整行),這也是集合的交集運算。

比如: 選擇users表中性別為』男』的記錄

用sql語句來表示選擇

select * from users where ***='男'

投影 ---- 從關係中選擇若干屬性(列)組成新的關係。

比如:選擇所有記錄的username列和password列組成乙個新錶,就是對原來的表做投影運算。

select username,password from users

選擇並投影

select username,password from users where ***='男'

連線 ---- 從兩個關係r和s的笛卡爾積中選擇滿足條件的元組組成新的關係。

先做笛卡爾積,再選擇。

在連線運算中,如果要求兩個關係中進行比較的列必須是相同的屬性組,且在結果集中去掉重複性列,這種叫自然連線。 記作 r∞s

select

from users, article

where

用 users表和arctic表來做自然連線,新錶會很大。

回頭再看第二正規化其實就是不要做連線

有了這些理論依據,可以學習sql語言了。

sql是structurequerylanguage的縮寫,意思是結構化查詢語言。

sql語言是關係型資料庫管理系統的標準語言,用來對資料庫進行各種操作。

sql語言是面向集合的、描述性、非過程化語言。它功能強,效率高,簡單易學易維護。

面向集合:sql的操作物件是乙個或多個關係,操作的結果也是是乙個關係;

非過程化:使用者只需要提出幹什麼,dbms即可把結果返回給使用者,至於怎麼幹由dbms解決;

能以多種方式使用:可以直接以命令方式互動使用,也可嵌入到宿主語言中使用;

一體化特點:具有查詢、操作、定義、控制等四種語言一體化的特點,每種操作只需一種操作符;

然而sql語言同時也出現了這樣乙個問題:它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而絕大部分應用都是乙個完整的過程,顯然用sql完全實現這些功能是很困難的。所以大多數資料庫公司為了解決此問題,作了如下兩方面的工作:

(1)擴充sql,在sql中引入過程性結構;

(2)sql嵌入到高階語言中,以便一起完成乙個完整的應用。

sql語言按功能可分為四部分:資料控制功能、資料查詢功能、資料操縱功能。

讀音:drop 的如啊坡 alter 奧特兒 grant 個如昂特 revoke 瑞外歐克

sql功能命令動詞描述

資料定義功能 createdropalter定義、刪除、修改資料庫中的物件

資料查詢功能select實現查詢資料的功能

資料操縱功能insertupdatedelete實現對資料的增加、刪除和修改

資料控制功能grantrevoke控制使用者對資料庫的操作許可權

對應的,sql語言也分為:

資料查詢語言dql,資料操縱語言dml,資料定義語言ddl,資料控制語言dcl。

既然是語言就需要有語法,就是要按一定的格式來寫

常量,也稱為文字值或標量值,是給定的不變的值。

常用常量型別:

字串常量

用單引號括起來的字元或字串

例如:'a', 'hello'

與資料表users結合, username='張三' ***='男'

整型常量

不帶小數點的十進位制資料

123, -1

年齡 age=20

日期時間常量

單引號括起來的表示日期時間的字串

'2012-01-01', '00:00:00', '2012-01-01 00:00:00'

regtime='2012-01-01 00:00:00'

實型常量

有兩種:定點表示和浮點(科學計數法)表示

1234.56, 1.23e5

貨幣常量

以$符號作為字首的整型或實型資料

$10, $10.00

二進位制常量

以0x開始的十六進製制資料

0x12af

概述在數學中,求兩個數的和,比如求1+2的和,可以寫 1+2= ,這裡的1 和 2 就是常數,是直接給出的。

如果,先不告訴你幾加幾,只告訴你兩個數求和,那麼我們可以先列乙個方程式 z=x+y, 當給出x和y的值時,就可以寫了

x=1y=2

z=x+y=1+2=3

再算其他值時同樣道理

程式語言中,包括t-sql也一樣,要能有個像x,y這樣能臨時替代實際資料的東東,就是變數。

資料庫 實驗二

實驗二 sql server2008資料查詢 資料查詢是資料庫中最常見的操作。實驗目的 掌握sql server2008資料查詢語言的使用,能獨立按要求對資料庫進行指定的查詢操作。實驗要求 1 每完成乙個任務,擷取全螢幕快照1 3張作為中間步驟和結果的貼圖,貼上在最後的實驗報告中。2 思考題可以選做...

二 資料庫試卷A

1 資料庫 db 資料庫系統 dbs 和資料庫管理系統 dbms 之間的關係是 a a.dbs包括db和dbms b.dbms包括db和dbs c.db包括dbs和dbms d.dbs就是db,也就是dbms 2 使用者或應用程式看到的那部分區域性邏輯結構和特徵的描述是 c a.模式 b.物理模式 ...

資料庫種類與資料庫結構

2 網狀結構模型 某醫院醫生 病房和病人之間的聯絡。即每個醫生負責 三個病人,每個病房可住一到四個病人。如果將醫生看成是乙個資料集合,病人和病房分別是另外兩個資料集合,那麼醫生 病人和病房的比例關係就是m n p 即m個醫生,n個病人,p間病房 這種資料結構就是網狀資料結構,它的一般結構模型,記錄r...