MySql学习笔记24常见约束
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
六大约束
NOT NULL: 非空约束,用于保证该字段的值不能为空
DEFAULT: 默认约束,用于保证该字段有默认值
PRIMARY KEY: 主键约束,用于保证该字段的值具有唯一-性,并且非空
UNIQUE: 唯一,用于保证该字段的值具有唯一-性,可以为空
CHECK: 检查约束[mysql中不支持 ]
FOREIGN KEY: 外键约束,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表添加外键约束,用于引用主表中某列的值。
外键特点:
1、要求在从表设置外键约束关系
2、从表的外键约束列的类型和主表的关联列的类型要求一致或兼容,名称无要求
3、主表的关联列必须是一个key (一般是主键约束或唯一键约束)
4、插入数据时,先插入主表,再插入从表;删除数据时,先删除从表,再删除主表
添加约束的时机:
1.创建表时
2.修改表时
约束的添加分类:
列级约束:六大约束语法.上都支持,但外键约束没有效果
表级约束:除了非空、默认,其他的都支持
语法:CREATE TABLE表名(
字段名 字段类型 列级约束,
字段名 字段类型,
表级约束);
创建表时添加约束
1.添加列级约束
直接在字段名和类型后面追加约束类型即可。
只支持:默认约束、非空约束、主键约束、唯一约束
案例:#创建专业表
CREATE TABLE major (
id INT PRIMARY KEY ,
majorName VARCHAR (20)
);#创建学生信息表
CREATE TABLE student (
id INT PRIMARY KEY,#主键约束
Name VARCHAR(20) NOT NULL, #非空约束
sex CHAR(1) CHECK (sex="男" OR sex =女"), #检查约束 (此处语法不报错,但无实际效果)
seat INT UNIQUE, #唯一约束
age INT DEFAULT 18, #默认约束
majorId INT FOREIGN KEY REFERENCES major (id) #外键约束(此处语法不报错,但无 # 实际效果)
) ;
2.添加表级约束语法:在各个字段的最下面
[constraint约束名]约束类型 (字段名)
案例:#创建专业表
CREATE TABLE major (
id INT PRIMARY KEY ,
majorName VARCHAR (20)
);#创建学生信息表
CREATE TABLE student(
id INT,
name VARCHAR(20) ,
sex CHAR (1),
seat INT ,
age INT,
majorid INT
CONSTRAINT pk PRIMARY KEY (id),#主键约束
CONSTRAINT uq UNIQUE (seat) , #唯一键约束
CONSTRAINT ck CHECK (sex ="男" OR sex = "女") , #检查约束
CONSTRAINT fk_ student_ major FOREIGN KEY (majorid) REFERENCES major (id)
#外键约束
);
主键与唯一键的比较
约束名称
保证唯一性
是否允许为空
一-个表中可以有多少个
是否允许组合
主键约束
至多有1个
唯一约束
可以有多个
组合主键约束,组合唯一约束的写法CREATE TABLE student(
id INT,
name VARCHAR(20) ,
sex CHAR (1),
classroom VARCHAR(20) ,
seat INT ,
age INT,
majorid INT
CONSTRAINT pk PRIMARY KEY (id,name),#组合主键约束
CONSTRAINT uq UNIQUE (classroom,seat) , #组合唯一键约束
);修改表时添加约束
语法:1、添加列级约束
alter table 表名modify column字段名 字段类型 新约束;
2、添加表级约束
alter table 表名 add 【constraint约束名】 约束类型 (字段名) 【外键的引用】 ;
案例:#创建专业表
CREATE TABLE major (
id INT PRIMARY KEY ,
majorName VARCHAR (20)
);CREATE TABLE student(
id INT,
name VARCHAR(20) ,
sex CHAR (1),
classroom VARCHAR(20) ,
seat INT ,
age INT,
majorid INT
);
1.添加非空约束
ALTER TABLE student MODIFY COLUMN name VARCHAR(20) NOT NULL
2.添加默认约束
ALTER TABLE student MODIFY COLUMN age INT DEFAULT 18;
3.添加主键#①列级约束语法:
ALTER TABLE student MODIFY COLUMN id INT PRIMARY KEY ;
#②表级约束语法:
ALTER TABLE student ADD PRIMARY KEY (id) ;
4.添加唯一#①列级约束语法:
ALTER TABLE student MODIFY COLUMN seat INT UNIQUE ;
#②表级约束语法:
ALTER TABLE student ADD UNIQUE (seat) ;
5.添加外键
ALTER TABLE student ADD fk_ student_ major FOREIGN KEY (majorid) REFERENCES major (id) ;修改表时删除约束
1.删除非空约束
ALTER TABLE student_ MODIFY COLUMN name VARCHAR (20) NULL;
2.删除默认约束
ALTER TABLE student_ MODIFY COLUMN age INT
3.删除主键
ALTER TABLE student_ DROP PRIMARY KEY ;
4.删除唯一
ALTER TABLE student_ DROP INDEX seat;
5.删除外键ALTER TABLE student_ DROP FOREIGN KEY fk_ student_ major;
德生PL660调幅频偏的维修我之前对德生PL660的电路特点和打摩的方向都做过详细分析。它的主电路芯片脱胎于索尼CXA1376,附属电路融入了德生的自主方案尤其是调频头和航空波段的接收电路,因此660无论接收
SONYICFSW77收音机简析ICFSW77是索尼1990年发布的高端便携收音机,是索尼收音机粉丝绕不过的经典全波段数调机。该机也支持单边带和同步检波,根据销售地不同,有四个版本,区别是各个波段的频率覆盖范围不
给海燕T241收音机加装调频波段海燕T241这台海燕T241是家父在1980年左右购买的,4波段14晶体管,是当年上无101厂的名机。收音电路采用全锗管设计,共射共基中放,二级双调谐中周保证良好的中频枕形幅频特性
SONYSRFM100的分析与维修SONYSRFM100是一款很精致独特的便携式数调小机,大概发布于1993年。造型很新颖,钛金灰色金属前面板,测拉天线,有国际版和日本本土版两个版本,市面上常见的是日版,国际版的极
SONYICF7600DA简析索尼SONYICF7600DA,又名7700发布于80年代末,独特的飞梭调谐数字指针显示方式是德劲1103的原型。这个机造型美观大方,前面板分层设计很有立体感,操作简洁,性能优异尤
火灾也分不同类型,对应的灭火方式你都知道吗?根据国家标准火灾分类(GB496885),火灾按照可燃物的类型和燃烧特性可以分为ABCDEF六类。A类火灾指固体物质火灾。这种物质通常具有有机物质性质,一般在燃烧时能产生灼热的余烬
展会即将开幕丨2021慕尼黑华南电子展现场论坛议程全攻略2021年10月2830日在深圳国际会展中心(宝安新馆),2021华南国际智能制造先进电子及激光博览会(LEAPExpo)旗下成员展慕尼黑华南电子展(electronicaSout
聚氨酯环保汽车座椅,真皮的替代品,兼具舒适与环保很多车主在买车的时候会倾向于选择真皮座椅,这样看起来会很优雅有品质,而且皮质座椅还有舒适防污等优点。不过呢,真皮优点很多,但缺点也是不少的,仅仅是经久不散的气味,就让很多人头疼不已
真快乐双11大牌家电真低价海尔洗烘一体机直降1500随着双11的热潮不断高涨,相信大家已经蓄势待发。虽然每次心里默念要理性消费,但购物车却是诚实地越加越满,怎样才能以最省钱的方式清空购物车?双11家电焕新有哪些好选择?今天就奉上我的
父亲节快乐,回家和爸爸碰个杯一直以来,我们常念母亲的辛苦少提到父亲的付出父爱,很少用语言来装裱他习惯用实际行动表达对子女的期盼关怀与爱意这次父亲节要到了我们不妨用实际行动用一份礼物来传达孝心相信他会感受到你的
智慧用电监测云平台电卫士APP,打造智慧用电新生态卓文智慧用电安全监测云平台电卫士APP融合了物联网云计算大数据人工智能等先进技术,结合智能断路器等产品实现了对电气指标的精准感知与数据的实时采集,并将采集的电流电压温度功率等数据上