色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL約束constraint用法詳解

瀏覽:196日期:2023-05-08 10:17:33
目錄
  • 前言
  • 一:主鍵約束 primary key
    • 1.添加單列主鍵
    • 2.添加多列主鍵(聯(lián)合主鍵)
    • 3.通過修改表結(jié)構(gòu)添加主鍵
    • 4.刪除主鍵約束
  • 二:自增長約束 auto_increment
    • 1.添加自增長約束
    • 2. 指定自增字段初始值
  • 三:非空約束 not null
    • 1.添加非空約束
    • 2.刪除非空約束
  • 四: 唯一性約束
    • 總結(jié)

      前言

      約束canstraint,約束實際上就是表中數(shù)據(jù)的限制條件。表在設(shè)置的時候加入約束的目的是為了保證表中的記錄完整性和有效性,比如用戶的某些數(shù)據(jù)不能為空。

      常用約束:

      添加約束的兩種方法:

      • 在創(chuàng)建表的時候添加 create
      • 在修改標的時候添加 alter

      一:主鍵約束 primary key

      注意:

      1.主鍵約束的列非空且唯一,不能是null,不能重復(fù)
      2.聯(lián)合主鍵的每一列都不能為null

      1.添加單列主鍵

      創(chuàng)建單列主鍵有兩種方式,一種是在定義字段的同時指定主鍵,一種是定義完字段之后指定主鍵。

      use name;create table emp1(	eid int primary key,	name varchar(20),	edptId int,	salary double);

      constraint <約束名> 可以省略(相當于給約束起一個名字)

      create table emp2(	eid int,	name varchar(20),	deptId int,	salary double,	constraint pk1 primary key(eid)   -- constraint pk1  可以省略);

      2.添加多列主鍵(聯(lián)合主鍵)

      -- 聯(lián)合主鍵,就是由多個字段組成一個主鍵約束create table emp3(	name varchar(20),	deptId int,	salary double,	constraint pk2 primary key(name,deptId));--   空字符串不等于nullinsert into emp3 values("",20,30);-- 主鍵不能為空,insert into emp3 values(null,29,32);

      3.通過修改表結(jié)構(gòu)添加主鍵

      use name;-- 添加單列主鍵create table emp4(	eid int,	name varchar(20),	deptId int,	salary double);alter table emp4 add primary key(eid);-- 添加多列主鍵create table emp5(	eid int,	name varchar(20),	deptId int,	salary double);alter table emp5 add primary key(name,deptId);

      4.刪除主鍵約束

      -- 刪除主鍵-- 1.刪除單列主鍵alter table emp1 drop primary key;-- 2.刪除多列主鍵alter table emp5 drop primary key;

      二:自增長約束 auto_increment

      在 MySQL 中,當主鍵定義為自增長后,這個主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動賦值。每增加一條記錄,主鍵會自動以相同的步長進行增長。通過給字段添加 auto_increment 屬性來實現(xiàn)主鍵自增長

      Ø 默認情況下,auto_increment的初始值是 1,每新增一條記錄,字段值自動加 1。
      Ø 一個表中只能有一個字段使用 auto_increment約束,且該字段必須有唯一索引,以避免序號重復(fù)(即為主鍵或主鍵的一部分)。
      Ø auto_increment約束的字段必須具備 NOT NULL 屬性。
      Ø auto_increment約束的字段只能是整數(shù)類型(TINYINT、SMALLINT、INT、BIGINT 等。
      Ø auto_increment約束字段的最大值受該字段的數(shù)據(jù)類型約束,如果達到上限,auto_increment就會失效。

      1.添加自增長約束

      create table t_user1(	id int primary key auto_increment,	name varchar(20));

      2. 指定自增字段初始值

      如果第一條記錄設(shè)置了該字段的初始值,那么新增加的記錄就從這個初始值開始自增。例如,如果表中插入的第一條記錄的 id 值設(shè)置為 5,那么再插入記錄時,id 值就會從 5 開始往上增加

      -- 方式一:創(chuàng)建表的時候指定create table t_user2(	id int primary key auto_increment,	name varchar(20))auto_increment = 100;insert into t_user2 values (null,"張三");

      -- 方式二:創(chuàng)建表之后指定create table t_user3(	id int primary key auto_increment,	name varchar(20));alter table t_user3 auto_increment = 200;

      三:非空約束 not null

      MySQL 非空約束(not null)指字段的值不能為空。對于使用了非空約束的字段,如果用戶在添加數(shù)據(jù)時沒有指定值,數(shù)據(jù)庫系統(tǒng)就會報錯。

      注意:

      1.添加非空約束

      -- 1.創(chuàng)建表時指定非空約束create table t_user6(	id int,	name varchar(20) not null,	address varchar(20) not null);insert into t_user6(id) values (1007);  -- 不可以insert into t_user6(id,name,address) values(1001,null,null); --不可以insert into t_user6(id,name,address) values(1001,"NULL","NULL");  --可以(字符串null)insert into t_user6(id,name,address) values(1001,"","");  -- 可以(空串)

      -- 2.創(chuàng)建非空約束,創(chuàng)建表之后指定create table t_user7(	id int,	name varchar(20),  -- 指定非空約束	address varchar(20));alter table t_user7 modify name varchar(20) not null;

      2.刪除非空約束

      -- 刪除非空約束alter table t_user7 modify name varchar(20);alter table t_user7 modify address varchar(20);

      四: 唯一性約束

      默認約束 default

      零填充約束 zerosfill

      外鍵約束 foreign key

      總結(jié)

      到此這篇關(guān)于MySQL約束constraint用法詳解的文章就介紹到這了,更多相關(guān)MySQL約束constraint內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標簽: MySQL
      主站蜘蛛池模板: 一级黄色香蕉视频 | 午夜美女网站 | 自拍偷自拍亚洲精品10p | 色综合天天综合网看在线影院 | 国产高清在线精品一区a | 九九视频在线观看 | 久久精品国产一区二区三区日韩 | 日韩欧美毛片免费看播放 | 九九精品在线观看 | 国产成人av性色在线影院 | 久久精品男人的天堂 | 久久久精品成人免费看 | 亚洲成av人片在线观看 | 成年人免费在线视频观看 | 日本午夜视频 | 在线观看一级毛片免费 | 久草免费在线观看视频 | 亚洲综合小视频 | 亚洲视频在线一区二区 | 国产日b视频| 亚洲影视一区二区 | 欧美videos极品 | 朝鲜美女免费一级毛片 | 女人张开腿给男人桶爽免费 | 久久综合免费视频 | 日韩一区精品 | 撸天堂| 2020久久国产最新免费观看 | 男人的天堂欧美 | 亚洲视频欧美视频 | 大片刺激免费播放视频 | 点击进入不卡毛片免费观看 | 精品手机在线 | 国产99视频免费精品是看6 | 精品高清国产a毛片 | 日本不卡一区二区三区在线观看 | 国产露脸3p普通话 | 全国男人天堂网 | 欧美午夜性春猛交 | a级毛片毛片免费观看久潮喷 | 久久国产精品视频一区 |