精华内容
下载资源
问答
  • 非空约束(NOT NULL)

    千次阅读 2020-02-05 22:36:41
    非空约束指的是表中一个字段的内容不允许为空,如果要使用非空约束,只需要在每个列的后面利用“NOT NULL”声明即可。 范例:使用非空约束 --删除数据表 DROP TABLE member PURGE; --清空回收站 PURGE ...

    非空约束(NOT NULL,NK)

    非空约束指的是表中的某一个字段的内容不允许为空,如果要使用非空约束,只需要在每个列的后面利用“NOT NULL”声明即可。

    范例:使用非空约束

    --删除数据表
    DROP TABLE member PURGE;
    --清空回收站
    PURGE RECYCLEBIN;
    --创建数据表
    CREATE TABLE member(
    	mid  NUMBER,
    	name VARCHAR2(20)  NOT NULL
    );
    --测试数据
    INSERT INTO member(mid,name) values (1,'韩信');
    INSERT INTO member(mid,name) values (2,'李白');
    --提交事务
    COMMIT;
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NkQxF04Y-1580913269926)(C:\Users\016322605\Desktop\csdn\Oracle\捕获222.PNG)]

    范例:增加正确的语句

    INSERT INTO member(mid,name) values (3,'露娜'); 
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-11uuugd4-1580913269926)(C:\Users\016322605\Desktop\csdn\Oracle\捕获223.PNG)]

    范例:错误的增加

    insert into member (mid,name) values(3,null);
    insert into member (mid) values(3);
    
    

    ​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GabtweQV-1580913269927)(C:\Users\016322605\Desktop\csdn\Oracle\捕获224.PNG)]

    错误信息提示:无法将NULL插入(“SCOTT”,“MEMBER”,“NAME”)

    在设置了非空约束之后,如果出现了违反非空约束的操作,那么会准确定位到哪个模式,哪张表,哪个字段。

    展开全文
  • 通过对表的行或列的数据做出限制,来确保的数据完整性和唯一性为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不...

    概览

    约束是一种限制,通过对表的行或列的数据做出限制,来确保表的数据完整性和唯一性

    为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。

    约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种:

    # NOT NULL :非空约束,指定某列不能为空;

    # UNIQUE : 唯一约束,指定某列或者几列组合不能重复

    # PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录

    # FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性

    NOT NULL

    是否可空,null表示空,非字符串

    not null - 不可空,若用户未指定值,系统会报错   列表 数据类型 not null

    null - 可空

    mysql> create table t12 (id int not null);

    Query OK,0 rows affected (0.02sec)

    mysql> select * fromt12;

    Emptyset (0.00sec)

    mysql>desc t12;+-------+---------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +-------+---------+------+-----+---------+-------+

    | id | int(11) | NO | | NULL | |

    +-------+---------+------+-----+---------+-------+

    1 row in set (0.00sec)

    #不能向id列插入空元素。

    mysql> insert into t12 values (null);

    ERROR1048 (23000): Column 'id' cannot be nullmysql> insert into t12 values (1);

    Query OK,1 row affected (0.01 sec)

    -------------------------------------------------------

    修改表指定列添加非空约束

    alter table 表名 modify 列名  数据类型 not null;

    删除非空约束

    alter table 表名 modify 列名  数据类型;

    UNIQUE

    唯一约束,指定某列或者几列组合不能重复,要求列唯一,可以为空

    方法一:定义完之后直接指定唯一约束

    create table department1(

    idint,

    name varchar(20) unique,

    comment varchar(100)

    );

    方法二:定义完所有列之后指定唯一约束

    create table department2(

    idint,

    name varchar(20),

    comment varchar(100),

    unique(name)

    );

    mysql> insert into department1 values(1,'IT','技术');

    Query OK,1 row affected (0.00sec)

    mysql> insert into department1 values(1,'IT','技术');

    ERROR1062 (23000): Duplicate entry 'IT' for key 'name'

    -------------------------------------------------------

    修改表时添加唯一约束

    alter table 表名 modify 列名 数据类型 unique;

    alter table 表名 add unique(列名);

    alter table 表名 add constrain unique(列名);

    --------------------------------------------------

    删除唯一约束

    alter table 表名 drop index 列名;

    alter table 表名 drop key 列名;

    not null 和unique的结合

    mysql> create table t1(id int not nullunique);

    Query OK,0 rows affected (0.02sec)

    mysql>desc t1;+-------+---------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +-------+---------+------+-----+---------+-------+

    | id | int(11) | NO | PRI | NULL | |

    +-------+---------+------+-----+---------+-------+

    1 row in set (0.00 sec)

    PRIMARY KEY

    主键为了保证表中的每一条数据的该字段都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行数据。

    主键可以包含一个字段或多个字段。当主键包含多个栏位时,称为组合键 (Composite Key),也可以叫联合主键。

    主键可以在建置新表格时设定 (运用 CREATE TABLE 语句),或是以改变现有的表格架构方式设定 (运用 ALTER TABLE)。

    主键必须唯一,主键值非空;可以是单一字段,也可以是多字段组合

    主键的类型

    主键分为单字段主键和多字段主键

    单字段主键由一个字段(列)组成

    1.在定义 的同时指定主键      列名 数据类型 primary key;

    2,在列定义的后面指定主键    [constraint ] primary key [列名]

    多字段联合主键(复合主键)

    主键有多个字段联合组成    primary key (字段1,字段2....字段3)

    例:

    create table 表名(表名1 数据类型,

    表名2 数据类型,

    primary key(表名1,表名2));

    通过修改表为列添加主键

    alter table 表名 modify 列名 数据类型 primary key;

    alter table 表名 modify add primary key (列名);

    alter table 表名 modify add constrain primary key (列名);

    删除主键

    alter table 表名 drop primary key;

    AUTO_INCREMENT

    约束字段为自动增长,被约束的字段必须同时被key约束(auto_increment 应该紧跟primary key后面)

    #不指定id,则自动增长

    create table student(

    idintprimary key auto_increment,

    name varchar(20),

    sexenum('male','female') default 'male');

    mysql>desc student;+-------+-----------------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-------+-----------------------+------+-----+---------+----------------+

    | id | int(11) | NO | PRI | NULL | auto_increment |

    | name | varchar(20) | YES | | NULL | |

    | sex | enum('male','female') | YES | | male | |

    +-------+-----------------------+------+-----+---------+----------------+mysql>insert into student(name) values-> ('egon'),-> ('alex')->;

    mysql> select * fromstudent;+----+------+------+

    | id | name | sex |

    +----+------+------+

    | 1 | egon | male |

    | 2 | alex | male |

    +----+------+------+#也可以指定id

    mysql> insert into student values(4,'asb','female');

    Query OK,1 row affected (0.00sec)

    mysql> insert into student values(7,'wsb','female');

    Query OK,1 row affected (0.00sec)

    mysql> select * fromstudent;+----+------+--------+

    | id | name | sex |

    +----+------+--------+

    | 1 | egon | male |

    | 2 | alex | male |

    | 4 | asb | female |

    | 7 | wsb | female |

    +----+------+--------+#对于自增的字段,在用delete删除后,再插入值,该字段仍按照删除前的位置继续增长

    #delete 只是删除插入的数值,并没有删除表中结构

    mysql> delete fromstudent;

    Query OK,4 rows affected (0.00sec)

    mysql> select * fromstudent;

    Emptyset (0.00sec)

    mysql> insert into student(name) values('ysb');

    mysql> select * fromstudent;+----+------+------+

    | id | name | sex |

    +----+------+------+

    | 8 | ysb | male |

    +----+------+------+#应该用truncate清空表,比起delete一条一条地删除记录,truncate是直接清空表,在删除大表时用它

    mysql>truncate student;

    Query OK,0 rows affected (0.01sec)

    mysql> insert into student(name) values('egon');

    Query OK,1 row affected (0.01sec)

    mysql> select * fromstudent;+----+------+------+

    | id | name | sex |

    +----+------+------+

    | 1 | egon | male |

    +----+------+------+rowin set (0.00 sec)

    FOREIKEY

    外键:用于两个表的数据直接建立链接,可以是一列或者多列,一个表可以有多个外键

    外键对应的是参照完整性,一个表的外键可以是空值,若不为空值,则每个外键必须等于另一个主键的某个值

    使用外键约束: [constraint]foreign key (列名) reference (主键)修改表时添加外键约束: alter table 表名 add foreign key 列名  reference (主键)删除外键约束: alter table 表名 drop foreign key 列名

    mysql> create table departments (dep_id int(4),dep_name varchar(11));

    Query OK,0 rows affected (0.02sec)

    mysql>desc departments;+----------+-------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +----------+-------------+------+-----+---------+-------+

    | dep_id | int(4) | YES | | NULL | |

    | dep_name | varchar(11) | YES | | NULL | |

    +----------+-------------+------+-----+---------+-------+

    2 rows in set (0.00sec)

    # 创建外键不成功

    mysql> create table staff_info (s_id int,name varchar(20),dep_id int,foreign key(dep_id) references departments(dep_id));

    ERROR1215(HY000): Cannot add foreign key

    # 设置dep_id非空,仍然不能成功创建外键

    mysql> alter table departments modify dep_id int(4) not null;

    Query OK,0 rows affected (0.02sec)

    Records:0 Duplicates: 0 Warnings: 0mysql>desc departments;+----------+-------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +----------+-------------+------+-----+---------+-------+

    | dep_id | int(4) | NO | | NULL | |

    | dep_name | varchar(11) | YES | | NULL | |

    +----------+-------------+------+-----+---------+-------+

    2 rows in set (0.00sec)

    mysql> create table staff_info (s_id int,name varchar(20),dep_id int,foreign key(dep_id) references departments(dep_id));

    ERROR1215(HY000): Cannot add foreign key constraint

    # 当设置字段为unique唯一字段时,设置该字段为外键成功

    mysql> alter table departments modify dep_id int(4) unique;

    Query OK,0 rows affected (0.01sec)

    Records:0 Duplicates: 0 Warnings: 0mysql> desc departments; +----------+-------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +----------+-------------+------+-----+---------+-------+

    | dep_id | int(4) | YES | UNI | NULL | |

    | dep_name | varchar(11) | YES | | NULL | |

    +----------+-------------+------+-----+---------+-------+

    2 rows in set (0.01sec)

    mysql> create table staff_info (s_id int,name varchar(20),dep_id int,foreign key(dep_id) references departments(dep_id));

    Query OK,0 rows affected (0.02 sec)

    外键约束参照:

    cascade:从父类删除或更新,且自动删除或更新字表匹配的行

    #表类型必须是innodb存储引擎,且被关联的字段,即references指定的另外一个表的字段,必须保证唯一

    create table department(

    idintprimary key,

    name varchar(20) not null)engine=innodb;

    #dpt_id外键,关联父表(department主键id),同步更新,同步删除

    create table employee(

    idintprimary key,

    name varchar(20) not null,

    dpt_idint,

    foreign key(dpt_id)

    references department(id)

    on delete cascade # 级连删除

    on update cascade # 级连更新

    )engine=innodb;

    #先往父表department中插入记录

    insert into department values

    (1,'教质部'),

    (2,'技术部'),

    (3,'人力资源部');

    #再往子表employee中插入记录

    insert into employee values

    (1,'yuan',1),

    (2,'nezha',2),

    (3,'egon',2),

    (4,'alex',2),

    (5,'wusir',3),

    (6,'李沁洋',3),

    (7,'皮卡丘',3),

    (8,'程咬金',3),

    (9,'程咬银',3)

    ;

    #删父表department,子表employee中对应的记录跟着删

    mysql> delete from department where id=2;

    Query OK,1 row affected (0.00sec)

    mysql> select * fromemployee;+----+-----------+--------+

    | id | name | dpt_id |

    +----+-----------+--------+

    | 1 | yuan | 1 |

    | 5 | wusir | 3 |

    | 6 | 李沁洋 | 3 |

    | 7 | 皮卡丘 | 3 |

    | 8 | 程咬金 | 3 |

    | 9 | 程咬银 | 3 |

    +----+-----------+--------+

    6 rows in set (0.00sec)

    #更新父表department,子表employee中对应的记录跟着改

    mysql> update department set id=2 where id=3;

    Query OK,1 row affected (0.01sec)

    Rows matched:1 Changed: 1 Warnings: 0mysql> select * fromemployee;+----+-----------+--------+

    | id | name | dpt_id |

    +----+-----------+--------+

    | 1 | yuan | 1 |

    | 5 | wusir | 2 |

    | 6 | 李沁洋 | 2 |

    | 7 | 皮卡丘 | 2 |

    | 8 | 程咬金 | 2 |

    | 9 | 程咬银 | 2 |

    +----+-----------+--------+

    6 rows in set (0.00 sec)

    -----------------------------------------------------------------------------------------------

    主键约束与唯一约束的区别

    一个表中可以有多个unique 声明,但只能有一个primary key 声明

    声明primary key 的列不允许为空

    unique允许为空

    default 默认约束

    默认约束指定某列的默认值

    语法: 列名数据类型 defualt 默认值;

    修改表时添加约束:

    alter table 表名 modify  列名 数据类型 default 默认值;

    alter table 表名 alter column 列名 set default 默认值;

    删除约束

    alter table 表名 modify  列名 数据类型 ;

    alter table 表名 alter column 列名 drop default;

    展开全文
  • MySQL数据库中的约束

    2020-07-16 16:41:34
    *非空约束:not null 列的值不能为空 1)在创建时添加非空约束 2)删除非空约束 例句:alter table 表名 modify 列名 数据类型; 3)添加非空约束(创建之后添加) 例句:alter table 表名 modify 列名 数据...

    概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性
    分类:
    1.主键约束:primary key
    2.非空约束:not null
    3.唯一约束:unique
    4.外键约束:foreign key

    *非空约束:not null 某一列的值不能为空
    1)在创建表时添加非空约束
    2)删除非空约束
    例句:alter table 表名 modify 列名 数据类型;
    3)添加非空约束(创建表之后添加)
    例句:alter table 表名 modify 列名 数据类型 not null;

    *唯一约束:unique 某一列的值不能重复
    注意:唯一约束可以有null值,但是只能有一个
    1)在创建表时添加唯一约束(和非空用法一样)
    2)删除唯一约束
    alter table 表名 drop index 列名;
    3)添加唯一约束(创建表之后添加:指定的列内不能有重复)
    alter table 表名 modify 列名 数据类型 unique;

    *主键约束
    1)注意:
    (1)含义:非空且唯一
    (2)一张表只能有一个字段为主键
    (3)主键就是表中记录的唯一标识
    2)在创建表时,添加主键约束
    主键 数据类型 primary key;
    3)删除主键
    alter table 表名 drop primary key;
    4)添加主键(表创建完之后:要添加主键的列不能有重复)
    alter table 表名 modify 列名(主键) 数据类型 primary key;
    5)自动增长:
    (1)概念:如果某一列是数值类型的,使用auto_increment可以来完成值得自动增长
    (2)主键 数据类型 primary key auto_increment;//给列添加自动增长的主键约束
    (3)删除自动增长:alter table 表名 modify 主键 数据类型;//表创建之后
    (4)添加自动增长:alter table 表名 modify 主键 数据类型 auto_increment;//表创建之后

    *外键约束
    1)在创建表时,可以添加外键
    语法:
    create table 表名(
    . . .
    外键列
    constraint 外键名称 foreign key(外键名称列)references 主表名称(主表列名称)
    );
    2)删除外键
    alter table 表名 drop foreign key 外键名称;
    3)添加外键(创建表之后)
    alter table 表名 add constraint 外键名称 foreign key(外键名称列)references 主表名称(主表列名称)
    4)级联操作
    (1)添加级联操作
    语法:alter table 表名 add constraint 外键名称 foreign key(外键名称列)references 主表名称(主表列名称)
    on update cascade;
    (2)分类
    *级联更新:on update cascade
    *级联删除:on delete cascade

    展开全文
  • 概述为了防止不符合规范数据进入数据库,在用户对数据进行...约束条件与数据类型宽度一样,都是可选参数,主要分为以下几种:NOT NULL # 非空约束,指定某列不能为空;UNIQUE # 唯一约束,指定某列或者几列组合...

    概述

    为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。

    约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种:

    NOT NULL # 非空约束,指定某列不能为空;

    UNIQUE # 唯一约束,指定某列或者几列组合不能重复

    PRIMARY KEY # 主键,指定该列的值可以唯一地标识该列记录

    FOREIGN KEY # 外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性

    NOT NULL

    not null # 不可为空

    null # 可以为空

    create table t1 (id int(4) not null)

    UNIQUE

    唯一约束, 指定某列或者几列组不能重复

    create table t1 (id int(10) unique);

    create table t1 (id int(5) not null unique); # not null unique == primary key

    create table service(

    id int primary key auto_increment,

    host varchar(15) not null,

    port int not null,

    unique(host,port) # 联合唯一

    );

    PRIMARY KEY

    主键为了保证表中的每一条数据的该字段都是表格中的唯一值。它是用来独一无二地确认一个表格中的每一行数据。

    主键可以包含一个字段或多个字段。当主键包含多个栏位时,称为组合键,也可以叫联合主键。

    主键可以在建置新表格时设定 (运用 CREATE TABLE 语句),或是以改变现有的表格架构方式设定 (运用 ALTER TABLE)。

    主键必须唯一,主键值非空;可以是单一字段,也可以是多字段组合。

    可以设置多个非空 + 唯一 (not null + unique)

    删除主键

    alter table 表名 drop primary key;

    单字段主键

    1. not null + unique # 主键且只有一个主键 (id)

    create table t1 (id int(5) not null unique, name varchar(32) not null unique);

    2. primary key # 主键

    create table t1 (id int primary key);

    3. 在所有字段后单独定义 primary key

    create table t1 (id int, name varchar(9) primary key(id));

    多字段主键

    1. name字段可能会出现重复,所以加上ID字段来保证记录的唯一性

    create table service(id int, name varchar(32), age int, primary key(id,name));

    mysql> insert into service values

    -> ('172.16.45.10','3306','mysqld'),

    -> ('172.16.45.11','3306','mariadb')

    -> ;

    mysql> insert into service values ('172.16.45.10','3306','nginx');

    ERROR 1062 (23000): Duplicate entry '172.16.45.10-3306' for key 'PRIMARY'

    AUTO_INCREMENT

    约束字段为自动增长,被约束的字段必须同时被key约束

    create table t1 (id int primary key auto_increment, sex("男", "女") default "男");

    添加数据时可以指定id, 也可以不指定

    对于自增的字段,在用delete删除后,再插入值,该字段仍按照删除前的位置继续增长

    应该用 truncate是直接清空表,再进行添加id, 会从1开始记录

    offset 偏移量

    步长: auto_increment_increment

    起始偏移量: auto_increment_offset

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

    1. 设置自增字段起始值

    alter table t1 auto_increment = 3;

    2. 建表时指定初始值, 注意初始值的设置为表选项,应该放到括号外

    create table t1 (id int primary key auto_increment,name varchar(20))auto_increment=3;

    3. 设置步长: auth_increment_increment (基于表级别的)

    create table t1 (id int auto_increment)engine=innodb, auto_increment=2 步长=2;

    # 基于会话级别

    set session auth_increment_increment=2 # 修改会话级别的步长

    # 基于全局级别的

    set global auth_increment_increment=2 # 修改全局级别的步长(所有会话都生效)

    注意:

    如果 auto_increment_offset 的值大于 auto_increment_increment 的值,则auto_increment_offset的值会被忽略.

    FOREIKEY

    1. 概述

    如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

    2. 外键约束

    MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。

    3. 基本概念

    1) MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。

    2) 外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。

    3) 如果需要更好的性能,并且不需要完整性检查,可以选择使用MyISAM表类型,如果想要在MySQL中根据参照完整性来建立表并且希望在此基础上保持良好的性能,最好选择表结构为innoDB类型。

    4. 外键的使用条件

    1) 两个表必须是InnoDB表,MyISAM表暂时不支持外键

    2) 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;

    3) 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;

    5. 外键的优点

    可以使得两张表关联,保证数据的一致性和实现一些级联操作。保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中的列的值!可以使得两张表关联,保证数据的一致性和实现一些级联操作;

    创建外键的语法

    1. [CONSTRAINT symbol] foreign key (关联的字段) references 关联的表名(关联的字段);

    [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]

    [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]

    2. 该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字。

    ON DELETE、 ON UPDATE # 表示事件触发限制,可设参数

    . cascade方式

    在父表上update/delete记录时,同步update/delete掉子表的匹配记录

    . set null方式

    在父表上update/delete记录时,将子表上匹配记录的列设为null

    要注意子表的外键列不能为not null

    . No action方式

    如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作

    . Restrict方式

    同no action, 都是立即检查外键约束

    . Set default方式

    父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

    示例

    1. 表类型必须是 innodb存储引擎,且被关联的字段,即 references指定的另外一个表的字段,必须保证唯一

    # 主表

    create table t1 (id1 int primary key, name varchar(32) not null)engine=innodb;

    2. p_id外键,关联父表(t1主键id1,同步更新,同步删除

    # 子表

    create table t2 (id int primary key, name varchar(32), p_id int,

    foreign key(p_id)

    references t1(id1)

    on delete cascade # 级联删除

    on update cascade # 级联更新

    )engine=innodb;

    1) 先往父表t1中插入记录

    insert into t1 values (1,'教质部'), (2,'技术部'),;

    2) 再往子表t2中插入记录

    insert into t2 values (1,'yuan',1), (2,'nezha',2), (3,'egon',2),

    (4,'alex',2), (5,'wusir',3), (6,'李沁洋',3),

    (7,'皮卡丘',3), (8,'程咬金',3), (9,'程咬银',3);

    3) 删父表t1,子表t2中对应的记录跟着删

    delete from t1 where id=2;

    4) 更新父表t1,子表t2中对应的记录跟着改

    update t1 set id=2 where id=3;

    展开全文
  • MySQL表的完整性约束

    2019-06-20 22:29:00
    表的完整性约束 为了防止不符合规范数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照...# NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重...
  • 一,mysql中表的约束为了防止不符合规范数据进入...约束条件与数据类型宽度一样,都是可选参数,主要分为以下几种:NOT NULL :非空约束,指定某列不能为空;是否可空,null表示空,非字符串not null - 不可空nu...
  • MySQL中的约束

    2017-02-24 15:00:45
    MySQL约束保存在information_schema数据库table_constraints,可以通过该查询约束信息;  ...not null:非空约束,指定某列不为空  unique: 唯一约束,指定某列和几列组合数据不能重复
  • mysql表的完整性约束

    2018-10-08 19:22:00
    概览 为了防止不符合规范数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定约束条件...# NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不...
  • not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列或几列组合数据不能重复 primary key:主键约束,指定某列或几列组合数据非空且唯一 foreign key:外键,指定该列记录属于主表中的一条记录,...
  • mysql中的约束

    2014-09-30 23:04:03
    MySQL约束保存在information_schema数据库table_constraints,可以通过该查询约束信息;...not null:非空约束,指定某列不为空  unique: 唯一约束,指定某列和几列组合数据不能重复  primary k
  • 为了防止不符合规范数据进入数据库,在...约束条件与数据类型宽度一样,都是可选参数,主要分为以下几种:NOT NULL : # 非空约束,指定某列不能为空;UNIQUE : # 唯一约束,指定某列或者几列组合不能重复PRI...
  • 以及添加/修改/删除约束的方式一、约束类型在MySQL,有如下几种约束:(1) NOT NULL:指示某列不能存储空值(2) UNIQUE:保证某列的每行必须有唯一的值(3) PRIMARY KEY:指示某一列为的主码,是非空且唯一的(4) ...
  • MySQL约束保存在information_schema数据库table_constraints,可以通过该查询...not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合数据不能重复 primary key:主键约束,指定某
  • mysql的约束

    2016-06-28 18:47:45
    mysql约束 ...MySQL约束保存在information_schema数据库table_constraints,可以通过该查询约束信息;...not null:非空约束,指定某列不为空  unique: 唯一约束,指定某列和几列组合
  • MySQL的约束

    2015-05-28 13:56:16
    MySQL中约束保存在information_schema数据库的table_constraints,可以通过该查询约束信息; 约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,...primary key:主键约束,指定某列的
  • 数据库的约束

    2019-06-21 16:04:26
    通过约束可以更好的保证数据表里数据的完整性。...NOT NULL:非空约束,指定某列不能为空。 UNIQUE:唯一约束,指定某列或者几列组合不能重复。 PRIMARY KEY: 主键,指定该列的值可以唯一的标识该条记录。...
  • 约束 约束用来对表的数据进行限定,保证数据的正确性,完整性和有效性。...-- 创建stu,添加name属性的非空约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name非空约束 ); -- 删除n
  • MySQL约束保存在information_schema数据库的...常用五类约束:not null:非空约束,指定某列不为空unique: 唯一约束,指定某列和几列组合的数据不能重复primary key:主键约束,指定某列的数据不能重复、唯一fo...
  • MySQL约束保存在information_schema数据库的...常用五类约束:not null:非空约束,指定某列不为空unique: 唯一约束,指定某列和几列组合的数据不能重复primary key:主键约束,指定某列的数据不能重复、唯一fo...
  • 1 NOT NULL 非空约束 表中某列如果被定义为非空约束后 那么这一列是不允许有空值。 2 UNIQUE 唯一约束 表中某列如果被定义为唯一约束后 那么这一列中额数据是不允许出现重复 3 PRIMARY KEY 主键约束 主键一般...
  • MySQL数据库的约束

    2015-09-06 20:02:29
    MySQL约束MySQL约束保存在information_schema数据库table_constraints,...常用五类约束:not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合数据不能重复 primary key:主键约

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

删除表中某列的非空约束