最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql中的各種約束條件深入探討

 更新時間:2024年05月06日 15:02:10   作者:景天科技苑  
在mysql中對編輯的數(shù)據(jù)進行類型的限制,不滿足約束條件的報錯,本文給大家分享mysql中的各種約束條件,結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

mysql約束

在mysql中對編輯的數(shù)據(jù)進行類型的限制,不滿足約束條件的報錯

unsigned   :    無符號
not null   :       不為空
default    :       默認(rèn)值
unique     :      唯一值,加入唯一索引
(索引相當(dāng)于字典目錄,索引的提出是為了加快速度,一味地亂加索引不會提高查詢效率)
primary key:    主鍵
auto_increment: 自增加一 ,必須設(shè)置了主鍵才能設(shè)置該參數(shù)
zerofill   :    零填充
foreign key:    外鍵

約束在寫sql時,放在數(shù)據(jù)類型的后面,如下,放在int的后面
字段名 類型 約束

unsigned 無符號

create table t3(id int unsigned);
insert into t3 values(-1); error
insert into t3 values(4000000000); success

設(shè)置無符號位約束,插入負(fù)值就報錯

not null : 不為空

create table t4(id int not null , name varchar(11));
insert into t4 values(1,"張宇");
insert into t4 values(null,"張宇"); error
insert into t4(name) values("李四"); error

設(shè)置不為空約束,插入空就報錯

NULL值是處于0和1之間的某個值,他也表示一個值,只不過這個值是NULL值,而不是0。
在進行計算的時候,1與NULL則結(jié)果為NULL。而0與NULL則結(jié)果為0。
1或NULL則結(jié)果為1,0或NULL則結(jié)果為NULL;可見NULL值是介于0和1之間的值。
另外非NULL既不是1也不是0,還是NULL

default : 默認(rèn)值

create table t5(id int not null  , name varchar(11) default "沈思雨" );
insert into t5 values(1,null);
insert into t5(id) values(2);

設(shè)置了默認(rèn)值后,插入時填入值,就是設(shè)置的值,非全列插入時,不寫該字段的值,就用默認(rèn)值

create table t5_2(id int not null  default "1111" , name varchar(11) default "沈思雨" );
insert into t5_2 values(); # 在values里面不寫值,默認(rèn)使用默認(rèn)值;

unique: 唯一約束

加入唯一索引(索引的提出是為了加快速度,一味地亂加索引不會提高查詢效率,索引是有一個文件來存索引)
唯一 可為null 標(biāo)記成: UNI

create table t6(id int unique , name char(10) default "趙萬里" );
insert into t6(id) values(1);
insert into t6(id) values(1); error
insert into t6(id) values(null);
insert into t6(id) values(null); # id變成了多個null

如果要刪除null的字段,可以用 where 字段 is null 來刪
唯一性約束,可以有多個null值,不違背唯一性約束

primary key: 主鍵

[ 唯一 + 不為null ] PRI 標(biāo)記數(shù)據(jù)的唯一特征
一個表中,只能設(shè)置一個字段為一個主鍵,unique唯一約束可以設(shè)置多個
創(chuàng)建主鍵

create table t7(id int primary key , name varchar(10) default "趙沈陽");
insert into t7(id) values(1);
insert into t7(id) values(1); error 
insert into t7(id) values(null); error

設(shè)了主鍵,該字段不能重復(fù),不能為空

unique + not null => PRI

create table t8(id int unique not null ,  name varchar(10) default "趙沈陽" );

設(shè)置了唯一性約束,且不為null,功能就跟primary key一樣了

如果沒有設(shè)置primary key,設(shè)置了unique not null ,默認(rèn)把unique +not null 設(shè)置的字段設(shè)為主鍵

primary key / unique + not null => 優(yōu)先把primary key 作為主鍵;

create table t9(id1 int unique not null ,  id2 int primary key );

同時設(shè)置了unique +not null 和 primary key 。優(yōu)先把primary key 作為主鍵

一個表只能設(shè)置單個字段為一個主鍵;

create table t10(id1 int  primary key  ,  id2 int primary key ); error

auto_increment: 自增加一

一般配合 主鍵或者unique 使用

create table t11(id int primary key auto_increment , name varchar(255) default "敬文棟");
insert into t11 values(1,"張三");
insert into t11 values(null,"李四");
insert into t11(id) values(null);
# 使用默認(rèn)值或者自增插入數(shù)據(jù)
insert into t11 values();

刪除數(shù)據(jù),這是刪除所有數(shù)據(jù)
delete from t11;
刪除數(shù)據(jù) + 重置id
truncate table t11;

主鍵自增,可以用0,null,default占位

刪除一條數(shù)據(jù)后,如果再添加不想主鍵從下一個開始,需要在添加之前,復(fù)位主鍵
刪除數(shù)據(jù)后,執(zhí)行下面的sql

如果是中途刪除,先查看一下目前的auto_increment

show create table student;
| student | CREATE TABLE `student` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `age` int NOT NULL,
  `birthday` date DEFAULT NULL,
  `is_del` tinyint DEFAULT '0',
  `height` decimal(3,2) DEFAULT NULL,
  `cls_id` varchar(6) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_class` (`cls_id`),
  CONSTRAINT `fk_class` FOREIGN KEY (`cls_id`) REFERENCES `class` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 |

AUTO_INCREMENT=幾 下次插入時就從幾開始遞增

ALTER TABLE (表名) AUTO_INCREMENT = 1;

zerofill : 零填充 (配合int使用,不夠5位拿0來填充)

create table t12(id int(5) zerofill);
insert into t12 values(1234567);

位數(shù)超了之后,按寫入的數(shù)據(jù)直接插入

insert into t12 values(12);

位數(shù)不足,前面補0

到此這篇關(guān)于mysql中的各種約束條件的文章就介紹到這了,更多相關(guān)mysql約束條件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql導(dǎo)入csv的4種報錯的解決方法

    mysql導(dǎo)入csv的4種報錯的解決方法

    這篇文章主要介紹了mysql導(dǎo)入csv的4種報錯的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MySQL中的數(shù)據(jù)備份與SQL語句

    MySQL中的數(shù)據(jù)備份與SQL語句

    這篇文章主要介紹了MySQL中的數(shù)據(jù)備份與SQL語句,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 探討:sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法詳解

    探討:sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法詳解

    本篇文章是對sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL億級大表安全添加字段的三種方案

    MySQL億級大表安全添加字段的三種方案

    面對?1.35億條數(shù)據(jù)?的?MySQL?表添加字段,傳統(tǒng)?ALTER?TABLE?可能導(dǎo)致長時間鎖表,嚴(yán)重影響業(yè)務(wù),本文將提供一套完整的?零停機方案,涵蓋?Online?DDL?優(yōu)化、專業(yè)工具使用?和?Java?應(yīng)用層配合策略,需要的朋友可以參考下
    2025-03-03
  • Ubuntu移除mysql后重新安裝的方法

    Ubuntu移除mysql后重新安裝的方法

    這篇文章主要介紹了Ubuntu移除mysql后重新安裝的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • mysql建表常用的sql語句匯總

    mysql建表常用的sql語句匯總

    這篇文章主要給大家介紹了mysql建表常用的sql語句,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • mysql unsigned 用法及相減出現(xiàn)補數(shù)溢出解決方法

    mysql unsigned 用法及相減出現(xiàn)補數(shù)溢出解決方法

    unsigned表示無符號的意思,也就是非負(fù)數(shù),只用于整型并且unsigned 是MYSQL自定義的類型,非標(biāo)準(zhǔn)SQL。用途1是紅苕說的起到約束數(shù)值的作用,2是可以增加數(shù)值范圍(相當(dāng)于把負(fù)數(shù)那部分加到正數(shù)上)。不過少用,不方便移植
    2012-04-04
  • MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解

    MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解

    這篇文章主要介紹了MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解,THREAD_CACHE是Mysql的連接池,table_cache指定表高速緩存的大小,需要的朋友可以參考下
    2014-07-07
  • 修改MySQL時區(qū)和最大連接數(shù)的兩種方式

    修改MySQL時區(qū)和最大連接數(shù)的兩種方式

    文章介紹了如何修改MySQL的時區(qū)和最大連接數(shù),提供了臨時和永久兩種修改方法,時區(qū)修改需在配置文件中添加相應(yīng)設(shè)置,并在不同系統(tǒng)下的不同路徑進行修改,最大連接數(shù)的修改同樣需要在配置文件中設(shè)置,并注意連接數(shù)不宜過大,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-10-10
  • CentOS7環(huán)境下MySQL8常用命令小結(jié)

    CentOS7環(huán)境下MySQL8常用命令小結(jié)

    在進行MySQL的優(yōu)化之前必須要了解的就是MySQL的查詢過程,下面這篇文章主要給大家介紹了關(guān)于CentOS7環(huán)境下MySQL8常用命令的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06

最新評論

宿松县| 榆中县| 旬阳县| 咸宁市| 加查县| 青川县| 江津市| 牟定县| 仲巴县| 靖远县| 外汇| 融水| 武定县| 松潘县| 珠海市| 建阳市| 高邑县| 巴楚县| 保康县| 太康县| 嵊泗县| 阿合奇县| 留坝县| 璧山县| 旌德县| 峨山| 忻城县| 长丰县| 久治县| 宜春市| 沙雅县| 莱州市| 高陵县| 通化市| 蓬安县| 邯郸县| 昌乐县| 靖远县| 定州市| 明溪县| 天峨县|