精华内容
下载资源
问答
  • 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. 你好! 希望你们一切都好。 在本文中...

    t-sql 唯一约束

    Hello! Hope you guys are doing well. In this article, we will be unveiling one of the interesting and important topic in SQL SQL UNIQUE Constraint.

    你好! 希望你们一切都好。 在本文中,我们将揭露SQL中有趣且重要的主题之一-SQL UNIQUE Con​​straint



    什么是UNIQUE约束? (What is a UNIQUE constraint?)

    SQL Constraints is a set of rules that are applicable to the schema or the data that is fed to the structure of a database. One such constraint is UNIQUE. The name ‘UNIQUE’ itself speaks about its nature and function.

    SQL约束是一组适用于架构或馈入数据库结构的数据的规则。 这样的约束之一就是UNIQUE。 “ UNIQUE”这个名称本身就说明了其性质和功能。

    SQL UNIQUE constraint enables the column to be free from redundant values. It helps restrict the input values to be unique. Thus, by applying a UNIQUE constraint to a column or a set of columns, we ensure that the data contains no Duplicate entries within it.

    SQL UNIQUE约束使列中没有多余的值。 它有助于将输入值限制为唯一。 因此,通过将UNIQUE约束应用于一列或一组列,我们确保数据中不包含重复项。

    Let us understand the importance and functionality of UNIQUE constraint through a real time application/example.

    让我们通过实时应用程序/示例了解UNIQUE约束的重要性和功能。

    Consider an online e-learning business portal. The owner of the business portal announces that he would grant free access to Data science courses in the coming time. In order to access the course material, the candidates would have to enter their email address and phone number.

    考虑一个在线电子学习业务门户。 商业门户网站的所有者宣布,他将在未来一段时间内授予免费访问数据科学课程的权限。 为了访问课程资料,候选人必须输入其电子邮件地址和电话号码。

    Now, to make sure that a single candidate receives a single material kit at a time, the database engineer has to make sure that no repeated email ids and phone numbers must be accepted in the database.

    现在,要确保单个候选人一次能收到一个材料包,数据库工程师必须确保数据库中不再需要重复的电子邮件ID和电话号码。

    This is where SQL UNIQUE constraint comes into the picture. Using UNIQUE constraint, no duplicate entries would be allowed. Thus, making sure that a single candidate does not grant access to multiple course material kits.

    这是SQL UNIQUE约束出现的地方。 使用UNIQUE约束,不允许重复条目。 因此,确保单个候选人不会授予访问多个课程资料包的权限。

    Having understood the working of SQL UNIQUE constraint, let us now understand the syntax of the same.

    了解了SQL UNIQUE约束的工作原理后,现在让我们了解一下它的语法。



    SQL UNIQUE约束的语法 (Syntax of SQL UNIQUE constraint)

    SQL UNIQUE constraint works with the structure as well as the data of the database.

    SQL UNIQUE约束适用于数据库的结构和数据。

    
    -- Any data definition language command(CREATE/ALTER/DROP)
    column-name UNIQUE;
    

    The SQL UNIQUE constraint is applied to one or multiple columns while defining the commands in the table or even can be applied while modifying the table(eg.ALTER command)

    SQL UNIQUE约束在表中定义命令时应用于一列或多列,甚至可以在修改表时应用(例如ALTER命令)

    By applying UNIQUE rule to a column, the database accepts only ‘unique’ values for the specified column.

    通过将UNIQUE规则应用于列,数据库将仅接受指定列的“唯一”值。



    通过示例实现UNIQUE约束 (Implementing UNIQUE constraint through examples)

    We’ll use the SQL UNIQUE constraint in multiple different ways.

    我们将以多种不同方式使用SQL UNIQUE约束。

    具有CREATE表命令SQL UNIQUE CONSTRAINT(SQL UNIQUE CONSTRAINT with CREATE table command.)

    In this example, we create a table using SQL Create query and define the following columns:

    在此示例中,我们使用SQL Create查询创建表并定义以下列:

    • id

      ID
    • acc_no

      acc_no
    • name

      名称
    
    CREATE TABLE INFO(
       ID   INT              NOT NULL,
       ACC_NO  INT           UNIQUE,
      NAME VARCHAR (20),   
       PRIMARY KEY (ID)
    );
    

    Here, the column ‘id’ is specified as NOT NULL(constraint), which means that the data values passed to this column can never be empty or null. Further, the column ‘ID’ is defined to behave as a PRIMARY KEY. SQL PRIMARY KEY too makes sure that the values passed to the table are non-redundant.

    在这里,列“ id”被指定为NOT NULL (约束),这意味着传递给该列的数据值永远不能为空或null。 此外,列“ ID”被定义为充当主键。 SQL PRIMARY KEY也可以确保传递到表的值是非冗余的。

    We have set the column ‘acc_no’ to UNIQUE by which the duplicate entries for this column would be forbidden. If we try to enter duplicate values for ‘acc_no’, duplicate value error would be raised.

    我们已将“ acc_no”列设置为UNIQUE,通过该列,该列的重复条目将被禁止。 如果我们尝试为“ acc_no”输入重复值,则会出现重复值错误。

    We can set UNIQUE constraint for multiple columns of the table as shown below–

    我们可以为表的多个列设置UNIQUE约束,如下所示–

    
    CREATE TABLE Sales (
        ID int NOT NULL,
        NAME varchar(255) NOT NULL,
        Age int,
        Salary INT,
        CONSTRAINT Unique_sales UNIQUE (NAME,Age)
    );
    

    In the above example, we have set UNIQUE constraint to two columns — ‘NAME’ and ‘Age’ and have provided a constraint name as ‘Unique_sales’.

    在上面的示例中,我们将UNIQUE约束设置为两列-“ NAME”和“ Age”,并将约束名称提供为“ Unique_sales”。

    带有ALTER table命令SQL UNIQUE CONSTRAINT (SQL UNIQUE CONSTRAINT with ALTER table command)

    At times, if we wish to set the UNIQUE constraint to any data column after defining it, we can club it with SQL Alter table query.

    有时,如果我们希望在定义后将UNIQUE约束设置为任何数据列,则可以将其与SQL Alter表查询合并。

    SQL ALTER Table query along with UNIQUE constraint helps us modify the rules of the column and set unique rule/constraint to the specified column or columns.

    SQL ALTER表查询以及UNIQUE约束可帮助我们修改列的规则,并为指定的一个或多个列设置唯一的规则/约束。

    Here, we have modified the above-created table – ‘Sales’ and have set Unique constraint to the column ‘Age’.

    在这里,我们修改了上面创建的表“ Sales”,并将“ Unique”约束设置为“ Age”列。

    
    ALTER TABLE Sales
       MODIFY Age INT UNIQUE;
    

    带有SQL DROP命令SQL UNIQUE CONSTRAINT (SQL UNIQUE CONSTRAINT with SQL DROP command)

    We can remove the rule/constraint from the columns with the help of SQL DROP command as shown below-

    我们可以借助SQL DROP命令从列中删除规则/约束,如下所示-

    
    ALTER TABLE Sales
    DROP CONSTRAINT Unique_sales;
    


    指向突出显示! (Point to Highlight!)

    As I had mentioned, that Primary key also ensures non-duplicate entries in the database.

    如前所述,该主键还可以确保数据库中的条目不重复。

    Then, why has the need of using UNIQUE constraint arised??

    那么,为什么需要使用UNIQUE约束呢?

    Let me answer this question to the simplest terms.

    让我用最简单的术语回答这个问题。

    SQL Primary Key serves the same purpose (like Unique constraint) of ensuring nonredundant values in the table. But, a table can have a SINGLE primary key while there can be multiple unique constraints applied to various columns of the table.

    SQL主键具有确保表中非冗余值的相同目的(如唯一性约束)。 但是, 一个表可以有一个SINGLE主键,同时可以对表的各个列应用多个唯一约束



    结论 (Conclusion)

    That’s all for this topic. Please feel free to comment below in case you come across any doubt.

    这就是本主题的全部内容。 如果您有任何疑问,请随时在下面发表评论。

    For more such posts related to SQL, do visit SQL JournalDev.

    有关与SQL有关的更多此类帖子,请访问SQL JournalDev



    参考资料 (References)

    SQL UNIQUE Constraint — Documentation

    SQL UNIQUE约束-文档

    翻译自: https://www.journaldev.com/41704/sql-unique-constraint

    t-sql 唯一约束

    展开全文
  • SQL唯一约束

    2020-12-21 19:09:20
    唯一约束 特点数据不能重复 方式1、 create table 表名( 字段名1 类型1 unique, 字段名2 类型2 ) 方式2、 create table 表名( 字段名1 类型1 , 字段名2 类型2, unique(字段名1) ) 方式3、 create table ...

    唯一约束
    特点数据不能重复
    方式1、
    create table 表名(
    字段名1 类型1 unique,
    字段名2 类型2

    方式2、
    create table 表名(
    字段名1 类型1 ,
    字段名2 类型2,
    unique(字段名1)

    方式3、
    create table 表名(
    字段名1 类型1,
    字段名2 类型2

    alter table 表名 add primary key(字段1);

    展开全文
  • SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创建和使用的方法。 什么是主键? 在数据库中,常常不只是一个表,...
  • 一丶 外键 /* 添加外键 */ USE EMIS301 GO ALTER TABLE 课程收费表 ADD CONSTRAINT FK_课程收费_学号 FOREIGN KEY(student_id) REFERENCES 学生(学号) GO 解释: ADD CONSTRAINT 外键...二丶 设置组合键(唯一性...

    一丶 外键

    /*	添加外键	*/
    USE EMIS301
    GO
    ALTER TABLE 课程收费表
    ADD CONSTRAINT FK_课程收费_学号 FOREIGN KEY(student_id) REFERENCES 学生(学号)
    GO
    
    解释:
    ADD CONSTRAINT 外键名称 FOREIGN KEY(设置外键的列) REFERENCES 另一个表名(列名)
    

    二丶 设置组合键(唯一性约束)

    USE EMIS301
    GO
    ALTER TABLE 课程收费表
    ADD CONSTRAINT IX_课程收费_学号科目学校 UNIQUE(student_id,course_code,school_term)
    GO
    
    解释:
    ADD CONSTRAINT 组合键名称 UNIQUE(列名,列名,列名)
    

    三丶 修改取值范围

    USE EMIS301
    GO
    ALTER TABLE 课程收费表 add check(school_term between 1 and 10)
    
    解释:
    ALTER TABLE 表名 add check(列名 between 起始 and 截止)
    GO
    

    四丶 设置某列的默认值

    /*	修改默认值	*/
    USE EMIS301
    GO
    ALTER TABLE 课程收费表 
    ADD charge tinyint NULL DEFAULT 0
    GO
    
    解释:
    ADD 列名 数据类型 NULL 默认值 0
    
    展开全文
  • SQL约束

    2019-11-11 16:27:15
    唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。 默认约束(Default ...

    约束

    约束对表中的数据进行限定,保证数据的正确性、有效性和完整性。

    • 主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。
    • 唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。
    • 检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。
    • 默认约束(Default constraint):某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。
    • 外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。

    非空约束

    not null:某一列的值不能为Null

    1. 创建表时添加约束
    CREATE TABLE stu(
                    id INT,
                    NAME VARCHAR(20) NOT NULL -- name为非空
                );
    
    1. 创建表完后,添加非空约束
    ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
    
    1. 删除name的非空约束
    ALTER TABLE stu MODIFY NAME VARCHAR(20);
    

    唯一约束

    unique,某一列的值不能重复。注意:null值可以有多个。
    唯一约束:unique,某一列的值不能重复

    1. 注意:
      • 唯一约束可以有NULL值
    2. 在创建表时,添加唯一约束
    CREATE TABLE stu(
            id INT,
            phone_number VARCHAR(20) UNIQUE -- 手机号
        );
    
    1. 删除唯一约束
    ALTER TABLE stu DROP INDEX phone_number;
    
    1. 在表创建完后,添加唯一约束
    ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
    

    主键约束

    primary key,非空并且唯一,一张表只能有一个主键,主键是表的唯一标识
    主键约束:primary key。

    1. 注意:

      1. 含义:非空且唯一
      2. 一张表只能有一个字段为主键
      3. 主键就是表中记录的唯一标识
    2. 在创建表时,添加主键约束

    create table stu(
            id int primary key,-- 给id添加主键约束
            name varchar(20)
        );
    
    1. 删除主键
    -- 错误 alter table stu modify id int ;
        ALTER TABLE stu DROP PRIMARY KEY;
    
    1. 创建完表后,添加主键
    ALTER TABLE stu MODIFY id INT PRIMARY KEY;
    

    主键约束——自动增长

    1. 概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长

    2. 在创建表时,添加主键约束,并且完成主键自增长

    create table stu(
        id int primary key auto_increment,-- 给id添加主键约束
        name varchar(20)
    );
    
    1. 删除自动增长
    ALTER TABLE stu MODIFY id INT;
    
    1. 添加自动增长
    ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
    
    	自增主键 
    这种方式是使用数据库提供的自增数值型字段作为自增主键,它的优点是: 
    (1)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利; 
    (2)数字型,占用空间小,易排序,在程序中传递也方便; 
    (3)如果通过非系统增加记录时,可以不用指定该字段,不用担心主键重复问题。 
    其实它的缺点也就是来自其优点,缺点如下: 
    (1)因为自动增长,在手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其它系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突(前提是老系统也是数字型的)。特别是在新系统上线时,新旧系统并行存在,并且是异库异构的数据库的情况下,需要双向同步时,自增主键将是你的噩梦; 
    (2)在系统集成或割接时,如果新旧系统主键不同是数字型就会导致修改主键数据类型,这也会导致其它有外键关联的表的修改,后果同样很严重; 
    (3)若系统也是数字型的,在导入时,为了区分新老数据,可能想在老数据主键前统一加一个字符标识(例如“o”,old)来表示这是老数据,那么自动增长的数字型又面临一个挑战。
    

    外键约束

    foreign key,让表于表产生关系,从而保证数据的正确性。
    外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。

    1. 在创建表时,可以添加外键
    create table 表名(
                ....
                外键列
                constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
            );
    
    1. 删除外键
    ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
    
    1. 创建表之后,添加外键
    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
    

    外键约束——级联操作

    A表与B表有外键约束,A中有外键,B中数据改变时,A中的外键字段对应做出改变。

    1. 添加级联操作
    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 
                FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE  ;
    
    1. 分类:
      1. 级联更新:ON UPDATE CASCADE
      2. 级联删除:ON DELETE CASCADE
    展开全文
  • sql语句添加约束

    2015-12-09 15:04:00
    --唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 --检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束。 --默认约束(Default Constraint):某列的默...
  • SQL语句创建约束

    2017-04-11 08:42:00
    约束的目的就是确保表中的数据的完整性。 常用的约束类型如下: ...唯一约束:(Unique Constraint)要求该列唯一,允许为空,但只能出现一个空值 检查约束:(Check Constraint)某列取值范围限制、格式限制等。...
  • sql 语句 设置约束

    千次阅读 2016-11-08 16:16:05
    2唯一约束(unique): 1)列级约束: 1 字段名称 字段类型(字段长度) unique 2 unique(被约束字段名称) 2)表级约束(不可以被约束所有字段插入数据都相同) unique(被约束字段名称,被约束字段名称…) 给...
  • SQL中的约束

    2018-05-17 15:03:14
    约束的定义: 对一个表中的操作的限制叫做约束约束的分类: 主键约束: 作用:不允许重复元素,避免了数据的冗余。 外键约束: 作用:通过外键约束从语法上保证了本事物所关联的其他事物是一定存在的。比如...
  • SQL 约束

    2018-12-14 23:19:24
    SQL中的约束 NOT NULL(非空约束) 设置列不接受空值 建表时 value_name varchar(20) not null UNIQUE (唯一约束) 约束表中的记录的唯一性。 主键和UNIQUE都提供了唯一约束,但主键拥有自定义的唯一约束。 每个...
  • Sql语句添加约束

    2014-12-03 13:11:00
    --唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 --检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束。 --默认约束(Default Constraint):某列的默认值...
  • sql约束

    2020-09-20 02:09:29
    约束 约束的作用 面临的问题 -某列必须有值且唯一 -某列的取值受到另一列取值的限制 ...唯一约束 not null 非空约束 references foreign key 外键约束 check 检查约束 create table test( c1 number co
  • 使用sql语句添加约束

    2017-02-24 15:03:55
    --唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 --检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束。 --默认约束(Default Constraint):某列的默认值...
  • SQL常用约束语句

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

    千次阅读 热门讨论 2014-01-27 14:14:39
    key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空 唯一。外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的 值,...
  • SQL UNIQUE 约束

    2018-03-19 14:52:00
    SQL Not Null ...UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY...
  • SQL建表+约束

    2019-09-18 09:11:36
    建表:表是数据库中最重要的... BIT (位字段类型,取值范围是1~64,默认为1) TINYINT (很小的整数类型。带符号的范围是-128~127,无符号的范围是0~255) BOOL,BOOLEAN 布尔类型,是TINYINT(1)的同义词。...
  • SQL约束之外键约束

    2020-10-10 10:50:04
    外键约束(foreign key),指的是一张表的一个字段受限于另一张表的一个字段的值,其目的是在两个表之间建立某种关系,从而保证数据的准确性,优化表的结构,同时也可以达到减少表内容重复性的目的。  ~ &...
  • 一、主键约束(PRIMARY KEY) `alter table class add constraint ...二、唯一约束(UNIQUE) 对于UNIQUE约束来讲,索引是必须的。如果不存在,就自动创建一个(UNIQUE的唯一性本质上是通过索引来保证的) UNIQUE...
  • 实体完整性:主键约束唯一约束(可以为空) 域完整性:check约束 引用完整性:Foreign KEY约束 默认约束(默认值) SQL语句创建约束需要一个关键字:Costraint 创建、删除约束SQL语句: 表名是...
  • T-SQL使用约束

    2021-01-12 15:47:15
    唯一约束:(Unique Constraint) 要求该列唯一,允许为空,但只能出现一个空值 检查约束:(Check Constraint) 某列取值范围限制、格式限制等。如有关年龄的限制 默认约束:(Default Constraint) 某列的默认值,如...
  • --唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 --检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束。 --默认约束(Default Constraint):某列的默认值...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,942
精华内容 7,176
关键字:

sql取值唯一约束