資料庫表管理

2021-06-07 22:15:27 字數 2023 閱讀 6062

資料的完整性=精確性+可靠性

資料喪失完整性體現在:資料可中存在不符合規定的資料或錯誤的資訊,例如:學號重複,身份證號重複,年齡為負數,薪水為負數,性別不存在

資料喪失完整性:是在設計表結構的時候造成的。

保證資料的完整性:在設計表結構的時候,新增約束。

約束的分類:

1.實體[行]完整性約束:保證行記錄的唯一

主鍵約束 primary key

自動增長列約束 identity(起點,步長)

唯一約束 unique

2.域[列,字段]完整性約束:保證列的資料型別,格式,取值範圍,長度正確

檢查約束 

外來鍵約束

預設值約束

非空約束

3.引用完整性約束:建立在主外來鍵關係之上,保證表與表之間的資料完整性

作用:1.禁止在子表中,新增主表中不存在的記錄

2.禁止修改主表中,被子表引用的記錄

3.禁止刪除主表中,被子表引用的記錄

4.使用者自定義完整性約束:高階約束

觸發器儲存過程

規則1.主鍵約束 primary key

作用:新增了主鍵約束的列,行記錄具有唯一性

問題:乙個表中允許有幾個主鍵?

答案:乙個表中只允許存在1個主鍵

問題:選取某列作為主鍵列的原則?

答案:1.最少性:盡可能選擇單列,作為主鍵

2.穩定性:盡可能選取,更新比較少的列

當乙個表中,不存在,行記錄唯一的列,沒有符合作為主鍵列原則的列時?

答案:為該錶新增乙個標識列,作為主鍵,唯一的標識行記錄,沒有實際意義。

*****由多列組成的主鍵,稱為,組合 主鍵   此做法不推薦

2.唯一約束 unique

作用:新增了唯一約束的列,行記錄具有唯一性

使用場合:一般是非主鍵列

區別:唯一約束和主鍵約束的區別

唯一約束的列,行記錄允許空值,但只允許有1個空值

主鍵約束的列,行記錄不允許有空值

3.標識列約束 identity(起點,步長)

作用:新增了標識列約束的列,行記錄不需要賦值,會自動增長

使用場合:一般用在 整形的列上

*************************=

4.檢查約束 check

作用:約束當前列的取值範圍,格式,長度

例如:check(age>0 and age<200) 限制年齡為0-200

check(***='男' or ***='女') 限制性別

check(tel like '0716%' and len(tel)=11) 限制荊州**格式以0716開頭,長度為11個字元

check(tel like '186%' or tel like '159%')

5.預設值約束 default

作用:用於向列中,插入預設值,有預設值約束的列,可賦值,可不賦值

例如:default(18) 年齡預設為18

default('男')性別預設是 男

default('位址不詳') 位址預設 不詳

default(getdate()) 預設為當前時間

6.非空約束 not null

作用:約束當前列的值,不允許為空

注意:空格也算乙個字元,不是null

7.外來鍵約束 foreign key

作用:1.禁止在子表中,新增主表中不存在的記錄

2.禁止修改主表中,被子表引用的記錄

3.禁止刪除主表中,被子表引用的記錄

外來鍵所在的表是子表,此子表是相對於主表而言的。

問:乙個表中允許有幾個主鍵?幾個外來鍵?

1個主鍵,n個外來鍵

語法:子表中的外來鍵列 int foreign key references 主表名(主表中的主鍵)

注意:1.建立主外來鍵關係的列,列名可不同,但是資料型別和長度必須相同

2.被引用的列,必須是主鍵,而且,具有唯一性

經驗:1.如何辨別主表,子表

主表和子表都是相對的。

a.看錶的關係圖,鑰匙指向的是主表

b.邏輯判斷,先存在一定是主表

資料庫(1) 資料庫管理和表管理

一 資料庫管理 1 查詢所有資料庫 show databases 2 建立資料庫 create database name default character set utf8 指定預設字符集建立資料庫可以省略 3 檢視資料庫的預設字符集 show create database name 4 資料...

管理資料庫和表

第乙個字元必須是 unicode中定義的字母包括拉丁字母a z和a z,以及來自其他語言的字母字元 以及下劃線 符號或者數字符號 識別符號不能是所用rdbms的保留字。不允許嵌入空格或其他特殊字元。2.刪除資料庫 語法為 drop database 3.整型資料型別 tinyint 型 1個位元組 ...

管理資料庫與表

一 資料庫的建立與刪除 1.介紹 資料庫是用於儲存和操作諸如表,資料庫檢視,觸發器,儲存過程等資料的物件的集合。2.建立資料庫 3.顯示資料庫 show databases語句顯示mysql資料庫伺服器中的所有資料庫。其中 information schema,performance schema和...