日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql-表完成性约束

發布時間:2024/1/17 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql-表完成性约束 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 介紹

約束條件與數據類型的寬度一樣,都是可選參數

作用:用于保證數據的完整性和一致性
主要分為:

PRIMARY KEY (PK) 標識該字段為該表的主鍵,可以唯一的標識記錄 FOREIGN KEY (FK) 標識該字段為該表的外鍵 NOT NULL 標識該字段不能為空 UNIQUE KEY (UK) 標識該字段的值是唯一的 AUTO_INCREMENT 標識該字段的值自動增長(整數類型,而且為主鍵) DEFAULT 為該字段設置默認值UNSIGNED 無符號 ZEROFILL 使用0填充

說明:

1. 是否允許為空,默認NULL,可設置NOT NULL,字段不允許為空,必須賦值 2. 字段是否有默認值,缺省的默認值是NULL,如果插入記錄時不給字段賦值,此字段使用默認值 sex enum('male','female') not null default 'male' age int unsigned NOT NULL default 20 必須為正值(無符號) 不允許為空 默認是20 3. 是否是key 主鍵 primary key 外鍵 foreign key 索引 (index,unique...)

?

二 not null與default

是否可空,null表示空,非字符串
not null - 不可空
null - 可空


默認值,創建列時可以指定默認值,當插入數據時如果未主動設置,則自動添加默認值
create table tb1(
nid int not null defalut 2,
num int not null
)

驗證

?

三 unique

============設置唯一約束 UNIQUE=============== 方法一: create table department1( id int, name varchar(20) unique, comment varchar(100) );方法二: create table department2( id int, name varchar(20), comment varchar(100), constraint uk_name unique(name) );mysql> insert into department1 values(1,'IT','技術'); Query OK, 1 row affected (0.00 sec) mysql> insert into department1 values(1,'IT','技術'); ERROR 1062 (23000): Duplicate entry 'IT' for key 'name' not null+unique的化學反應 聯合唯一

?

四 primary key

primary key字段的值不為空且唯一

一個表中可以:

單列做主鍵
多列做主鍵(復合主鍵)

但一個表內只能有一個主鍵primary key

單列主鍵 多列主鍵

?

五 auto_increment

約束字段為自動增長,被約束的字段必須同時被key約束

View Code 步長increment與起始偏移量offset:auto_increment_increment,auto_increment_offset

?

六 foreign key

員工信息表有三個字段:工號 ?姓名 ?部門

公司有3個部門,但是有1個億的員工,那意味著部門這個字段需要重復存儲,部門名字越長,越浪費

解決方法:

我們完全可以定義一個部門表

然后讓員工信息表關聯該表,如何關聯,即foreign key

示范

?

?

輔助理解 #一對多或稱為多對一 三張表:出版社,作者信息,書一對多(或多對一):一個出版社可以出版多本書關聯方式:foreign key

??

View Code 一夫多妻制#妻子表的丈夫id外鍵到丈夫表的id

?

#多對多 三張表:出版社,作者信息,書多對多:一個作者可以寫多本書,一本書也可以有多個作者,雙向的一對多,即多對多關聯方式:foreign key+一張新的表

?

View Code 單張表:用戶表+相親關系表,相當于:用戶表+相親關系表+用戶表 多張表:用戶表+用戶與主機關系表+主機表中間那一張存放關系的表,對外關聯的字段可以聯合唯一

?

#一對一 兩張表:學生表和客戶表一對一:一個學生是一個客戶,一個客戶有可能變成一個學校,即一對一的關系關聯方式:foreign key+unique View Code 例一:一個用戶只有一個博客用戶表:id nameegonalexwupeiqi博客表 fk+uniqueid url name_idxxxx 1yyyy 3zzz 2例二:一個管理員唯一對應一個用戶用戶表:id user passwordegon xxxxalex yyyy管理員表:fk+unique id user_id password 1 xxxxx 2 yyyyy

?

七 練習

練習1:賬號信息表,用戶組,主機表,主機組

?View Code

?

練習2:

轉載于:https://www.cnblogs.com/52forjie/p/7825589.html

總結

以上是生活随笔為你收集整理的mysql-表完成性约束的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。