上節回顧:
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...