精华内容
下载资源
问答
  • 建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。 如果完整性约束条件涉及到该表的多...

    建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。


    如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。 



    表级完整性约束必须定义在列级完整性约束的后面。

       




     例1 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。 

        CREATE TABLE Student 
       (Sno CHAR(5)NOT NULL UNIQUE, /*列级完整性约束条件,Sno取值唯一, 
        Sname CHAR(20)UNIQUE, 不许取空值*/ 
        Ssex CHAR(1), 
        Sage INT, 
        Sdept CHAR(15)); 
      
    常用完整性约束: 
    主码约束:    PRIMARY  KEY 
    唯一性约束:UNIQUE 
    非空值约束:NOT NULL 
    参照完整性约束
    展开全文
  • 完整性约束关键字 含义 DEAFAULT 设置字段值为默认值 UNIQUE KEY(UK) 约束字段的值 NOT NULL 约束字段值不为空 NOT NULL 约束字段值不为空
    完整性约束关键字含义
    NOT NULL约束字段值不为空
    DEAFAULT设置字段值为默认值
    UNIQUE KEY(UK)约束字段的值唯一
    PRIMARY KEY(PK)设置字段为表的主键
    AUTO_INCREAMENT约束字段的值为自动递增
    FOREIGN KEY(FK)设置字段为表的外键
    展开全文
  • 1.完整性约束条件测试 1.1完整性约束条件有哪些 PRIMARY KEY 主键 AUTO_INCREMENT 自增长 FOREIGN KEY 外键 NOT NULL 非空 UNIQUE KEY 唯一 DEFAULT 默认值 1.测试主键 设置一个主键 CREATE TABLE IF NOT EXISTS ...

    1.完整性约束条件测试

    1.1完整性约束条件有哪些

    PRIMARY KEY 主键
    AUTO_INCREMENT 自增长
    FOREIGN KEY 外键
    NOT NULL 非空
    UNIQUE KEY 唯一
    DEFAULT 默认值

    1.1.1主键

    主键:唯一标识符,身份证号和人的关系就相当于主键和记录的关系
    一般加到无意义的字段上例如:编号字段
    定义主键字段的要求:不能重复、被标志成主键的字段自动非空
    分为单字段主键和多字段主键

    --测试主键
    CREATE TABLE IF NOT EXISTS user1(
    id INT PRIMARY KEY,
    username VARCHAR(20)
    );
    Query OK, 0 rows affected (0.09 sec)
    
    DESC user1;
    +----------+-------------+------+-----+---------+-------+
    | Field    | Type        | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id       | int(11)     | NO   | PRI | NULL    |       |
    | username | varchar(20) | YES  |     | NULL    |       |
    +----------+-------------+------+-----+---------+-------+
    2 rows in set (0.04 sec)
    --查看创建表的定义
    SHOW CREATE TABLE user1;
    +-------+----------------------------------------------------------------------------
    ---------------------------------------------------------+
    | Table | Create Table
                                                             |
    +-------+----------------------------------------------------------------------------
    ---------------------------------------------------------+
    | user1 | CREATE TABLE `user1` (
      `id` int(11) NOT NULL,
      `username` varchar(20) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    +-------+----------------------------------------------------------------------------
    ---------------------------------------------------------+
    1 row in set (0.00 sec)
    --主键值的唯一性
    INSERT user1 VALUES(2,'QUEEN');
    Query OK, 1 row affected (0.01 sec)
    INSERT user1 VALUES(1,'KING');
    Query OK, 1 row affected (0.00 sec)
    INSERT user1 VALUES(1,'KING');
    ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
    --查看记录
    SELECT * FROM user1;
    +----+----------+
    | id | username |
    +----+----------+
    |  1 | KING     |
    |  2 | QUEEN    |
    +----+----------+
    2 rows in set (0.00 sec)
    --查看id为1的记录
    SELECT * FROM user1 WHERE id=1;
    +----+----------+
    | id | username |
    +----+----------+
    |  1 | KING     |
    +----+----------+
    1 row in set (0.01 sec)
    --设置两个主键
    mysql> CREATE TABLE IF NOT EXISTS userb(
        -> id INT,
        -> username VARCHAR(20),
        -> card CHAR(18),
        -> PRIMARY KEY (id,card)
        -> );
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> DESC userb;
    +----------+-------------+------+-----+---------+-------+
    | Field    | Type        | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id       | int(11)     | NO   | PRI | 0       |       |
    | username | varchar(20) | YES  |     | NULL    |       |
    | card     | char(18)    | NO   | PRI |         |       |
    +----------+-------------+------+-----+---------+-------+
    3 rows in set (0.05 sec)
    --插入值(复合主键时,两个主键的值完全相同的记录不能插入)
    mysql> INSERT userb VALUES(1,'KING','111');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> INSERT userb VALUES(1,'QUEEN','112');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> INSERT userb VALUES(1,'PRINCESS','112');
    ERROR 1062 (23000): Duplicate entry '1-112' for key 'PRIMARY'
    mysql> SELECT * FROM userb;
    +----+----------+------+
    | id | username | card |
    +----+----------+------+
    |  1 | KING     | 111  |
    |  1 | QUEEN    | 112  |
    +----+----------+------+
    2 rows in set (0.00 sec)
    

    1.1.2自增长

    一个表中只能有一个自增长字段并且要配合主键使用,标识成自增长的字段一定是主键,但是主键不一定被标志成自增长
    自增长只对整数整数列有效果,像字符串就没有意义了
    默认从1开始每次加1

    mysql> CREATE TABLE IF NOT EXISTS userc(
    id SMALLINT KEY AUTO_INCREMENT,
    username VARCHAR(20)
    );
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> DESC userc;
    +----------+-------------+------+-----+---------+----------------+
    | Field    | Type        | Null | Key | Default | Extra          |
    +----------+-------------+------+-----+---------+----------------+
    | id       | smallint(6) | NO   | PRI | NULL    | auto_increment |
    | username | varchar(20) | YES  |     | NULL    |                |
    +----------+-------------+------+-----+---------+----------------+
    2 rows in set (0.01 sec)
    ---自动加1
    mysql> INSERT userc VALUES(1,'KING');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> INSERT userc(username) VALUES('QUEEN');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> SELECT * FROM userc;
    +----+----------+
    | id | username |
    +----+----------+
    |  1 | KING     |
    |  2 | QUEEN    |
    +----+----------+
    2 rows in set (0.00 sec)
    
    --插入其他不连续的id值
    mysql> INSERT userc VALUES(111,'KING1');
    Query OK, 1 row affected (0.00 sec)
    mysql> SELECT * FROM userc;
    +-----+----------+
    | id  | username |
    +-----+----------+
    |   1 | KING     |
    |   2 | QUEEN    |
    | 111 | KING1    |
    +-----+----------+
    3 rows in set (0.00 sec)
    --再次插入值
    mysql> INSERT userc(username) VALUES('QUEEN1');
    Query OK, 1 row affected (0.00 sec)
    mysql> SELECT * FROM userc;
    +-----+----------+
    | id  | username |
    +-----+----------+
    |   1 | KING     |
    |   2 | QUEEN    |
    | 111 | KING1    |
    | 112 | QUEEN1   |
    +-----+----------+
    4 rows in set (0.00 sec)
    --查询细节
    mysql> SHOW CREATE TABLE userc;
    +-------+-------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------+
    | Table | Create Table
                                                                                                   |
    +-------+-------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------+
    | userc | CREATE TABLE `userc` (
      `id` smallint(6) NOT NULL AUTO_INCREMENT,
      `username` varchar(20) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8 |
    +-------+-------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    --在自增长值中插入NULL 和 DEFAULT 记录
    mysql> INSERT userc VALUES(NULL,'ABC');
    Query OK, 1 row affected (0.00 sec)
    mysql> INSERT userc VALUES(DEFAULT,'ABC');
    Query OK, 1 row affected (0.00 sec)
    mysql> SELECT * FROM userc;
    +-----+----------+
    | id  | username |
    +-----+----------+
    |   1 | KING     |
    |   2 | QUEEN    |
    | 111 | KING1    |
    | 112 | QUEEN1   |
    | 113 | ABC      |
    | 114 | ABC      |
    +-----+----------+
    6 rows in set (0.00 sec)
    
    ---修改初始自增长值
    mysql> CREATE TABLE IF NOT EXISTS userd(
    id SMALLINT KEY AUTO_INCREMENT,
    username VARCHAR(20)
    )AUTO_INCREMENT=100;
    Query OK, 0 rows affected (0.02 sec)
    mysql> SHOW CREATE TABLE userd;
    +-------+-------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------+
    | Table | Create Table
                                                                                                   |
    +-------+-------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------+
    | userd | CREATE TABLE `userd` (
      `id` smallint(6) NOT NULL AUTO_INCREMENT,
      `username` varchar(20) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=latin1 |
    +-------+-------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    mysql> INSERT userd(username) VALUES('QUEEN1');
    Query OK, 1 row affected (0.00 sec)
    mysql> SELECT * FROM userd;
    +-----+----------+
    | id  | username |
    +-----+----------+
    | 100 | QUEEN1   |
    +-----+----------+
    1 row in set (0.00 sec)
    
    --修改自增长的值
    ALTER TABLE userd AUTO_INCREMENT =500;
    
    
    

    1.1.3测试非空NOT NULL

    --测试非空(代表字段一定有值而且不能为空值)
    mysql> CREATE TABLE IF NOT EXISTS userf(
        -> id INT UNSIGNED KEY AUTO_INCREMENT,
        -> username VARCHAR(20) NOT NULL,
        -> password CHAR(32) NOT NULL,
        -> age TINYINT UNSIGNED
        -> );
    Query OK, 0 rows affected (0.05 sec)
    
    mysql> INSERT userf(username,password) VALUES('KING','KING');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> INSERT userf(username,password,age) VALUES('KING1','KING1',12);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> SELECT *FROM userf;
    +----+----------+----------+------+
    | id | username | password | age  |
    +----+----------+----------+------+
    |  1 | KING     | KING     | NULL |
    |  2 | KING1    | KING1    |   12 |
    +----+----------+----------+------+
    2 rows in set (0.00 sec)
    --插入空值报错
    mysql> INSERT userf(username,password) VALUES(NULL,NULL);
    ERROR 1048 (23000): Column 'username' cannot be null
    

    1.1.4测试默认值DEFAULT

    头像可以设置一个默认的图片

    CREATE TABLE IF NOT EXISTS userg(
    id INT UNSIGNED KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    password CHAR(32) NOT NULL,
    age TINYINT UNSIGNED DEFAULT 18,
    addr VARCHAR(50) NOT NULL DEFAULT '北京',
    sex ENUM('男','女','保密') NOT NULL DEFAULT '男'
    ); 
    INSERT userg(username,password) VALUES('KING','KING');
    
    
    mysql> SELECT * FROM userg;
    +----+----------+----------+------+------+-----+
    | id | username | password | age  | addr | sex |
    +----+----------+----------+------+------+-----+
    |  1 | KING     | KING     |   18 | 北京     ||
    +----+----------+----------+------+------+-----+
    
    --测试其他默认值
    
    INSERT userg VALUES(3,'QUEEN','QUEEN',29,'上海','保密');
    INSERT userg VALUES(4,'QUEEN','QUEEN',DEFAULT,DEFAULT,'保密');
    

    1.1.5测试唯一UNIQUE KEY

    字段不能重复的时候使用

    CREATE TABLE IF NOT EXISTS userj(
    id TINYINT UNSIGNED KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL UNIQUE,
    card CHAR(18) UNIQUE
    );
    mysql> DESC userj;
    +----------+---------------------+------+-----+---------+----------------+
    | Field    | Type                | Null | Key | Default | Extra          |
    +----------+---------------------+------+-----+---------+----------------+
    | id       | tinyint(3) unsigned | NO   | PRI | NULL    | auto_increment |
    | username | varchar(20)         | NO   | UNI | NULL    |                |
    | card     | char(18)            | YES  | UNI | NULL    |                |
    +----------+---------------------+------+-----+---------+----------------+
    3 rows in set (0.02 sec)
    
    mysql> SHOW CREATE TABLE userj;
    +-------+-------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------+
    | Table | Create Table
    
                                                                                    |
    +-------+-------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------+
    | userj | CREATE TABLE `userj` (
      `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
      `username` varchar(20) NOT NULL,
      `card` char(18) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `username` (`username`),
      UNIQUE KEY `card` (`card`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    +-------+-------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    
    mysql> INSERT userj(username) VALUES('A');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> INSERT userj(username) VALUES('A1');
    Query OK, 1 row affected (0.00 sec)
    --NULL值不算重复
    mysql> SELECT * FROM userj;
    +----+----------+------+
    | id | username | card |
    +----+----------+------+
    |  1 | A        | NULL |
    |  2 | A1       | NULL |
    +----+----------+------+
    2 rows in set (0.00 sec)
    --报错username是个唯一性字段
    mysql> INSERT userj(username) VALUES('A1');
    ERROR 1062 (23000): Duplicate entry 'A1' for key 'username'
    mysql> INSERT user9(username,card) VALUES('B','111');
    Query OK, 1 row affected (0.00 sec)
    --NULL值不算重复都成功了
    mysql> INSERT userj(username,card) VALUES('B1',NULL);
    Query OK, 1 row affected (0.00 sec)
    mysql> INSERT userj(username,card) VALUES('B2',NULL);
    Query OK, 1 row affected (0.00 sec)
    

    1.1.6总结

    CREATE TABLE [IF NOT EXISTS] tbl_name(
    字段名称 字段类型 [UNSIGNED|ZEROFILL] [NULL|NOTNULL] [DEFAULT默认值] [[PRIMARY] KEY| UNIQUE[KEY]] [AUTO_INCREMENT一定和主键联合使用] 要按照这个顺序去写或者去省略
    )ENGINE=INNODB, CHARSET=utf8, AUTO_INCREMENT=100;
    
    展开全文
  • 1. 何为完整性约束条件 1.1 列级约束条件 1.2 表级约束条件 1.3 语法格式 2. 主键(PRIMARY KEY)约束 3. 唯一性(UNIQUE)约束 4. 空与非空(NULL/NOT NULL)约束 5. 默认值(DEFAULT)约束 6. 检查(CHECK)...

    目录

    1. 何为完整性约束条件
      1.1 列级约束条件
      1.2 表级约束条件
      1.3 语法格式
    2. 主键(PRIMARY KEY)约束
    3. 唯一性(UNIQUE)约束
    4. 空与非空(NULL/NOT NULL)约束
    5. 默认值(DEFAULT)约束
    6. 检查(CHECK)约束
    7. 外键(FOREIGN)约束
    8. 自动增长标识(IDENTITY)约束

    这篇文章只涉及完整性约束条件的一些概念性内容,不包含操作实例。

    1. 何为完整性约束条件

    约束是 SQL Server 强制执行的应用规则,建立和使用约束条件的目的是保证数据的完整性。约束能够限制用户存放到表中的数据的格式和可能值,他作为数据库定义的一部分,在建表时声明。

    约束独立于表结构,可以在不改变基本表的情况下添加和删除。在表被删除时,该表中的约束条件也会相应地被删除。

    基本表的完整性约束可以分为列级约束条件表级约束条件

    1.1 列级约束条件

    列级约束条件是对某一个特定列的约束,包含在列定义中,可以跟在该列的其他定义之后,用空格分隔,不必指定列名。

    1.2 表级约束条件

    表级约束条件与列定义相互独立,不包含在列定义中,通常用于对两个或两个以上的列一起进行约束。通常在所有列定义完成之后声明。

    1.3 语法格式

    完整性约束的基本语法格式为:
    [ CONSTRAINT < 约束名 > ] < 约束类型 >

    其中约束名是用户自定义的名称,要求在同一个数据库中约束名不能够重复。如果用户没有定义约束名,则由数据库系统给定一个不重复的约束名。

    2. 主键(PRIMARY KEY)约束

    主键是用能够唯一表示表中的每一行的一列或一组列,这一列的数据或一组列的组合中的数据不会出现重复,且不为空。但是当主键为一组列时,某一列中的数据可以出现重复,或出现空值。

    一个表中只能存在最多一个主键约束,通过他可以强制表的实体完整性。如果主键是只有一个列,则使用为列级约束条件;如果主键是由一组列组成,则使用表级约束条件。

    如果为表指定了主键约束,数据库引擎将通过为主键创建唯一索引来强制数据的唯一性。当在查询中使用主键时,此索引还允许对数据进行快速访问

    3. 唯一性(UNIQUE)约束

    唯一性约束能够确保多列或多列的组合数据的唯一性。唯一性约束指定的列可以有空值,但只允许出现一个。因为主键的值也是具有唯一性的,所以主键列不能再设唯一性约束。如果只设定一个列的唯一性,则使用为列级约束条件;如果设定多列的组合的唯一性,则使用表级约束条件。

    辨别:主键约束与唯一性约束
    1. 定位不同。主键约束是用来唯一标识表中的每一个行,使得表中的每一行都是可区分的。唯一性约束是用于使一列或多列的组合中的数据不出现重复。
    2. 可设的数量不同。一个表中只能设一个主键约束,但可以设多个唯一性约束。
    3. 可取值不同。主键不能取空值,但唯一性约束的列可以取一个空值。

    4. 空与非空(NULL/NOT NULL)约束

    空与非空约束只能用于列级约束,如果某列没有指定 NOT NULL 约束是,系统会默认为 NULL。NULL 值不是 0 ,也不是空白,更不是填入字符串 “ NULL ”,而是表示 “ 不知道 ” 、“ 不清楚 ” 、“ 不确定 ” 或 “ 没有数据 ” 的意思,不占任何内存空间。

    将字段设置为 NOT NULL 有助于维护数据的完整性,因为这样就可以确保行中的列永远包含数据。

    注意以下几点:
    1. 用NULL约束的列接受用户显式输入NULL,不论该列是何种数据类型,或者有默认值与之联系。但不能输入 ‘NULL’,否则会被认为是字符串 NULL ,而不是空值。
    2.在一个已有行数据的表中,插入列时,该列应该设为 NULL 约束,因为插入列是,该列所有数据为空,如果为 NOT NULL 约束则会报错。
    3. 如果某列为 NOT NULL ,在插入一行数据时,必须在该列输入一个值,否则数据库将不接受该表行。

    5. 默认值(DEFAULT)约束

    默认值约束用于在表中插入一行时,在某列没有数据,如果该列设置了默认值约束,则会自动为该字段默认一个值。

    注意:
    1. 默认值约束定义的默认值仅在执行 INSERT 操作插入数据是有效。
    2. 一列最多有一个默认值,其中包括 NULL 值。
    3. 具有 IDENTITY 属性或 timestamp 数据类型属性的列不能使用数据值,text 和image 类型的列只能以 NULL 为默认值。

    6. 检查(CHECK)约束

    检查约束用来检查用户输入数据的取值是否正确,只有符合约束条件的数据才能输入。在一个表中可以创建多个检查约束,在一个列上也可以创建多个检查约束,只要他们不矛盾。检查约束可以是列级的,也可以是表级的。

    7. 外键(FOREIGN KEY)约束

    在表 A 中的一列或多列的组合不是表 A 的主键,而是另一个表表 B 的主键,那么这一列或多列的组合就是表 A 的外键

    外键约束保证了数据库各个表中数据的一致性和正确性。外键约束既可以是列级约束条件,也可以是表级约束条件。

    8. 自动增长标识(IDENTITY)约束

    SQL Server 为自动进行顺序编号引入了自定编号的 IDENTITY 属性,具有 IDENTITY 属性的列称为标识列,其取值称为标识值。

    IDENTITY 属性具有一下特点:
    1. IDENTITY 列的数据类型只能为 tinyint、samllint、int、bigint、numeric和decimal。当为numeric 和 decimal 类型是,不允许有小数位。
    2. 当用户在表中插入一行新的记录时,不必也不能向据有 IDENTITY 属性的列输入数据,系统将自动在该列添加一个规定间隔递增或递减的数据。
    3. 每个表最多有个一个列具有 IDENTITY 属性,且该列不能为空,不允许据有默认值,也不能由用户更新。

    IDENTITY 的语法为:
    IDENTITY [ (seed , increment) ]

    其中 seed 表示加载到表中的第一个行所使用的值,increment 表示与前一个加载的行的标识值相加的增量值。使用 IDENTITY 属性时,必须同时指定种子和增量,或者二者都不指定,取默认值 (1 , 1) 。


    以往的文章:
    数据库探索之旅——初识数据库
    数据库探索之旅——数据库管理系统
    数据库探索之旅——连接数据库
    数据库探索之旅——对数据库的简单操作
    数据库探索之旅——数据类型

    展开全文
  • 六种约束 检查约束(check) 唯一约束(Unique) 主键约束(Primary key) 外键约束(Foreign key) 非空约束(Not null) ...ORA-00001:违反唯一键约束条件 可能是主键报错或者唯一键报错 外键约束 级联删除/级...
  • 数据的约束条件完整性约束

    千次阅读 2017-12-14 23:11:44
     1. 域约束:对属性取值范围的约束 2. 键约束:每个关系必须要有主键,且每个主键必须不相同 3. 非空约束:属性值不能为NULL 4. 实体完整性约束:...插入操作:域约束、键约束、非空约束、实体完整性约束、参
  • 完整性约束条件名><完整性约束条件> <完整性约束条件>包括NOT NULL,UNIQUE ,PRIMARY KEY短语以及FOREIGN KEY短语CHECK短语等 CONSTRAINT 约束 CONSTRAINT <完整性约束条件名> [PRIMARY KEY...
  • MySQL完整性约束

    千次阅读 2019-09-12 11:38:49
    数据完整性约束是在表和字段上强制执行的数据检验规则,为了防止不规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,主要是对空值和重复值的约束,使不...
  • 一:定义基本表和完整性约束的实现 1、使用CREATE TABLE 语句,用户可以创建一个表结构,还可以为某个域设定缺省值。 定义基本表 ... [列级完整性约束条件] [ ,<列名><数据类型> [列级...
  • 完整性约束

    千次阅读 2018-07-12 13:07:10
    完整性约束 静态列级约束 1. 对数据类型的约束,包括数据的类型、长度单位、精度等 2. 对数据格式的约束 3. 对取值范围或取值集合的约束 4. 对空值的约束 5. 其他约束 静态元组约束 一个...
  • 数据库代码.docx

    2019-08-04 10:27:12
    sql建数据库建表代码以及主键外键...CREATE TABLE<表名>(<列名1><数据类型>[列级完整性约束条件] [,<列名2><数据类型>[列级完整性约束条件]]… [,列名n><数据类型>[列级完整性约束条件]] [,表列级完整性约束条件])
  • 本文对三种完整性约束,在创建表时以及创建表后如何给约束命名(列级、表级)做了介绍。 最后介绍了在约束命名的条件下,如何删除约束。 1.为约束起命名时,用到的关键字CONSTRAINT。 2.需要注意的是,在同一数据库...
  • 列名 数据类型 列级完整性约束条件, 列名 数据类型 列级完整性约束条件, ... 表级完整性约束 ); 【例一】 建立一个学生表STUDENT CREATE TABLE STUDENT ( Sno CHAR(9) PRIMARY KEY, /*列级完整性约束条件,Sno时主码...
  • 1、列级完整性约束  1)、NOT NULL或 NULL  2) 、UNIQUE约束:UNIQUE唯一性约束,不允许关系列中出现有重复的属性值  3)、DEFAULT约束:默认值约束。 定义格式:DEFAULT FOR   4)、CHECK 约束:检查约束,...
  • sql完整性约束

    2019-05-19 15:03:00
    课本中把完整性约束单独做成一章来讲解,所以之前写数据定义之基本表定义时说会放到后面讲。完整性约束有三种:实体完整性,参照完整性,用户定义完整性。最后会讲完整性约束命名子句,所以一共四个部分。 Part...
  • 【63】关系数据库常用的sql语句总结

    千次阅读 多人点赞 2016-06-22 22:18:35
    创建表语法CREATE TABLE <表名>(<列名> <数据类型>[列级完整性约束条件] [,<列名> <数据类型>[列级完整性约束条件]]…);列级完整性约束条件有NULL[可为空]、NOT NULL[不为空]、UNIQUE[唯一],可以组合使用,但是不...
  • 数据库课堂笔记4-完整性约束

    万次阅读 2018-12-10 11:08:33
    完整性约束是加在数据库模式上的一个具体条件,它规定什么样的数据能够存储到数据库系统中。 例如: 学生的年龄必须是整数,取值范围为14--29; 学生的性别只能是“男”或“女”; 学生的学号一定是唯一的; 学生...
  • SQL server完整性约束的操作

    千次阅读 2020-04-23 18:05:36
    【注】:完整性约束条件涉及到该表的多个属性列时,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。   实体完整性的操作 一、创建表时,可以规定实体完整性 在CREATE TABLE语句中使用PRIMARY KEY...
  • 数据库5之完整性约束的实现

    千次阅读 2018-06-25 13:09:29
    在上一篇文章中,我们已经对完整性约束有了一定的概念,并且做了分类。实验操作放在另外一篇文章分类:1.实体完整性约束2....可以定义为表级约束条件,也可以定义为列级约束条件区别:2.唯一(unique)约...
  • 一、完整性约束 1.MySQL支持的完整性约束 约束条件 描述 primary key 主键约束 unique 唯一约束 not null 非空约束 default 默认约束 auto_increment 自动增长约束 foreign key 外键约束 2.列级...
  • 完整性检查:(数据库管理系统中检查数据是否满足完整性约束条件的机制称为完整性检查。) 一般在INSERT、UPDATE、DELETE语句执行后开始检查,也可以在事务提交时检查。 违约处理: 拒绝(NO ACTION)...
  • MySQL-列的完整性约束

    2020-06-25 08:46:36
    完整性约束条件: 是对字段进行限制,要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不再执行用户的操作。MySQL中基本的完整性约束条件如表所示。下表是完整性约束条件: 1....
  • 数据库完整性约束

    2017-11-17 20:50:45
    数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。通过DBMS...
  • 一、完整性约束条件 1.实体完整性 实体完整性:理解为对客观世界的实体来说,例如学生的学号这一属性,应该是唯一存在的。所以实体完整性表现为:PRIMARY KEY(主键) PRIMARY KEY:属性唯一,属性不为空。 注意...
  • 数据库的完整性约束

    2019-06-10 08:17:14
    完整性约束条件的作用对象: 列级约束(针对字段,key) 主要针对列的类型,取值范围,精度等约束 对空值的约束。规定某个字段是否为空 对取值范围的约束。例如,学生成绩的字段规定为 0 - 100 数据类型的约束。...
  • MySQL表级完整性约束

    2021-04-10 19:05:44
    MySQL表级完整性约束 为防止不符合规范的数据存入数据库,在用户对数据进行插入、修改、删除等操作时,MySQL提供 了一种机制来检查数据库是否满足规定的条件,以保证数据库中数据的准确性和一致性,这种机制 就是...

空空如也

空空如也

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

列级完整性约束条件