精华内容
下载资源
问答
  • 表约束

    千次阅读 2019-10-18 17:36:28
    约束(主键) 可以把某一列字段声明主键,这一列的数据有如下特点 非空 唯一 被引用 -------当前主键的列,作为一条记录的标识 声明主键 使用关键字primary key声明某一个字段为主键。 测试主键 ...

    单表的约束(主键)

    1. 可以把某一列字段声明主键,这一列的数据有如下特点
    • 非空
    • 唯一
    • 被引用 -------当前主键的列,作为一条记录的标识
    1. 声明主键
    • 使用关键字primary key声明某一个字段为主键。
    1. 测试主键
    创建新的数据
    create database day06;
    use day06;
    create table person(
    	id int primary key,
    	username varchar(20)
    	);
    
    添加数据
    insert into person values(1,'美美');
    insert into person values(2,'小风');
    
    1. 主键的自动增长
    • 主键的值特点,可以把主键的值交给数据库去维护
    • 自动增长只能使用int呵bigint类型
    • 通过关键字auto_increment
    • 演示自动增长
    drop table person;
    create table person(
    	id int primary key auto_increment,
    	username varchar(20)
    	);
    
    添加数据的时候
    insert into person values(null,'美美');
    insert into person values(null,'小风');
    insert into person values(2,'小花');
    
    如果删除了一条记录
    delete from person where id = 2;
    
    1. 总结
    • 开发中,主键基本上是必须要设置的
    展开全文
  • DB2表约束

    千次阅读 2018-05-22 21:00:10
    DB2支持的表约束包括非空约束[NOT NULL],主键约束[PRIMARY KEY],唯一性约束[UNIQUE],外键约束[FOREIGN KEY]和检查性约束[CHECK] 1:非空约束[NOT NULL]空值[NULL]是不存在的值,不是0也不是空字符串。默认情况下表中...

    DB2支持的表约束包括非空约束[NOT NULL],主键约束[PRIMARY KEY],唯一性约束[UNIQUE],外键约束[FOREIGN KEY]和检查性约束[CHECK]
         1:非空约束[NOT NULL]
    空值[NULL]是不存在的值,不是0也不是空字符串。默认情况下表中的是允许为NULL的,在建表时如
    NAME VARCHAR(20) NOT NULL,即标记该字段不能为空。
         2:主键约束[PRIMARY KEY]
    主键用于唯一的标识表中的每一行记录,在一个表中,最多只能有一个主键约束[可没有],主键既可以由一个列组成,也可以由两个或以上的列组成[这种称为组合键],主键约束同时也具有非空约束的特征。如果主键约束由一列组成,该主键约束被称为行级约束,如果主键由两个或以上列组成,则该主键约束被称为表级约束。主键约束列不允许为空值。
         ALTER TABLE TAB_NAME ADD PRIMARY KEY COL_NAME;
         3:唯一性约束[UNIQUE]
    唯一性约束强调所在的列不允许有相同的值,但是它的定义要比主键约束弱,即它允许所在的列可以为空值。唯一性约束的主要作用是在保证除主键列外,其他列值的唯一性。
         ALTER TABLE TAB_NAME ADD UNIQUE COL_NAME;
         4:外键约束[FOREIGN KEY]
    一般的外键约束会使用两个表进行关联[也存在一个表自连接的情况],外键是指'当前表[外键表]'引用另一个表[即被引用的表]的某个列或某几个列,而被引用的表的列必须具有主键约束或者唯一性约束。被引用表的列中不存在的数据不能出现在当前表对应的列中。一般情况下,当删除被引用表中的数据时,该数据也不能出现在外键表的外键列中,如果外键列存储了被引用表中将要删除的数据,那么对被引用的删除操作将失败,添加外键约束的语法如下:
         ALTER TABLE TAB_NAME ADD FOREIGN KEY COL_NAME REFERENCES TAB_NAME ON DELETE CASCAHE;
         5:检查约束[CHECK]
    指定某个字段内容必须在约束范围之内,如定义的年龄字段不能超过200等
         ALTER TABLE TAB_NAME ADD CONSTRAINT COL_NAME CHECK (约束条件);
    在设计时需要考虑这些约束是在数据库层面实现还是在应用程序层实现,在数据层实现的好处是减少了开发工作量,对应用透明,但是若业务逻辑复杂的话,放在应用层实现逻辑更清晰,而且也会增加运维的负担。例如在数据迁移时,如果表上有约束需要执行特别检查
    展开全文
  • MySQL数据库表约束

    万次阅读 多人点赞 2018-01-16 14:48:27
    为了防止往数据中插入错误的数据,在MySQL中,定义了一些维护数据库完整性的规则,即约束。 常见的约束:    上表中列举的约束条件都是针对中字段进行限制, 从而保证数据中数据的正确性和...

           为了防止往数据表中插入错误的数据,在MySQL中,定义了一些维护数据库完整性的规则,即表的约束。

    常见的表的约束:

          

        上表中列举的约束条件都是针对表中字段进行限制, 从而保证数据表中数据的正确性和唯一性。


    一、主键约束

           在MySQL中,为了快速查找表中的某条信息,可以通过设置主键来实现。主键约束是通过PRIMARY KEY

    定义的,它可以唯一标识表中的记录,这就好比身份证可以用来标识人的身份一样。在MySQL中,主键约束

    分两种,具体如下:

          1、单字段主键

               单字段主键指的是由一个字段构成的主键,其基本语法如下:

             

              上述案例中,表student创建了id、name和grade三个字段,其中id字段是主键。

          2、多字段主键

              多字段主键指的是多个字段组合而成的主键,其基本的语法格式如下所示:

              

               上述案例中,student创建了id、name和grade三个字段,其中id和name两个字段组合可以唯一

        确定一条记录。

      【补充】一个表最多可以创建一个主键。


    二、外键约束

          如果表A的主键是表B中的字段,则该字段称为表B的外键;另外表A称为主表,表B称为从表。外键是用来

    实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或删除的级联操作将使

    得日常维护更轻松。外键主要用来保证数据的完整性和一致性。其基本语法如下:

         

           【补充】一个表允许有多个外键,且外键只适用于InnoDB表,MyISAM表不支持外键。InnoDB表和

    MyISAM表的主要区别是:InnoDB表支持事务、行锁和外键,MyISAM不支持;InnoDB表索引式修改效率较

    MyISAM高,MyISAM表查询、插入和删除效率较InnoDB高,而且MyISAM索引和数据分离,索引压缩存储,

    而InnoDB索引和数据紧密结合,不支持压缩,所以MyISAM内存利用率比InnoDB高;另外MyISAM的移植性

    也更强。


    三、非空约束

           非空约束指的是字段的值不能为NULL,在MySQL中,非空约束是通过NOT NULL定义的,其基本语法

    如下:

        

           上述案例中,表student包含id、name和grade三个字段。其中id为主键,name为非空字段。

         【补充】一个表可以有多个非空约束字段。

    四、唯一约束

           唯一约束用于保存数据表中字段的唯一性,类似于主键,即表中字段值不能重复出现。唯一约束

    是通过UNIQUE定义的,其基本语法如下:

         

           上述案例中,表student包含id、name和grade三个字段。其中id为主键,name字段为唯一值,

    不能重复。

         【补充】一个表可以有多个唯一约束字段。


    五、默认约束

           默认约束用于给数据表中的字段指定默认值,即当在表中插入一条新纪录时,如果没有给这个字段

    赋值,那么,数据库系统会自动为这个字段插入默认值。默认值是通过DEFAULT关键字定义的,其

    基本语法如下:

         

           上述案例中,表student包含id、name和grade三个字段。其中id为主键,grade字段的默认值为0。

     【补充】一个表可以有多个默认约束字段。


    六、自增约束

           在数据表中,若想为表中插入新记录自动生成唯一的ID,可以使用AUTO_INCREMENT约束来实现。

    AUTO_INCREMENT约束的字段可以是任何整数类型。默认情况下,改字段的值是从1开始自增的。其基

    本语法如下:

         

            上述案例中,表student包含id、name和grade三个字段。其中id为主键,且没插入一条新纪录,

    id都会自动增加。

    【补充】一个表只能设置一个自增约束字段。



           

                


        

      




    展开全文
  • MySQL的表约束

    千次阅读 2019-06-09 16:55:39
    真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,才能更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是Email,它是unsigned int类型的,而且要求每个Email号都...

    真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,才能更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是Email,它是unsigned int类型的,而且要求每个Email号都是不同的,即unique属性。可用于表示的约束很多,这里主要介绍如下几个:null/not null,default,comment,zerofill,primary key,auto_increment,unique key。

    1、空属性——null(默认的)和not null(不为空)
    段基本都是为null,但是实际开发时尽可能保证字段不为空,因为数据为空没办法参与运算,如下所示。
    在这里插入图片描述
    相加之后还是为空,如下所示。
    在这里插入图片描述
    【例1】创建一个班级表,包含班级名和班级所在的教室,如果班级没有名字,就不知道在哪里班级;如果不知道教室名字,就不知道在哪里上课。
    在这里插入图片描述
    当插入数据时,因为没有给class_room添加数据而出错,因为将它设置为not null了。
    在这里插入图片描述
    2、默认值——default
    某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。
    【例2】创建一个学生表,默认学生性别为男。
    在这里插入图片描述
    默认值生效的情况:当插入数据时不给该字段数值就使用默认值。如果给相应字段数值了,就使用新添的数值,看下图的age和sex字段。
    在这里插入图片描述
    3、列描述——comment
    comment没有实际的含义,专门用来描述字段,会根据表创建语句保存,用来解释的。
    【例3】
    在这里插入图片描述
    通过desc查看不到注释信息:
    在这里插入图片描述
    通过show可以看到:
    在这里插入图片描述
    4、补0——zerofill
    【例4】创建numbers表,表中含有两个整形字段,如下图所示。
    在这里插入图片描述
    通过show查看numbers表的建表语句,如下图所示。
    在这里插入图片描述
    可以看到int(11),这个表示什么意思?整型不是4字节吗?这个11又表示什么?其实,没有serofill这个属性,括号内的数字是含无意义的,a和b字段就是前面创建的变量,如下所示:
    在这里插入图片描述
    但是,对字段添加zerofill属性后,显示的结果就不一样了。修改numbers表的属性,对a字段添加zerofill属性,再进行查找,如下图所示。
    在这里插入图片描述
    这次可以看到a的值由原来的6变成000006,这就是zerofill属性的作用,如果宽度小于设定的宽度(这里设定为6),就会自动填充0.要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是6。可以用hex函数来证明,如下图所示,数据库内部存储的还是6,000006只是设置了zerofill属性后的一种格式化输出而已。
    在这里插入图片描述
    5、主键
    primary key用来唯一的约束该字段里面的数据,不能重复、不能为空,一张表中最多只能有一个主键,主键所在的列通常是整数类型。设置主键的方式是:
    (1)创建表的时候直接在字段上指定主键
    在这里插入图片描述
    (2)在创建表的时候,在所有字段之后,使用primary key(主键列表)来创建主键,如果有多个字段作为主键可以使用复合键。
    在这里插入图片描述
    如图,id和course字段作为主键,表示当id和course都相同时才会报错。
    在这里插入图片描述
    (3)当表创建好了以后,可以再次追加主键,其格式为:alter table 表名 add primary key(字段列表),但是主键对应的字段中不能重复,一旦重复,操作失败。
    在这里插入图片描述
    在这里插入图片描述
    (4)删除主键
    其格式为:alter table 表名 drop primary key;
    在这里插入图片描述
    6、自增长——auto_increment
    当对应的字段不给值,会被自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。自增长的特点:任何一个字段要做自增长,前提是本身是一个索引(key一栏有值);自增长字段必须是整数;一张表最多只能有一个自增长
    在这里插入图片描述
    7、唯一键——unique
    一张表中往往有很多字段需要唯一性,数据不能重复,但是一张表中只能由一个主键。而唯一键就可以解决表中有多个字段需要唯一性约束的问题。唯一性的本质与主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。
    在这里插入图片描述
    8、外键——foreign key
    外键用于定义主表和从表主键的关系:外键约束主要定义在外表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表列存在或为null。语法:foreign key(字段名) reference 主表(列)。
    【例】创建一个主表myclass,从表stu,它们的关系如下所示。
    在这里插入图片描述
    在这里插入图片描述
    当插入一个班级号为3的学生,因为没有这个班级,所以插入不成功。但是,可以插入班级号为null的学生,假如刚来一个学生还没有分配班级。
    在这里插入图片描述
    9、综合案例
    有一个商品的数据,记录客户及购物情况,有以下三个表组成:
    (1) 商品goods表,表中包含商品编号goods_id、商品名goods_name、单价unitprice、商品类别category、供应商provider。
    (2) 客户customer表,表中包含客户号customer_id、姓名name、住址address、邮箱Email、性别sex、身份证card_id。
    (3) 购买信息表purchase,表中包含购买订单号order_id、客户号customer_id、商品号goods_id、购买数量nums。
    要求:
    1)每个表的主外键;
    2)客户的姓名不能为空;
    3)邮箱不能重复;
    4)客户的姓名(男,女)

    –创建goods表
    在这里插入图片描述
    –创建customer表
    在这里插入图片描述
    –创建purchase
    在这里插入图片描述

    展开全文
  • SQL数据库创建表约束(Constraints)

    万次阅读 2019-04-14 22:41:27
    SQL 约束用于规定中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建时规定(通过 CREATE TABLE 语句),或者在创建之后规定(通过 ALTER TABLE 语句)。 SQL CREATE TABLE + ...
  • 第4章 数据表的创建和管理 创建数据表和表约束 教学内容 基础知识 设计表 创建数据表 创建约束 删除约束 第4章 数据表的创建和管理 创建数据表和表约束 学习目标 认知目标 了解SQL Server 2005的数据类型 了解表约束...
  • MySQL创建约束条件(四)

    千次阅读 多人点赞 2019-11-15 14:09:16
    上一章时,我们学习了 MySQL的数据类型, 就像Java 知道了 int,string 之后,就该学习类了, 现在,我们知道了数据类型,就该去学习 Table了。 在创建时,一定要在 database 里面进行创建, 既先使用 use ...
  • 选中要加主键约束的字段,右击单击“设置主键”三、ForeignKey约束(外键约束) 外键约束是用来加强两个(主和从)的一列或多列数据之间的连接的。创建外键约束的顺序是先定义主的主键,...
  • mySQL 添加表约束

    千次阅读 2016-04-01 10:27:30
    注意:外键约束的参照列,在主中引用的只能是主键或唯一键约束的列,假定引用的主列不是唯一的记录, 那么从引用的数据就不确定记录的位置。同一个可以有多个外键约束。 创建外键约束:  主  ...
  • DB2查询主键、索引、表约束

    万次阅读 2018-04-19 21:30:42
     查询表约束 SELECT INDSCHEMA,INDNAME AS 约束名,COLNAMES AS 约束字段名,UNIQUERULE AS 约束状态 FROM SYSCAT.INDEXS WHERE TABSCHEMA='SCHEMA_NAME' AND TABNAME='TABNAME' AND UNIQUERULE IN ('U','P');
  • mysql的表约束添加和查看

    千次阅读 2017-10-23 14:47:13
    #添加表约束 ALTER TABLE `gd_vedio_comment` ADD CONSTRAINT FOREIGN KEY (vedio_id) REFERENCES `gd_vedio_page_list`(id);#查询单个表约束 SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_...
  • 1、向中添加外键约束,把emp的deptno字段设置为emp的外键,引用自dept  ALTER TABLE emp ADD CONSTRAINT FK_test FOREIGN KEY(deptno) REFERENCES dept(deptno); 2、向中添加主键约束 alter table...
  • SQL 的常用更改表约束

    千次阅读 2016-06-19 10:37:29
    SQL 的常用更改表约束 一、修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约束名字 DEFAULT 默认值 for 字段名称 --...
  • CREATE TABLE yh_table( yh_id int(10) not NULL, yh_name VARCHAR(20) not null, yh_phone int(10) not null, ...有一个这样的,我添加的约束,问题是,添加的数据,不符合约束,但是却能添加进去
  • MySQL数据的基本操作,字段的添加、删除、重命名、类型更改、的各种约束
  • 约束特点

    2019-11-13 22:47:47
    约束特点,完整性约束特点,主键约束,创建主键约束(单列主键,复合主键级方式和列级方式)修改主键,删除主键,创建唯一约束(候选键unique),增加都选件,单列候选键和复合候选键的区别,删除候选键,非空...
  • SQL Server缺省约束、列约束和表约束

    千次阅读 2019-09-30 16:56:57
    SQL Server缺省约束是SQL Server数据库中的一种约束,下面就为您介绍SQL Server缺省约束、列约束和表约束的定义方法啊,供您参考。 SQL Server缺省约束 SQL Server缺省约束通过定义列的缺省值或使用数据库的缺省值...
  • --禁用所有外键约束的Sql代码select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'--启用所有外键约束的Sql代码select 'alter table...
  • 列级约束约束

    千次阅读 2019-04-08 11:25:23
    约束又分为列级约束约束,它们的区别: (1)列级约束:只能应用于一列上。 约束:可以应用于一列上,也可以应用在一个中的多个列上。 (即:如果你创建的约束涉及到该的多个属性列,...
  • oracle表约束的操作语法和实例

    千次阅读 2017-01-04 09:35:32
    数据库表约束操作的语法与实例--操作素材学生表如下:create table student( stuno CHAR(11) , stuname VARCHAR2(50), stuage NUMBER(3), stusex CHAR(2), stubir DATE, stuid VARCHAR2(18),
  • SQL批量删除数据中指定字段对应的所有约束
  • Oracle创建约束、修改

    千次阅读 2018-10-17 14:22:44
    创建 第一种方式,语法如下: --column_name:列名 --type:数据类型 --注意:多个列名之间用逗号分隔,最后一列不要加逗号 create table table_name( column_name type, column_name type ) 第二种方式,语法...
  • 数据库约束条件

    千次阅读 2020-08-16 20:54:35
    主键约束可以用两种方式定义:列级主键约束级主键约束 列级主键约束演示: create table dept_htlwk( deptno varchar(20) primary key, --列级约束条件 dname varchar(20), location varchar(40) ); 级主键...
  • sql中约束和列级约束

    万次阅读 多人点赞 2017-03-19 16:02:41
    (1) 对于基本表的约束分为列约束和表约束 约束是限制用户输入到表中的数据的值的范围,一般分为列级约束与表级约束。 列级约束有六种:主键Primary key、外键foreign key 、唯一 unique、检查 checck 、默认...
  • 介绍如何通过 Oracle 数据字典查看数据库中的(dba_tables、all_tables、user_tables)、字段(dba_tab_columns、all_tab_columns、user_tab_columns)、约束(dba_constraints、all_constraints、user_...
  • Oracle将用户创建的约束等信息都放在数据字典中,允许开发人员查询数据字典或视图来获取数据库对象的信息。有两个数据字典视图提供了约束的详细信息: - user_constraints:如果知道约束名,想知道约束类型...
  • oracle查询约束

    千次阅读 2019-06-03 16:07:23
    1.查询出所有的唯一键约束的 禁用sql select 'alter table ' || table_name || ' disable constraint '||constraint_name||';' from user_constraints where constraint_type='U'; 如下: alter table SYENTINFO2 ...
  • 约束 (2).docx

    2019-12-08 15:42:27
    完整性约束的特点,定义实体完整性约束主键约束,创建主键:单列主键,复合主键,添加主键约束,添加多列主键约束,唯一约束 (候选键Unique),3.非空 (NOT NULL),默认值(Default)
  •  主键约束可以在中定义一个主键值,它可以确定中每一条记录,每个中只能有一个主键约束(只能有一个主键约束的意思并不是说受主键约束的列只能有一个),并且受主键约束的列不能为空值。如果主键约束定义在...
  • mysql学习笔记之二(表约束

    千次阅读 2015-04-26 13:29:48
    操作表约束 完整性是指数据的准确性和一致性,而完整性检查就是指检查数据的准确性和一致性。mysql数据库管理系统提供了一直机制来检查数据库中的数据是否满足规定的条件。以保证数据库中数据的准确性和一致性,这种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 416,521
精华内容 166,608
关键字:

表的约束