MySQL第三章 列约束(超详细列约束知识点,附详细代码)

CSDN话题挑战赛第2期
参赛话题:学习笔记

目录

1.主键约束 —— primary key

2.非空约束 —— not null

3.唯一约束 —— unique

4.默认值约束 —— default

5.检查约束 —— check

6.外键约束

7.自增列

 8.整体代码

每日一句


1.主键约束 —— primary key

  1. 不允许插入null
    1. (null:表示空,是暂时无法确定的值,例如:暂时无法确定一个员工信息..
      null是关键字,使用的过程中不能加引号)
  2. 不允许相同
  3. CREATE TABLE laptop(
    	lid INT PRIMARY KEY AUTO_INCREMENT,
    );

2.非空约束 —— not null

  1. 声明了非空约束的列,不允许插入null
  2. CREATE TABLE laptop(	
        price DECIMAL(7,2) NOT NULL,
    );

3.唯一约束 —— unique

  1.  声明了唯一约束的列不允许插入重复的值,允许插入null,甚至多个null
  2. 可能会影响到排序
  3. CREATE TABLE laptop(	
        title VARCHAR(64) UNIQUE,
    );

4.默认值约束 —— default

  1. 插入一条数据的时候,如果不提供值,会使用默认值
  2. 设置默认值:使用default设置默认值
  3. 调用默认值
    1. 给指定的列提供值,没有出现列会自动调用默认值
      insert  into  数据表名称(列名称,…)  values(值,…)
    2. 哪个列要使用默认值,只需要提供关键字default就会自动调用默认值
      insert  into  数据表名称   values(值, default,…)
  4. CREATE TABLE laptop(	
        --这里默认值为TRUE
        isindex BOOLEAN DEFAULT TRUE,
    );

5.检查约束 —— check

  1. 也称为自定义约束,用户可以自己指定约束条件
  2. create  table  student(
        score  tinyint  check(score>=0  and  score<=100)
    );
  3. mysql不支持检查约束,会严重影响数据的插入速度。后期JS可以实现

6.外键约束

  1. 为了确保两个表直接建立关联。
  2. 声明了外键约束的列,插入的值必须在另一个表的主键列中出现过
  3. 注意事项:外键约束的列必须和另一个表主键列,类型要保持一致。
  4.  oreign key(外键列)  references  另一个表(主键列)
  5. create  table  student(
        familyid INT,	
    	#将familyid设置外键约束,所插入的值,必须在family表中的主键列fid中出现过,并且两者类型需要保持一致
    	FOREIGN KEY(familyid) REFERENCES family(fid)
    );

7.自增列

  1. AUTO_INCREMENT
  2. 自动增长,声明了自增列,在插入数据的时候,只需要提供值为null,就会获取最大值然后加1插入
  3. 注意事项:必须添加在整数形式的主键列允许手动赋值
  4. create  table  student(
        lid INT PRIMARY KEY AUTO_INCREMENT,
    );

 8.整体代码

--设置编码
SET NAMES utf8;
--先丢弃在创建
DROP DATABASE IF EXISTS zyh;
--创建数据库
CREATE DATABASE zyh CHARSET=utf8;
--进入数据库
USE zyh;
--创建表family
CREATE TABLE yh_user(
	uid ,
	fname VARCHAR(32) UNIQUE
);
--插入数据 fid fname 10  联想       20   戴尔       30   小米 
INSERT INTO family VALUES(10,'联想');
INSERT INTO family VALUES(20,'戴尔');
INSERT INTO family VALUES(30,'小米');
--创建表laptop
CREATE TABLE laptop(
	lid INT PRIMARY KEY AUTO_INCREMENT,
	title VARCHAR(64) UNIQUE,
	price DECIMAL(7,2) NOT NULL DEFAULT 5000,
	shelf DATE DEFAULT '1999-09-09',
	detail VARCHAR(128),
	isindex BOOLEAN DEFAULT TRUE,
	familyid INT,	
	#将familyid设置外键约束,所插入的值,必须在family表中的主键列fid中出现过,并且两者类型需要保持一致
	FOREIGN KEY(familyid) REFERENCES family(fid)
);
--插入数据包含的列有编号lid,标题title,价格price上架时间shelf,详情detail,是否为首页推荐isindex,所属分类编号familyid
--插入数据
INSERT INTO laptop VALUES(1,'这里是联想','39999.99','2022-07-04','联想的详情',TRUE,10);
INSERT INTO laptop VALUES(2,'这里是戴尔','4000.99','2022-07-04','戴尔的详情',FALSE,20);
INSERT INTO laptop VALUES(3,NULL,7888.99,'2022-07-04','小米的详情',FALSE,30);
INSERT INTO laptop VALUES(4,NULL,7888.99,'2022-07-04','小米的详情',FALSE,20);
INSERT INTO laptop VALUES(5,'小新',DEFAULT,DEFAULT,'小米的详情',DEFAULT,30);
INSERT INTO laptop VALUES(NULL,'小新2',DEFAULT,DEFAULT,'小米的详情',DEFAULT,30);

每日一句

 君子坦荡荡,小人长戚戚。

        君子心胸开朗,思想上坦率洁净,外貌动作也显得十分舒畅安定。小人心里欲念太多,心理负担很重,就常忧虑、担心,外貌、动作也显得忐忑不安,常是坐不定,站不稳的样子。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张的俊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值