国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)庫----------約束、主鍵約束

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)庫----------約束、主鍵約束。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.簡介

1.概念

2.作用

3.分類

2.主鍵約束?

1.概念

2.操作

1.添加單列主鍵

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

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

4.刪除主鍵

3.自增長約束(auto_increment)

1.概念

2.特點

3.指定自增字段初始值

4.delete和truncate在刪除后自增列的變化

4.非空約束(not null)

1.概念

2.語法

3.添加非空約束

4.刪除非空約束


1.簡介

1.概念

約束英文: constraint

約束實際上就是表中數(shù)據(jù)的限制條件

2.作用

表在設(shè)計的時候加入約束的目的就是為了保證表中的記錄完整性和有效性,比如用戶表有些列的值

(手機號)不能為空,有些列的值(身份證號)不能重復(fù)。

3.分類

  • 主鍵約束(primary key) PK
  • 自增長約束(auto_increment)
  • 非空約束(not null)
  • 唯一性約束(unique)
  • 默認約束(default)
  • 零填充約束(zerofill)
  • 外鍵約束(foreign key) FK

2.主鍵約束?

1.概念

  • MySQL主鍵約束是一個列或者多個列的組合,其值能唯一地標識表中的每一行,方便在RDBMS中盡快的找到某一行
  • 主鍵約束相當于 唯一約束+非空約束 的組合,主鍵約束列不允許重復(fù),也不允許出現(xiàn)空值。
  • 每個表最多只允許一個主鍵
  • 主鍵約束的關(guān)鍵字是: primary key
  • 當創(chuàng)建主鍵的約束時,系統(tǒng)默認會在所在的列和列組合上建立對應(yīng)的唯一索引

2.操作

1.添加單列主鍵

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

方式1-語法:

-- 在 create table 語句中,通過 PRIMARY KEY關(guān)鍵字來指定主鍵。
-- 在定義字段的同時指定主鍵,語法格式如下:
create table表名(
        ...
        <字段名><數(shù)據(jù)類型>primary key
		...
)

方式1-實現(xiàn):

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

數(shù)據(jù)庫----------約束、主鍵約束

方式2-語法:

--在定義字段之后再指定主鍵,語法格式如下:
create table表名(
    ...
    [constraint <約束名>] primary key [字段名]
) ;

方式2-實現(xiàn):

use abc;
create table emp2(
         eid int,
		 name varchar(20),
		 deptId int,
		 salary double,
		 constraint pk1 primary key(eid)
);

也可以省略“constra pk1”?

use abc;
create table emp2(
         eid int,
		 name varchar(20),
		 deptId int,
		 salary double,
		 primary key(eid)
);

數(shù)據(jù)庫----------約束、主鍵約束

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

所謂的聯(lián)合主鍵,就是這個主鍵是由一張表中多個字段組成的。

注意:

  1. 當主鍵是由多個字段組成時,不能直接在字段名后面聲明主鍵約束。
  2. 一張表只能有一個主鍵,聯(lián)合主鍵也是一個主鍵

語法:

create table 表名(
     ...
     primary key(字段1,字段2,...,字段n)
);

實現(xiàn):

create table emp3(
         eid int,
		 name varchar(20),
		 deptId int,
		 salary double,
		 primary key(eid,name)
);

數(shù)據(jù)庫----------約束、主鍵約束

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

主鍵約束不僅可以在創(chuàng)建表的同時創(chuàng)建,也可以在修改表時添加。

語法:

create table 表名(
      ...
);
alter table <表名> add primary key(字段列表);

實現(xiàn):

*添加單列主鍵

create table emp4(
         eid int,
		 name varchar(20),
		 deptId int,
		 salary double
);
alter table emp4 add primary key (eid);

*添加多列主鍵?

create table emp4(
         eid int,
		 name varchar(20),
		 deptId int,
		 salary double
);
alter table emp4 add primary key (eid,deptId);

數(shù)據(jù)庫----------約束、主鍵約束

4.刪除主鍵

一個表中不需要主鍵約束時,就需要從表中將其刪除。刪除主鍵約束的方法要比創(chuàng)建主鍵約束容易

的多。

格式:

alter table <數(shù)據(jù)表名> drop primary key;

實現(xiàn):

-- 刪除單列主鍵
alter table emp1 drop primary key;
-- 刪除聯(lián)合主鍵
alter table emp5 drop primary key;

?所以不管是單列還是聯(lián)合,都是同樣的格式

3.自增長約束(auto_increment)

1.概念

在MysQL中,當主鍵定義為自增長后,這個主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系

統(tǒng)根據(jù)定義自動賦值。每增加一條記錄,主鍵會自動以相同的步長進行增長。

通過給字段添加 auto_increment 屬性來實現(xiàn)主鍵自增長

語法:

字段名 數(shù)據(jù)類型 auto_increment

實現(xiàn):

create table t_user1(
     id int primary key auto_increment,
	 name varchar(20)
);
insert into t_user1 values(NULL,'張三');
insert into t_user1(name) values('李四');

數(shù)據(jù)庫----------約束、主鍵約束

2.特點

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

3.指定自增字段初始值

如果第一條記錄設(shè)置了該字段的初始值,那么新增加的記錄就從這個初始值開始自增。例如,如果

表中插入的第一條記錄的id值設(shè)置為5,那么再插入記錄時,id值就會從5開始往上增加?

  • 方式1:創(chuàng)建表時指定
create table t_user2(
     id int primary key auto_increment,
		 name varchar(20)
)auto_increment=100;
insert into t_user2 values(NULL,'張三');

auto_increment=100,id值就會從100開始往上增加

數(shù)據(jù)庫----------約束、主鍵約束

  • 方式2:創(chuàng)建表之后指定
create table t_user3(
      id int primary key auto_increment,
	  name varchar(20)
);
alter table t_user3 auto_increment=200;
insert into t_user3 values(NULL,'張三');

?數(shù)據(jù)庫----------約束、主鍵約束

4.delete和truncate在刪除后自增列的變化

  • delete? ? ? ?刪除數(shù)據(jù)之后自動增長從斷點開始(自增長還是在最后一個值基礎(chǔ)上加1)
delete from t_user1;
  • truncate? ? 刪除數(shù)據(jù)之后自動增長從默認起始值開始(相當于將表刪了,重新建一個新表)
truncate t_user1;

4.非空約束(not null)

1.概念

MySQL非空約束(not null)指字段的值不能為空。

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

2.語法

方式1:<字段名> <數(shù)據(jù)類型> not null;
方式2:alter table 表名 modify 字段 類型 not null;

3.添加非空約束

  • 方式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(1001); -- 不可以
insert into t_user6(id,name,address) values(1001,null,null); -- 不可以
insert into t_user6(id,name,address) values(1001,'null','null'); -- 可以(字符串)
insert into t_user6(id,name,address) values(1001,'',''); -- 可以(空串)

數(shù)據(jù)庫----------約束、主鍵約束

  • 方式2:創(chuàng)建表之后指定

create table t_user7(
	id int,
	name varchar(20),
	address varchar(20)
);
alter table t_user7 modify name varchar(20) not null;
alter table t_user7 modify address varchar(20) not null;

desc t_user7;

desc查看表結(jié)構(gòu)的詳細信息

此處desc是describe的縮寫,用法: desc 表名/查詢語句

數(shù)據(jù)庫----------約束、主鍵約束

4.刪除非空約束

alter table t_user7 modify name varchar(20);
alter table t_user7 modify address varchar(20);

刪除not null即可

數(shù)據(jù)庫----------約束、主鍵約束文章來源地址http://www.zghlxwxcb.cn/news/detail-408504.html

到了這里,關(guān)于數(shù)據(jù)庫----------約束、主鍵約束的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)庫如何合理生成主鍵:UUID、雪花算法

    數(shù)據(jù)庫如何合理生成主鍵:UUID、雪花算法

    目錄 1.使用自增主鍵的弊端 2.主鍵生成算法 2.1.UUID 2.1.1.概述 2.1.2.JAVA中的UUID 2.2.雪花算法 2.2.1.概述 2.2.2.JAVA中使用雪花算法 首先在實際工程中我們很少用1,2,3......這樣的自增主鍵,原因如下: 主鍵沖突 性能問題 安全問題 主鍵沖突: 比如我要跨數(shù)據(jù)庫進行數(shù)據(jù)同步、或者

    2024年02月03日
    瀏覽(41)
  • Hibernate適配DM數(shù)據(jù)庫主鍵自增配置

    Hibernate適配DM數(shù)據(jù)庫主鍵自增配置

    hibernate有多種生成主鍵策略,例如assigned、increment、hilo、seqhilo、sequence、identity、native、uuid、guid等方法,其中native由hibernate根據(jù)使用的數(shù)據(jù)庫自行判斷采用identity、hilo、sequence其中一種作為主鍵生成方式,靈活性很強。如果能支持identity則使用identity,如果支持sequence則使用

    2023年04月24日
    瀏覽(23)
  • Oracle 數(shù)據(jù)庫實現(xiàn)主鍵字段自增的方法

    Oracle 數(shù)據(jù)庫實現(xiàn)主鍵字段自增的方法

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站,這篇文章男女通用,看懂了就去分享給你的碼吧。 在 Oracle 數(shù)據(jù)庫中,實現(xiàn)主鍵字段的自增功能對于確保數(shù)據(jù)的唯一性和簡化數(shù)據(jù)插入操作非常重要。本文將介紹如

    2024年02月12日
    瀏覽(28)
  • 為什么數(shù)據(jù)庫要允許沒有主鍵的表存在

    在數(shù)據(jù)庫設(shè)計中,主鍵是一個關(guān)鍵概念,用于唯一標識數(shù)據(jù)庫表中的每一行數(shù)據(jù)。然而,有時候數(shù)據(jù)庫允許沒有主鍵的表存在的情況,這可能會引起一些爭議和疑問。本文將探討為什么數(shù)據(jù)庫允許沒有主鍵的表以及相關(guān)的考慮因素。 主鍵在數(shù)據(jù)庫中具有以下作用: 唯一標識

    2024年02月08日
    瀏覽(32)
  • MySQL數(shù)據(jù)庫——MySQL AUTO_INCREMENT:主鍵自增長

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

    2024年02月11日
    瀏覽(24)
  • MySQL數(shù)據(jù)庫,數(shù)據(jù)的約束

    MySQL數(shù)據(jù)庫,數(shù)據(jù)的約束

    目錄 1.數(shù)據(jù)的約束 1.1約束的類型 1.2NULL約束 1.3UNIQUE約束 1.4DEFAULT約束 1.5PRIMARY KEY約束 1.6FOREIGN KEY約束 首先,創(chuàng)建一個名為test的數(shù)據(jù)庫: 下方的所有測試表,都是在這個test數(shù)據(jù)庫中進行創(chuàng)建的。 NOT NULL - 指定某列不得為NULL(空) UNIQUE - 唯一值,每一列的值都是不同的 DEFAULT -

    2023年04月20日
    瀏覽(46)
  • MySQL數(shù)據(jù)庫——約束

    MySQL數(shù)據(jù)庫——約束

    MySQL約束是用于在關(guān)系型數(shù)據(jù)庫中定義和實施數(shù)據(jù)完整性規(guī)則的規(guī)范。它們定義了數(shù)據(jù)庫表中數(shù)據(jù)的限制條件,確保數(shù)據(jù)的一致性和有效性。 今天我將為大家分享以下約束: 主鍵約束(primary key) 自增長約束(auto_incremnet) 非空約束(not null) 唯一性約束(unique) 默認約束

    2024年02月14日
    瀏覽(24)
  • 「MySQL」數(shù)據(jù)庫約束

    「MySQL」數(shù)據(jù)庫約束

    ?? 個人主頁 :Ice_Sugar_7 ?? 所屬專欄 :數(shù)據(jù)庫 ?? 歡迎點贊收藏加關(guān)注哦! 所謂約束,就是在創(chuàng)建表時給這個表 指定一些規(guī)則 ,后續(xù)插入、修改、刪除操作都要遵循這些規(guī)則 引入規(guī)則是為了進行更強的數(shù)據(jù)校驗 NOT NULL - 指示某列不能存儲 NULL 值 UNIQUE - 保證某列的每行必

    2024年03月27日
    瀏覽(60)
  • 數(shù)據(jù)庫約束

    概念:約束時作用于表中子段上的規(guī)則,用于限制存儲在表中的shuju 目的:保證數(shù)據(jù)庫中數(shù)據(jù)的正確、有效性和完整性 分類: 約束 描述 非空約束 限制該字段不能為null NOT NULL 唯一約束 保證該字段的所有數(shù)據(jù)都是唯一、不重復(fù)的 UNIQUE 主鍵約束 主鍵時一行數(shù)據(jù)的唯一

    2024年02月10日
    瀏覽(15)
  • MySQL 數(shù)據(jù)庫約束

    MySQL 數(shù)據(jù)庫約束

    目錄 一、數(shù)據(jù)庫約束? 1、約束類型 二、NULL 約束 三、unique 約束 四、default 約束 五、primary key 約束 自增主鍵 六、foreign key 外鍵約束 七、check 約束 我們使用數(shù)據(jù)庫來存儲數(shù)據(jù),一般是希望這里存儲的數(shù)據(jù)是靠譜的,那么如何來保證數(shù)據(jù)是否靠譜呢? 那么MySQL就提供了一些機

    2024年02月15日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包