|NO.Z.00027|——————————|BigDataEnd|——|Java&MySQL单表/约束/事务.V05|——|MySQL.v05|约束介绍|主键约束|

一、约束的介绍
### --- 约束的作用:

——>        对表中的数据进行进一步的限制,从而保证数据的正确性、有效性、完整性.
——>        违反约束的不正确数据,将无法插入到表中
二、常见的约束
约束名 约束关键字
主键 primary key
唯一 unique
非空 not null
外键 foreign key
三、主键约束
特点 不可重复 唯一 非空
作用 用来表示数据库中的每一条记录
四、添加主键约束
### --- 语法格式

字段名 字段类型 primary key
五、需求: 创建一个带主键的表
### --- 方式1 创建一个带主键的表

CREATE TABLE emp2(
    -- 设置主键 唯一 非空
    eid INT PRIMARY KEY,
    ename VARCHAR(20),
sex CHAR(1)
);
~~~     # 删除表

DROP TABLE emp2;
-- 方式2 创建一个带主键的表
CREATE TABLE emp2(
    eid INT ,
    ename VARCHAR(20),
    sex CHAR(1),
    -- 指定主键为 eid字段
    PRIMARY KEY(eid)
);
~~~     # 方式3 创建一个带主键的表

CREATE TABLE emp2(
    eid INT ,
    ename VARCHAR(20),
    sex CHAR(1)
)
-- 创建的时候不指定主键,然后通过 DDL语句进行设置
ALTER TABLE emp2 ADD PRIMARY KEY(eid);
~~~     # DESC 查看表结构

-- 查看表的详细信息
DESC emp2;
六、测试主键的唯一性 非空性
~~~     # 正常插入一条数据
INSERT INTO emp2 VALUES(1,'宋江','男');

~~~     # 插入一条数据,主键为空
-- Column 'eid' cannot be null 主键不能为空
INSERT INTO emp2 VALUES(NULL,'李逵','男');

~~~     # 插入一条数据,主键为 1
-- Duplicate entry '1' for key 'PRIMARY' 主键不能重复
INSERT INTO emp2 VALUES(1,'孙二娘','女');
### --- 哪些字段可以作为主键 ?

——>        通常针对业务去设计主键,每张表都设计一个主键id
——>        主键是给数据库和程序使用的,跟最终的客户无关,所以主键没有意义没有关系,只要能够保证不重复
——>        就好,比如 身份证就可以作为主键.
### --- 删除主键约束
——>        删除 表中的主键约束 (了解)

-- 使用DDL语句 删除表中的主键
ALTER TABLE emp2 DROP PRIMARY KEY;
DESC emp2;
七、sql语句
### --- sql语句

/*
    约束
        约束是指对数据进行一定的限制,来保证数据的完整性 有效性 正确性
        
    常见的约束
        主键约束    primary key 
        唯一约束    unique
        非空约束    not null
        外键约束    foreign key
*/
/*
    主键约束
        特点  不可重复 唯一 非空
        作用  用来表示数据库中的每一条记录
        
    语法格式
        字段名 字段类型 primary key
*/
~~~     # 方式1 创建一个带有主键的表

CREATE TABLE emp2(
    eid INT PRIMARY KEY,
    ename VARCHAR(20),
    sex CHAR(1)
);
DESC emp2;
~~~     # 方式2 创建

DROP TABLE emp2; -- 删除表

CREATE TABLE emp2(
    eid INT,
    ename VARCHAR(20),
    sex CHAR(1),
    PRIMARY KEY(eid) -- 指定eid为主键
);
~~~     # 方式3 创建表之后 再添加主键

CREATE TABLE emp2(
    eid INT,
    ename VARCHAR(20),
    sex CHAR(1)
);
~~~     # 通过DDL语句 添加主键约束
ALTER TABLE emp2 ADD PRIMARY KEY(eid);


~~~     # 删除主键 DDL语句
ALTER TABLE emp2 DROP PRIMARY KEY;

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示