电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL約束constraint用法詳解

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

      前言

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

      常用約束:

      添加約束的兩種方法:

      • 在創建表的時候添加 create
      • 在修改標的時候添加 alter

      一:主鍵約束 primary key

      注意:

      1.主鍵約束的列非空且唯一,不能是null,不能重復
      2.聯合主鍵的每一列都不能為null

      1.添加單列主鍵

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

      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.添加多列主鍵(聯合主鍵)

      -- 聯合主鍵,就是由多個字段組成一個主鍵約束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.通過修改表結構添加主鍵

      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 中,當主鍵定義為自增長后,這個主鍵的值就不再需要用戶輸入數據了,而由數據庫系統根據定義自動賦值。每增加一條記錄,主鍵會自動以相同的步長進行增長。通過給字段添加 auto_increment 屬性來實現主鍵自增長

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

      1.添加自增長約束

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

      2. 指定自增字段初始值

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

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

      -- 方式二:創建表之后指定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)指字段的值不能為空。對于使用了非空約束的字段,如果用戶在添加數據時沒有指定值,數據庫系統就會報錯。

      注意:

      1.添加非空約束

      -- 1.創建表時指定非空約束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.創建非空約束,創建表之后指定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

      總結

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

      標簽: MySQL
      主站蜘蛛池模板: 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 西门子代理商_西门子变频器总代理-翰粤百科 | 考试试题_试卷及答案_诗词单词成语 - 优易学 | 直流大电流电源,燃料电池检漏设备-上海政飞| 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 铝箔-铝板-花纹铝板-铝型材-铝棒管-上海百亚金属材料有限公司 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 工作服定制,工作服定做,工作服厂家-卡珀职业服装(苏州)有限公司 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | 汝成内控-行政事业单位内部控制管理服务商 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 板框压滤机-隔膜压滤机配件生产厂家-陕西华星佳洋装备制造有限公司 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 铝合金电阻-无源谐波滤波器-上海稳达电讯设备厂 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 哈希PC1R1A,哈希CA9300,哈希SC4500-上海鑫嵩实业有限公司 | 深圳货架厂家_金丽声精品货架_广东金丽声展示设备有限公司官网 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 |