精华内容
下载资源
问答
  • 这里写目录标题约束非空约束唯一约束主键约束外键约束检查约束三级目录 约束 约束:在创建表时,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性,有效性,完整性。 非空约束 非空约束...

    约束

    约束:在创建表时,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性,有效性,完整性。

    非空约束

    非空约束(NOT NULL):被约束的字段不能为NULL。
    在这里插入图片描述

    唯一约束

    唯一约束(UNIQUE):被约束的字段不能重复。

    • 列级约束
      在这里插入图片描述
    • 表级约束:多个字段联合起来添加一个约束
      在这里插入图片描述
      在这里插入图片描述

    主键约束

    主键约束(PRIMARY KEY):约束的字段既不能重复,也不能为NULL。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    MySQL提供主键值自增

    (非常重要)
    在这里插入图片描述
    在这里插入图片描述

    外键约束

    • 外键约束(FOREIGN KEY):
    • 外键字段:添加有外键约束的字段。
    • 外键值:外键字段中的每一个值。
    • 注意:外键可以为NULL

    例子
    在这里插入图片描述
    在这里插入图片描述
    t_student中的classno字段引用了t_class表中的cno字段,此时t_student表叫做子表,t_class表叫做父表。

    顺序要求

    • 删除数据时,先删除子表,再删除父表。
    • 创建数据时,先添加父表,再添加子表。
    • 创建表的时候,先创建父表,再创建子表。
    • 删除表的时候,先删除子表,再删除父表。

    建表语句

    //如果该表存在,先删除
    drop table if exists t_student;
    drop table if exists t_class;
    //创建父表
    create table t_class(
    cno int,
    cname varchar(255),
    primary key(cno)
    );
    //创建子表
    create table t_student(
    sno int,
    sname varchar(255),
    classsno int,
    foreign key(classno) references t_class(no)//外键约束
    );
    

    检查约束

    检查约束(CHECK):Oracle中有该约束,MySQL暂不支持该约束。

    展开全文
  • 非空约束 create table stu { id int, name varchar(20) not null }; -- 创建时添加非空约束 alter table stu modify name varchar(20);...唯一约束 create table stu( id int, phone_number varchar(20) uniq

    非空约束

    create table stu {
       id int,
       name varchar(20) not null
    }; -- 创建时添加非空约束
    alter table stu modify name varchar(20);  --删除name的非空约束
    alter table stu modify name varchar(20) not null; --添加非空约束
    

    唯一约束

    create table stu(
    id int,
    phone_number varchar(20) unique
    ); --创建一个添加唯一约束的表
    --添加唯一约束的列值不能相同 但是可以有多个Null
    alter table stu modify phone_number varchar(20); --删除不了唯一约束
    alter table stu drop index phone_number; --删除唯一约束
    alter table stu modify phone_number varchar(20) unique; --创建表后添加唯一约束
    

    主键约束

    create table stu(
    id int primary key,
    name varchar(20)
    ); --添加主键约束
    alter table stu modify id int; --无法删除主键约束
    alter table stu drop primary key;--删除主键约束
    alter table stu modify id int primary key;--创建完表后添加主键约束
    

    主键约束自增长

    create table stu(
    id int primary key auto_increment,
    name varchar(20)
    ); --添加主键约束并实现自动增长
    alter table stu modify id int;-- 删除自动增长 但是不删除主键约束
    --自动增长必须放在有主键约束的变量
    alter table stu modify id int auto_increment; --添加自动增长
    
    

    外键约束

    create table department(
    id int primary key auto_increment,
    dep_name varchar(20),
    dep_locationion varchar(20)
    );
    create table employee (
    id int primary key auto_increment,
    name varchar(20),
    age int,
    dep_id int,
    constraint emp_dept_fk foreign key(dep_id) references department(id)
    );--添加外键约束后employee的值只能在department表中的id列中选值
    alter table employee drop foreign key emp_dept_fk;--删除外键
    alter table employee add constraint emp_dept_fk foreign key (dep_id) references department(id);--添加外键
    alter table employee add constraint emp_dept_fk foreign key (dep_id) references department(id) on update cascade; --添加级联更新
    
    展开全文
  • Mysql约束详解什么是约束约束的分类非空约束唯一约束主键约束外键约束检查约束 什么是约束 约束(constraint),在创建表的时候,我们可以给表中字段加一些约束,来保证表中数据的完整性,可靠性。 约束的分类 ...

    什么是约束

    约束(constraint),在创建表的时候,我们可以给表中字段加一些约束,来保证表中数据的完整性,可靠性。

    约束的分类

    1. 非空约束(not null)
    2. 唯一性约束(unique)
    3. 主键约束(primary key)
    4. 外键约束(foregin key)
    5. 检查约束(check)(mysql不支持)

    非空约束

    非空约束的字段不能为NULL
    比如注册账号时,如果不输入账号就不能进行下一步,此时账号就是非空约束字段。

    drop table if exists vip;
    creat table vip(id int,name varchar(255) not null);
    insert into vip(id,name) values(1,'zhangsan');
    insert into vip(id,name) values(2,'lisi');
    

    唯一性约束

    唯一性约束字段不能重复
    比如游戏中用户名只能为一个,用户名就是唯一性约束字段。
    注意,唯一性约束下字段可以出现多个NULL

    //单一字段约束
    drop table if exists vip;
    creat table vip(id int,name varchar(255) unique,email varchar(255) unique);
    insert into vip(id,name) values(1,'zhangsan','123@qq.com');
    insert into vip(id,name) values(2,'lisi','123@163.com');
    //insert into vip(id,name) values(3,'lisi','456@qq.com');错误
    
    //多字段联合约束(表级约束)
    drop table if exists vip;
    creat table vip(id int,name varchar(255),email varchar(255), unique(name,email));
    insert into vip(id,name) values(1,'zhangsan','123@qq.com');
    insert into vip(id,name) values(2,'lisi','123@163.com');
    insert into vip(id,name) values(3,'lisi','456@qq.com');
    
    //不同约束联合,
    drop table if exists vip;
    creat table vip(id int,name varchar(255) unique not null);
    insert into vip(id,name) values(1,'zhangsan');
    insert into vip(id,name) values(2,'lisi');
    //此时name的属性被默认为主键约束(只有mysql有这特点)
    //当一个字段同时为非空和唯一约束,会被修饰为主键
    

    主键约束

    主键字段中每一个值都叫做主键值。
    主键值是每一行记录的唯一标识
    当几条记录相同时,通过主键值来区分(类似于身份证号)。
    任何一张表都要有主键,否则表为无效状态

    //单一主键
    drop table if exists vip;
    creat table vip(id int primary key,name varchar(255),email varchar(255));
    insert into vip(id,name) values(1,'zhangsan','123@qq.com');
    insert into vip(id,name) values(2,'lisi','123@163.com');
    insert into vip(id,name) values(3,'lisi','123@163.com');//正确
    //insert into vip(id,name) values(3,'wangwu','789@qq.com');错误
    
    //复合主键(一般不使用)
    drop table if exists vip;
    creat table vip(id int,name varchar(255),email varchar(255), primary key(id,name));
    insert into vip(id,name) values(1,'zhangsan','123@qq.com');
    insert into vip(id,name) values(1,'lisi','123@qq.com');//正确
    insert into vip(id,name) values(2,'lisi','123@163.com');
    //insert into vip(id,name) values(2,'lisi','456@qq.com');错误
    
    drop table if exists vip;
    creat table vip(id int primary key,name varchar(255) primary key,email varchar(255));
    //错误,主键只能有一个
    //上面情况是一个联合主键,与这个不同
    

    主键根据字段不同还可以分为自然主键和业务主键
    自然主键为自然数,与业务关系不大
    业务主键为业务数据中的某一种
    企业中用自然主键多,因为业务变动可能导致主键重复等问题

    drop table if exists vip;
    creat table vip(id int primary key auto_increment,name varchar(255));
    insert into vip(name) values('zhangsan');
    insert into vip(name) values('lisi');
    insert into vip(name) values('lisi');
    //mysql对主键进行自增操作
    

    外键约束

    现在有个岗位调查数据库设计,有姓名和公司等字段

    id 姓名 公司
    1 zhangsan 深圳市腾讯计算机系统有限公司
    2 lisi 深圳市腾讯计算机系统有限公司
    3 wangwu 北京市字节跳动有限公司
    4 zhaoliu 北京市字节跳动有限公司
    5 trump 深圳市腾讯计算机系统有限公司
    6 Biden 北京市字节跳动有限公司

    按照上面这样设计会使得表存在大量冗余信息

    公司编号 公司
    100 深圳市腾讯计算机系统有限公司
    101 北京市字节跳动有限公司
    id 姓名 公司编号
    1 zhangsan 100
    2 lisi 100
    3 wangwu 101
    4 zhaoliu 101
    5 trump 100
    6 Biden 101
    • 这样分开设计可以减少每个表的消耗,
    • 但是存在问题,可能输入的公司编号是错误的,
    • 这时应该考虑用外键约束来防止错误输入 。
    • 区分父表和子表跟区分C++父类子类相同,即包含其他表的信息时这个表就为子表,被包含就是父表。
    • 创建和删除的过程也类似,创建时先创建父表,删除时先删除子表
    drop table if exists company;
    drop table if exists employee;
    creat table company(companyid int primary key ,cname varchar(255));
    creat table employee(id int primary key auto_increment ,name varchar(255),cid int,
    					 foreign key(cid) references company(companyid));
    //员工的cid受公司companyid的约束,只能使用companyid中的值					
    insert into company(companyid,cname) values(100,'**腾讯**');
    insert into company(companyid,cname) values(101,'**字节**');
    
    insert into employee(name,cid) values('zhangsan',100);
    insert into employee(name,cid) values('lisi',100);
    ...
    
    
    • 被外键约束的字段不一定是主键,但该字段必须要有唯一性,即unique修饰
    • 外键可以为NULL

    检查约束

    详解见oracle


    展开全文
  • MySQL主键约束、非空约束、唯一约束、外键约束 概念:对表中的数据进行约束(限定),保证数据的正确性、有效性和完整性 分类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign...

    MySQL主键约束、非空约束、唯一约束、外键约束

    1. 概念:对表中的数据进行约束(限定),保证数据的正确性、有效性和完整性

    2. 分类:

      • 主键约束:primary key
      • 非空约束:not null
      • 唯一约束:unique
      • 外键约束:foreign key
    3. primary key:主键约束

      • 含义:唯一且非空

      • 一张表仅能有一个字段为主键

      • 主键是表中记录的唯一标识

      1. 在创建表时,添加主键

        CREATE TABLE student(
        	s_id int primary key, --给s_id添加主键约束
            name varchar(20)
        );
        
      2. 创建完表后,添加主键

        ALTER TABLE student MODIFY id INT PRIMARY KEY;
        
      3. 删除主键约束

        ALTER TABLE student DROP PRIMARY KEY;
        
    4. not null:非空约束

      • 添加列数据不能为NULL
      1. 在创建表时,添加非空约束

        CREATE TABLE student(
        	s_id int,
            name varchar(20) NOT NULL --name添加非空约束
        );
        
      2. 创建完表后,添加非空约束

        ALTER TABLE student MODIFY name VARCHAR(20) NOT NULL;
        
      3. 删除主键约束

        ALTER TABLE student MODIFY name VARCHAR(20);
        
    5. unique:唯一约束

      • 添加列数据不能重复
      • 可以有NULL值,但是只能有一个
      1. 在创建表时,添加唯一约束

        CREATE TABLE student(
        	s_id int,
            phone varchar(20) NUIQUE --phone添加非空约束
        );
        
      2. 创建完表后,添加唯一约束

        ALTER TABLE student MODIFY phone VARCHAR(20) UNIQUE;
        
      3. 删除唯一约束

        ALTER TABLE student DROP INDEX phone;
        
    6. foreign key:外键约束

      1. 在创建表时,添加外键约束

        CREATE TABLE 表名(
        	...
        	外键列,
        	CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCE 外表名称(外表列名称);
        );
        
      2. 创建表之后,添加外键

        ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERCES 外表名称(外表列名称);
        
      3. 删除外键

        ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
        
      4. 级联操作

        1. 添加级联操作

          ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERCES 外表名称(外表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
          
        2. 级联更新:ON UPDATE CASCADE

        3. 级联删除:ON DELETE CASCADE

    展开全文
  • 目录 1 数据库表的约束 1.1约束的作用 1.2约束种类 1.3 约束种类--主键约束 ...唯一约束:在创建表时,添加唯一约束 唯一约束:删除唯一约束 唯一约束:在表创建完后,添加唯一约束 1.5 约束种类--非空约束 ...
  • 非空约束:是指 某些列不能设置为NULL值,所以要对列添加非空约束 非空约束的特点:不可以为空,但可以是重复值 NOT NULL 是非空约束的关键字 CREATE TABLE student ( sid INT PRIMARY KEY AUTO_INCRAMENT, ...
  • 约束1、约束概念2、非空约束2.1 创建表时添加约束2.2 创建表后,添加非空约束2.3 删除name的非空约束3、唯一约束3.1 创建表时添加约束3.2 创建表后,添加唯一约束3.3 删除唯一约束4、主键约束4.1 创建表时,添加主键...
  • 唯一约束:unique 主键约束:primary key 外键约束:foreign key 默认约束:Default 检查约束:Check 非空约束:not null 某一列的值不能为空 创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) ...
  • sql server 增加非空约束 唯一约束

    万次阅读 2015-01-20 11:11:06
    -- 设置非空 ALTER TABLE TABLE_NAME ALTER COLUMN sno sno的数据类型 NOT NULL; -- 设置唯一 ALTER TABLE student ADD UNIQUE (sno)
  • 1 约束  什么是约束  除了数据类型以外额外添加的... not null 非空约束 数据不能为空  create table stu(id int , name char(10) not bull);    default 默认值约束 可以指定字段的默认值 creat...
  • 主键约束、唯一约束非空约束、默认约束 1、主键约束:每个表中最多有一个主键约束,定义为主键的字段不能重复,不能为null值。 字段名 数据类型 primary key; primary key(字段1,字段2.....);   2、非空...
  • 约束 * 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 * 分类: 1.... 2. 非空约束:not null ... 唯一约束:unique 4. 外键约束:foreign key * 非空约束:not null,值不能为null 1....
  • 非空约束 NULL:字段值可以为空 NOT NULL:字段值禁止为空。使用了费空约束的字段如果在添加数据时,没有指定值... 唯一约束 删除主键约束 显示 添加唯一约束 默认约束 ...
  • 约束 约束(Constraint)是为了保证表中数据的完整性,合法性以及有效性。... 非空约束(not null):指这个数据必须填写,不能为null ...一般usename(唯一约束) password(非空约束非空约束 not null 可
  • 唯一约束:unique 外键约束:foreign key 1.1 非空约束:not null 1)在创建表时添加约束: CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name为非空 ); 2)创建表后再添加非空约束: ALTER ...
  • 约束:对数据进行限定,保证数据正确性,有效性,完整性 分类: 1.主键约束 primary key 主键的自动增长 2.非空约束 not null 3.唯一约束 unique 4.外键约束 foreign key
  • 1)非空约束:not null ,字段的值不能为空。若添加数据时没有指定值,会报错。 添加非空约束 方式1:在创建表时添加非空约束 create table bookinfo( book_id int, book_name varchar(20) not null ); 方式...
  • 1、概念:对表中的数据进行限定,保证... 注意:①含义:有主键就代表了非空唯一;②一张表只能有一个字段为主键;③主键就是表中记录的唯一标识。           
  • 文章目录1、约束简介2、非空约束(not null、nk)2.1 范例1:使用非空约束2.2 范例2:正确地增加语句2.3 范例3:错误地增加语句3、唯一约束(unique、uk)3.1 范例1:使用唯一约束3.2 范例2:正确地增加语句3.3 范例3:...
  • 1、含义:非空唯一 2、一张表只能有一个字段为主键 3、主键就是表中记录的唯一标识 1.2、在创建表时添加主键约束 CREATE TABLE stu( id INT PRIMARY KEY,-- 给id添加主键约束 NAME varchar(20) ); 1.3、删除主键...
  • 在SQL中约束就是对表中的数据进行一些限定,...3.唯一约束:unique 4.外键约束:foreign key 一、非空约束 添加了非空约束的列,列中的值不能为null #非空约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT ...
  • Oralce的二维表操作 --创建表并同时添加约束 --主键约束 ... --唯一约束 --外键约束 --简单的表创建和字段类型 --简单的创建语句: create table student( sno number(10) ,--primary key ...
  • 一、非空约束(只能在列级设置,不能在表级设置) 1、在创建表时设置非空约束 CREATE TABLE table_name( column_name datatype NOT NULL,…… );     2、在修改表时添加非空约束 ALTER TABLE table_name ...
  • 10. 数据库约束-主键约束-唯一约束-非空约束-默认值约束概述约束其实就是一种限制,用于修饰表中的列. 通过这种限制来保证表中数据的正确性、有效性和完整性。约束的类型约束名约束关键字主键...
  • 非空(not null)、唯一(unique key)、主键(primary key)、自增长(auto_increment)、默认约束(default)准备基础环境:mysql> create database mydb2; #创建一个名为mydb2的数据库Query OK, 1 row affected (0.00 ...
  • 非空约束:设置列时,可为空默认可为空,去掉...主键约束:主键列自动具有非空约束和唯一约束的属性,一个表只能有一个主键(类型:Primary)自动生成索引,提高查询效率 外键约束:两个表之间的约束关系;表与...
  • 表的约束概述 1.概念:对表中的数据进行限定,保证数据...唯一约束:unique 4.外键约束:foreign key 非空约束:not null 1.创建表时添加约束 create table stu( id INT name varchar(20) not nu...
  • 约束类型按功能包括有:非空约束、主键约束、唯一约束、默认约束、外键约束、 【自动编号】AUTO_INCREMENT 起始值为1,增量为1。 自动编号的字段必须为数值型,若为浮点数小数位数必须为0。 自动编号必须和主键组合...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,874
精华内容 1,549
关键字:

非空唯一约束