精华内容
下载资源
问答
  • sql约束、默认和规则

    2019-07-23 03:08:21
    资源名称:sql约束、默认和规则资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
  • SQL 约束(Constraints)

    2020-12-16 17:32:17
    SQL 约束(Constraints) SQL 约束(Constraints) SQL 约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定...
  • Java学习日志(二十八)SQL语句增加表中数据修改表中数据删除表中数据SQL约束主键约束非空约束唯一约束默认约束 SQL语句 增加表中数据 创建表catgory 字段:分类主键,分类名称 分类主键:添加主键约束和自动增长 ...
  • SQL约束的作用

    千次阅读 2018-10-02 16:56:15
    SQL 约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。 SQL CREATE TABLE + ...

    SQL 约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。

    约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

    SQL CREATE TABLE + CONSTRAINT 语法:

    CREATE TABLE table_name
    (
      column_name1 data_type(size) constraint_name,
      column_name2 data_type(size) constraint_name,
      column_name3 data_type(size) constraint_name
    );

    SQL中的约束有以下几种:

    • NOT NULL —— 指示某列不能存储NULL值。
    • UNIQUE —— 指示某列中每一行的值必须唯一,不可重复。
    • PRIMARY KEY —— 主键,每个表都应该有且只能有一个主键。其约束相当于NOT NULL + UNIQUE,确保某列(或多个列的结合)有唯一标识,有助于更快地找到一个表中特定的记录。
    • FOREIGN KEY —— 外键,用于保证一个表中的数据匹配另一个表中的值的参照完整性。当指定了表1中某列为外键,并且其reference为表2中的某列(该列必须是UNIQUE约束的),就说明表1中的外键列的取值必须要在其所指向的列中取得。通过这样的约束,来预防破坏表之间连接的行为,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
    • CHECK —— 保证列中的值符合指定的条件。如果对单个列定义 CHECK 约束,那么该列只允许特定的值;如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
    • DEFAULT —— 规定没有给列赋值时的默认值。
    • 另外还有一个AUTO INCREMENT字段,会在新记录插入表中时生成一个唯一的数字,这个数字默认是从1开始递增的。我们通常希望在每次插入新记录时,自动地创建主键字段的值,此时就可以为主键添加AUTO INCREMENT字段

    使用约束创建MySQL数据表的实例:
     

    CREATE TABLE Persons
    (
        Id_P int NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        City varchar(255),
        PRIMARY KEY (Id_P)  //PRIMARY KEY约束
    )
    CREATE TABLE Persons
    (
        Id_P int PRIMARY KEY,   //PRIMARY KEY约束
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        City varchar(255)
    )

    PRIMARY KEY可以放在创建表的最后一行声明(上面第一段代码),也可以在声明数据类型的时候直接添加约束(第二段)。

     


     

    展开全文
  • SQL约束简短介绍

    2014-03-18 17:31:39
    很简短(6张PPT),只是简单介绍了下约束,适合初学者。
  • SQL 约束有哪几种并解释含义?

    千次阅读 2020-01-13 21:02:12
    SQL约束(Constraints)主要用于规定表中的数据规则,如果存在违反约束的数据行为,行为被约束终止。约束可以在创建表时规定(通过CREATE TABLE语句),或者在表创建之后规定(通过ALTER TABLE语句)。 在SQL中,...

     SQL约束(Constraints)主要用于规定表中的数据规则,如果存在违反约束的数据行为,行为被约束终止。约束可以在创建表时规定(通过CREATE TABLE语句),或者在表创建之后规定(通过ALTER TABLE语句)。

    在SQL中,有如下约束:

    • NOT NULL -指示某列不能存储NULL值
    • UNIQUE-保证某列的每行必须具有唯一的值
    • PRIMARY KEY-NOT NULL和UNIQUE的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速的找出表中的一个特定的记录
    • FOREIGN KRY-保证一个表中的数据匹配另一个表中的值的参照完整性。
    • CHECK-保证列中的值符合指定的条件
    • DEFAULT-规定没有给列赋值时的默认值。

     在默认的情况下,表的列接受 NULL 值。但是,NOT NULL 约束强制列不接受 NULL 值 ,并且强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

     其次,UNIQUE 约束唯一标识数据库表中的每条记录。它和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证,并且PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束,但是我们要注意的是,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

    举例在表创建之后规定约束:

    #一共有五种约束:这里以学生表stuinfo为例
    #1、添加主键约束
    alter table stuinfo add costraint pk_stuno primary key (stuno)
    #2、唯一约束
    alter table stuinfo add constraint uq_stuid unique (stuid)
    #3、添加默认约束
    alter table stuinfo add constraint df_address default ('地址不详') for address
    #4、添加检查约束
    alter table stuinfo add constraint ck_age check (age between 15 and 40) 
    #这时年龄在15到40之间
    #5、添加外键约束
    alter table stumarks add constraint fk_stuno foreign key (stuno) references stuinfo (stuno)
    #这是一个成绩表(stumarks)引用学生信息表中的列-学号
    
    展开全文
  • 表中有数据不能创建约束   B.视图下设置后,要点击保存(只有保存后在才看的到) c 别忘了,点刷新,才会出来呀! 1、主键约束 primary key 主键是每行的唯一标识符,仅仅通过它就能准确定位到一行,...

    注意:

    A.表中有数据不能创建约束

     

    B.视图下设置后,要点击保存(只有保存后在才看的到)


    c   别忘了,点刷新,才会出来呀!


    1、主键约束 primary key

    主键是每行的唯一标识符,仅仅通过它就能准确定位到一行,其中主键列在整个表中不能有重复,必须包含唯一的值(不能为NULL)。


    alter table t_group  
      alter column id int not null      --修改字段类型
    go


    alter table t_group
      add constraint pk_group_Id --字段创建主键约束
      primary key(id)
    go


    constraint  [kənˈstrent]  约束


    2、外键约束 foreign key

    外键既能确保数据完整性,也能表现表之间的关系。添加了外键之后,插入引用表的记录要么必须被引用表中被引用列的某条记录匹配,要么外键列的值必须设置为NULL。

      外键和主键不一样,每个表中的外键数目不限制唯一性。在每个表中,每一有-~253个外键。唯一的限制是一个列只能引用一个外键。一个列可以被多个外键引用。

    如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。

    比如说:

    create table t_group (   
        id int not null,   
        name varchar(30),   
        primary key (id)   
    );  
     
    insert into t_group values (1, 'Group1');   
    insert into t_group values (2, 'Group2');
     
    create table t_user (   
        id int not null,   
        name varchar(30),   
        groupid int,   
        primary key (id),   
        foreign key (groupid) references t_group(id) on delete cascade on update cascade  
    );  
     
    insert into t_user values (1, 'qianxin', 1); --可以插入   
    insert into t_user values (2, 'yiyu', 2);    --可以插入   
    insert into t_user values (3, 'dai', 3);    --错误,无法插入,用户组3不存在,与参照完整性约束不符 
     
    insert into t_user values (1, 'qianxin', 1);   
    insert into t_user values (2, 'yiyu', 2);   
    insert into t_user values (3, 'dai', 2);   
    delete from t_group where id=2;              --导致t_user中的2、3记录级联删除   
    update t_group set id=2 where id=1;          --导致t_user中的1记录的groupid级联修改为2 
    

    create table t_group (   
        id int not null,   
        name varchar(30),   
        primary key (id)   
    );  
     
    insert into t_group values (1, 'Group1');   
    insert into t_group values (2, 'Group2');
     
    create table t_user (   
        id int not null,   
        name varchar(30),   
        groupid int,   
        primary key (id),   
        foreign key (groupid) references t_group(id) on delete cascade on update cascade  
    );  
     
    insert into t_user values (1, 'qianxin', 1); --可以插入   
    insert into t_user values (2, 'yiyu', 2);    --可以插入   
    insert into t_user values (3, 'dai', 3);    --错误,无法插入,用户组3不存在,与参照完整性约束不符 
     
    insert into t_user values (1, 'qianxin', 1);   
    insert into t_user values (2, 'yiyu', 2);   
    insert into t_user values (3, 'dai', 2);   
    delete from t_group where id=2;              --导致t_user中的2、3记录级联删除   
    update t_group set id=2 where id=1;          --导致t_user中的1记录的groupid级联修改为2 


    3、唯一约束unique 

    指定列中的每个值必须是唯一的。可以多列唯一。

    alter table Account
        add constraint AK_AccountName    --约束名
        unique (Account_Name)    -- 列名
    

    alter table Account
        add constraint AK_AccountName    --约束名
        unique (Account_Name)    -- 列名

    补充:

    1.主键约束(PRIMARY KEY)

    1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 
    2) 是不可能(或很难)更新. 
    3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL).
    4) 主健可作外健,唯一索引不可;

    2.唯一性约束(UNIQUE)
    1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束.
    2) 只要唯一就可以更新. 
    3) 即表中任意两行在  指定列上都不允许有相同的值,允许空(NULL).
    4) 一个表上可以放置多个唯一性约束

    3.唯一索引(INDEX)

       创建唯一索引可以确保任何生成重复键值的尝试都会失败。

       唯一性约束和主键约束的区别:
        (1).唯一性约束允许在该列上存在NULL值,而主键约束的限制更为严格,不但不允许有重复,而且也不允许有空值。
        (2).在创建唯一性约束和主键约束时可以创建聚集索引和非聚集索引,但在 默认情况下主键约束产生聚集索引,而唯一性约束产生非聚集索引

     

       约束和索引, 前者是用来检查数据的正确性,后者用来实现数据查询的优化,目的不同。
       唯一性约束与唯一索引有所不同:

       (1).创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。

       (2).创建唯一索引只会创建一个唯一索引,不会创建Constraint。

       也就是说其实唯一约束是通过创建唯一索引来实现的。

       在删除时这两者也有一定的区别:

       删除唯一约束时可以只删除约束而不删除对应的索引,所以对应的列还是必须唯一的,

       而删除了唯一索引的话就可以插入不唯一的值。

     


    4、CHECK约束

    CHECK约束约束可以和一个列关联,也可以和一个表关联,因为它们可以检查一个列的值相对于另外一个列的值,只要这些列都在同一个表中以及值是在更新或者插入的同一行中。CHECK约束还可以用于检查列值组合是否满足某一个标准。

      可以像使用where子句一样的规则来定义CHECK约束。CHECK约束条件的示例如下: 

    目标

    SQL

    限制Month列为合适的数字

    BETWEEN 1 AND 12

    正确的SSN格式

    LIKE'[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'

    限制为一个快递公司的特定列表

    IN('UPS','Fed Ex',EMS')

    价格必须为正数

    UnitPrice >= 0

    引用同一行中的另外一列

    ShipDate >= OrderDate


      上面给出的列表只是一小部分,而条件实际上市无限多的。几乎所有可以放到where子句的条件都可以放到该约束中。而且和其他选择(规则和触发器)相比,CHECK约束执行速度更快。

      在已存在的表中添加一个CHECK约束:

    alter table Account

        add constraint CN_AccountAge

        check 

        (Account_Age > 18);    -- 插入年龄必须大于18

      如果此时视图添加一条不满足的记录,将报如下错误:

    insert into Accountvalues (22,'洪',17)

    消息547,级别16,状态0,第1 行

    INSERT 语句与 CHECK 约束"CN_AccountAge"冲突。该冲突发生于数据库"Nx",表"dbo.Account", column 'Account_Age'。

    语句已终止。
     

    5、DEFAULT约束

    DEFAULT约束在INSERT INTO语句没有为列指定值的时候提供一个默认值。

    示例

    例如,以下SQL创建了一个名为CUSTOMERS的表,包含5个列。其中,SALARY列的默认值为5000.00,如果INSERT INTO语句没有为该列指定值,将会使用默认的5000.00。

     

    CREATE TABLE CUSTOMERS(
    ID INT NOT NULL,
    NAME VARCHAR (20) NOT NULL,
    AGE INT NOT NULL,
    ADDRESS CHAR (25) ,
    SALARY DECIMAL (18, 2) DEFAULT 5000.00, PRIMARY KEY
    PRIMARY KEY (ID)
    );

     

    如果该表已经存在,你可以使用类似以下的语句为SALARY列添加一个NOT NULL约束:

     

    ALTER TABLE CUSTOMERS
       MODIFY SALARY  DECIMAL (18, 2) DEFAULT 5000.00;

    删除默认约束

    使用以下SQL删除DEFAULT约束:

     

    ALTER TABLE CUSTOMERS
       ALTER COLUMN SALARY DROP DEFAULT;

    禁用约束

    ALTER TABLE CUSTOMERS

    WITHNOCHECK    ------- 临时禁用约束

    ADD CONSTRAINT

    CHECK  ........

     

     

     

     

     

    展开全文
  • SQL约束名创建与修改添加

    千次阅读 2020-04-21 17:07:43
    PRIMARY KEY约束与 FOREIGN KEY约束创建 主键PRIMARY创建: 格式1: CREATE TABLE <表名> ( <列名1> 数据类型 PRIMARY KEY, <列名2> 数据类型 ) 如:创建表g1并且设置g_id为主键 CREATE TABLE ...

    PRIMARY KEY约束与 FOREIGN KEY约束创建

    主键PRIMARY创建:

    格式1CREATE TABLE <表名><列名1> 数据类型  PRIMARY KEY,
    <列名2> 数据类型 
    )
    

    如:创建表g1并且设置g_id为主键

    CREATE TABLE g1
     (
    g_id CHAR(6) PRIMARY KEY,
    g_name VARCHAR(20)
    )
    

    格式2:

    CREATE TABLE <表名><列名1> 数据类型  ,
    <列名2> 数据类型 ,
    .....,
    CONSTRAINT 约束名 PRIMARY KEY(列或者列的组合)
    )
    

    如:创建表stu 定义主键为s_id

    CREATE TABLE stu
    (
    s_id  CHAR(10) ,
    s_name VARCAHR(30) ,
    s_sex CHAR(2),
    CONSTRAINT pk PRIMARY KEY(s_id)
    )
    

    FOREIGN KEY 约束
    创建时的FOREIGN KEY约束:

    CREATE TABLE <表名><列名> 数据类型 REFERENCES <被引用的表名> (被引用的列名)
    

    例:

    CREATE TABLE Types
    (
    t_id CHAR(2) PRIMARY KEY,
    t_Name VARCAHR(2)
    )
    
    CREATE TABLE goods
    (
    g_id CHAR(6) ,
    g_Name VARCHAR(30) ,
    t_id CHAR(2) REFERENCES Types(t_id)
    //goods的外键引用的Types的t_id必须为Types的主键,
    一个表可以有多个外键,每个外键是每个引用表的主键。
    

    修改添加外键约束:

    ALTER TABLE <表名> 
    ADD CONSTRAINT <约束名> FOREIGN KEY (字段名) REFERENCES <被引用的表名> (被引用的列名)
    

    例:

    ALTER TABLE goods
    ADD CONSTRAINT fg_t_id FOREIGN KEY (t_id)
    REFERENCES Types(t_id)
    

    CHECK例子:
    关于LENGTH:
    DataLength()函数返回的是字符串字节的长度,包含后缀空格。而Len()函数返回的是字符串的字符长度,不包含后缀的空格。
    设置Customers表的c_CarID的长度只能为15或者18位

    ALTER TABLE Customers ADD CONSTRAINT
    ck_CarID CHECK(len(c_CarID)=15 OR len(c_CarID=18)) 
     //限定了输入字符长度为15或者18
    

    电子邮箱中(e-Email)必须包含“@”符号

    ALTER TABLE Customers ADD CONSTRAINT
    ck_email CHECK ([c_E-mail] LIKE '%@%')
    

    UNIQUE 约束 : 确保列中不输入重复值来保证数据的完整性
    创建UNIQUE

    CREATE TABLE <表名>....
    <列名> 数据类型 UNIQUE,
    ...)
    

    修改设置UNIQUE约束

    ALTER TABLE <表名>
    ADD CONSTRAINT <约束名> UNIQUE (字段)
    

    //使用sp_help <表名>查看到约束名

    展开全文
  • 创建SQL约束的方法

    千次阅读 2018-01-24 19:36:11
    SqlServer 中表结构 SELECT  syscolumns . name , systypes . name , syscolumns . isnullable , syscolumns . length FROM  syscolumns , systypes WHERE  syscolumns . xusertype  = ...
  • 约束 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 分类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign key 非空约束:not null,值不能为null ...
  • NOT NULL 不允许空值约束 NOT NULL 约束强制列不接受 NULL 值(NULL值就是没有值或缺值)。NOT NULL 约束强制字段始终包含值,即不向字段添加值,就无法插入新记录或者更新记录,也就是在插入或更新行时该列必须有...
  • 打开    按照步骤,注册账号之后,哈哈   说不是管理员不能查看     所以我们要用管理员身份进去 ...hint:SQL约束攻击   在SQL中执行字符串处理时,字符串末尾的空格符将会被删除。...
  • 如果有人问你 SQL 约束,记得把这篇文章给他

    千次阅读 多人点赞 2020-03-06 15:58:05
    介绍 SQL 标准中定义的完整性约束,包括非空约束、唯一约束、主键约束、外键约束、检查约束和默认值,以及主流数据库中的实现:Oracle、MySQL、Microsoft SQL Server、PostgreSQL、SQLite。
  • 创建与删除SQL约束或字段约束SQL约束控制 1)禁止所有表约束的SQL select ''alter table ''+name+'' nocheck constraint all'' fromwhere type=''U'' 2)删除所有表数据的SQL select ''TRUNCATE TABLE '...
  • t-sql 唯一约束Hello! Hope you guys are doing well. In this article, we will be unveiling one of the interesting and important topic in SQLSQL UNIQUE Constraint. 你好! 希望你们一切都好。 在本文中...
  • SQL约束(Constraints)

    千次阅读 2018-10-02 19:48:45
    NOT NULL 非空约束 UNIQUE 唯一性约束 primary key 主键约束 foreign key 外键约束 check 检查约束 ...default 默认约束 ...NOT NULL 非空约束 ...NOT NULL 约束强制列不接受 NULL 值。...下面的 SQL ...
  • 一、基础(建表、建约束、关系) ...约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章
  • SQL外键约束

    2020-07-25 14:47:23
    SQL外键约束外键约束添加外键约束删除外键约束 外键约束 一个表中的 FOREIGN KEY(外键) 指向另一个表中的 PRIMARY KEY(主键) FOREIGN KEY 约束用于预防破坏表之间连接的动作 FOREIGN KEY 约束也能防止非法数据...
  • SQL 约束 (Constraints) SQL 约束 约束用于限制加入表的数据的类型。 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。 我们将主要探讨以下几种约束: ...
  • sql约束文档

    2013-01-25 10:35:07
    sql约束文档
  • SQL常用约束语句

    千次阅读 2018-06-26 16:07:59
    SQL常用约束语句常用五类约束: not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,指定某列的数据不能重复、唯一 foreign key:外键,指定该列...
  • SQL UNIQUE 约束

    2020-12-16 16:28:59
    SQL UNIQUE 约束 SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。 请注意,每个表可以...
  • SQL六大约束

    千次阅读 2019-06-17 12:41:49
    一、六大约束条件 1.1 not null非空约束 该字段的值不能为空。 1.2 default默认值约束 如果插入数据时,该字段没有赋值,则为默认值。 1.3 primary key主键约束 该字段不能重复,且不能为空。 比如学号。...
  • SQL中的默认值约束

    2020-12-22 15:32:20
    默认值约束 在表中的字段需要使用默认值的时候,可以使用默认值约束 语法: create table 表名( 字段1 类型1 default ‘默认值’, 字段2 类型2 )
  • PHP+MYSQL的SQL约束攻击(原理+实现)

    万次阅读 2018-11-06 15:59:54
    SQL约束攻击环境搭建 MYSQL: 表结构: 创建表命令:create table ctf(name char(10),password char(20)); 表内数据: 插入命令:insert into ctf values(‘admin’,‘PassAdmin’); PHP LOGIN页面: &amp;lt;...
  • 文章目录准备知识定义唯一约束使用SSMS工具定义唯一约束使用SQL方式定义唯一约束方式一:在创建数据表的时候定义唯一约束方式二:修改数据表定义唯一约束删除唯一约束使用SSMS工具删除唯一约束方式一:在对象资源...
  • SQL教程——常见的约束类型

    千次阅读 2020-12-01 01:21:56
    摘要:本文主要介绍SQL的DDL语法 目录 常见的约束类型 一、创建表时添加约束 1.添加列级约束 2.添加表级约束 二、删除表时删除约束 1.删除非空约束 2.删除默认约束 3.删除主键 4.删除唯一 5.删除外键 ...
  • SQL Server常用约束表达式实例

    千次阅读 2021-03-09 22:03:26
    ①、性别只能填写’男’和’女’ (字段名 in (‘男’,‘女’) ) 或 (字段名=‘男’ or 字段名=‘女’) ②、某在数字在0到100之间 (字段名>0 and 字段名<100) ③、规定长度不能小于6位数 (len(字段名)>...
  • SQL的六种约束——数据库的约束

    千次阅读 2018-12-26 19:51:54
    /*数据库的约束*/ /*1.not null 非空约束  ①强制列不接受空值  ②例:创建表时,name varchar(6) not null,2.unique 唯一性约束  ①约束唯一标识数据库表中的每条记录  ②unique和primary key都为数据提供了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 231,282
精华内容 92,512
关键字:

sql约束