014 SQL資料庫 表單 資料 約束

2021-10-02 17:34:56 字數 3325 閱讀 7521

約束:

一、概念:對錶中的資料進行限定,保證輸的格式正確性、有效性和完整性。

二、分類

1、主鍵約束:primary key

(1)注意:

a.主鍵預設隱含非空條件和唯一條件

b.一張表只能有乙個字段為主鍵。

c.主鍵就是表中記錄的唯一標識。

(2)建立表時新增主鍵約束。

create table stu(

id int primary key,

`name` varchar(20)

);(3)刪除主鍵約束

alter table stu drop primary key;

(4)建立表後天劍主鍵約束

alter table stu modify id int primary key;

2、自動增長

注意

a.自動增長 一般 是配合主鍵一起使用。

b.自動增長在手動新增是可以寫null,它會自動進行累進。

c.如果手動插入乙個值,那以後自動增長就會在此數值上增加,哪怕把所有數值都刪除,也會如此。

(1)建立是新增自動增長

create table stu(

id int primary key auto_increment,

`name` varchar(20)

);(2)刪除自動增長(注意,看者像是把主鍵也刪除了,但是沒有,因為主鍵刪除使用drop,哈哈)

alter table stu modify id int ;

(3)建立表後再新增自動增長

alter table stu modify id int auto_increment;

3、非空約束:not null,表示被修飾的那一列不能為null

(1)建立表示新增約束:

create table stu(

id int,

name varchar(20) not null

);(2)建立表後新增非空約束

alter table stu modify `name` varchar(20) not null;

(3)刪除非空約束

alter table stu modify `name` varchar(20);

4、唯一約束:unique,表示被修飾的那一列值不能重複

(1) 建立表是新增唯一性約束

create table stu(

id int,

`name` varchar(20) unique);

(2) 執行時新增唯一性約束

alter table stu modify `name` varchar(20) unique;
(3) 刪除唯一性約束 --- 比較特殊

alter table stu drop index `name`;
注意:

1、設定為唯一性的列,如果沒有新增非空條件,則允許有多個 null.

2、注意刪除唯一性的語句比較特殊。

4、外來鍵約束:foreign key

定義:讓表與另外乙個表產生關係,從而保證資料正確定,不能隨便被刪,也不能填不在範圍內資料。

(1)建立表是新增外來鍵

create table 表名(

…,外來鍵列,

constraint 外來鍵名稱 foreign key (外來鍵列) references  主表名(主表列名);

);

說明:

* 「constraint 外來鍵名稱」這個可以不寫,系統預設分配名字。

* 外來鍵名稱是自己給這個鍵定義的名稱,一般寫作:表a_主表_key,就像給某成立的新組織取名。

* 外來鍵列意思就是從當前表中,找乙個列來連線到主表。

* 主表名並不是說這個表是個主要的表,而是被連線的表名,因為一般都被連線的都是主鍵。

*主表列名就是當前表連線到主表中的哪個列,從而形成兩個表之間的關係。

*外來鍵的值可以為null.

舉例:

create table deparment(

id int primary key auto_increment,

dep_name varchar(20),

dep_location varchar(20)

);create table employee(

id int primary key auto_increment,

`name` varchar(20),

age int,

dep_id int,

constraint em_dept_key foreign key (dep_id) references deparment(id)

);

(2)建立了表之後新增外來鍵

alter table 表名add constraint 外來鍵名稱 foreign key (外來鍵列) references 主表名(主表列名);
(3)刪除外來鍵

alter table 表名drop foreign key 外鍵名;
(4)級聯操作

定義:修改主表中的被外來鍵的列,和它關聯的表中所有資料隨之更新。

* 新增級聯關係

alter table 表名 add constraint 外來鍵名稱 foreign key (外來鍵欄位名稱) references 

主表名稱(主列表名稱) on update cascade on delete cascade;

舉例:

alter table employee add constraint em_dept_key foreign key (dep_id) 

references deparment(id) on update cascade on delete cascade;

*分類:

a.級聯新增:on update cascade

b.級聯刪除(慎用):on delete cascade

動態表單資料庫設計

儲存結構去業務化 引數key value 通常系統引數就是這樣,很多配置項也是鍵值的。例如 分配比例,title,某某時間。碼表分為兩種 1 一種是沒有層級的 也就是用組就可以表達的。例如 性別,狀態。2 一種是有層級的 樹形的。例如 地域,樹形分類。樹形有些是無限層級的,有些也就是幾層。碼表分組 ...

Java Web專案表單資料存入資料庫中文亂碼解決

題記 第一篇部落格,編輯器的很多功能還不熟悉,粗略寫寫,可能的看官們請見諒。背景 用struts spring hibernate整合乙個小專案,有關編碼的設定如下 1 jsp頁面的pageencoding設定沒問題,charset設定成utf 8,form表單為get方式 2 struts配置時沒...

關於sql資料庫的約束

約束條件在資料庫中的使用。check 約束用於限制列中的值的範圍。如果對單個列定義 check 約束,那麼該列只允許特定的值。如果對乙個表定義 check 約束,那麼此約束會在特定的列中對值進行限制。建立約束 如以下例子 建立如下兩個表 create table kkk tel char 13 pr...