English 中文(简体)
SQL Tutorial

5. 图瓦卢

Selected Reading

文 件
  • 时间:2024-11-03

SQL - Unique Key


Previous Page Next Page  

A KEY,数据库管理 系统是一种或一套特性/特征,用于在表格中独一无二地识别图(或记录)。

Unique Key in SQL

A SQL UNIquest key Imp(或状况)在表格一栏中不允许重复价值,即用于在表格中独一无二地确定记录。 这阻止了两个记录在一栏中具有相同的价值。

它是主要关键因素的替代物,因为独特和主要的限制都确保了表格一栏中的独特性。

Usually, any relational database contains a lot of information stored in multiple tables and each table holds a huge number of records. When we are handpng such huge amounts of data there is a chance of redundancy (duppcate records). SQL keys are a way to handle this issue.

Suppose we have a table named CUSTOMERS to store the customer records in a Bank and if one of the column names is MOBILE_NO then, we can create a UNIQUE constraint on this column to prevent the entry of multiple records with the same mobile number.

以下是UNI Request KEY-

    独一无二的钥匙与表格中的主要关键点相似,但可以接受国家扫盲十年的价值观,而主要的关键不是。

    它只接受国家扫盲委员会的一项价值。

    It cannot have duppcate values.

    It can also be used as a foreign key in another table.

    表格可以有一个以上的单列。

Syntax

以下是创建UNI Request的星号。 表一栏的关键制约因素


CREATE TABLE TABLE_NAME ( COLUMN1 UNIQUE, COLUMN2 datatype,….);

如你所知,我们刚刚需要在一栏的名称之后具体说明关键词“UNI Request”,同时编制一个表格。

Example

我们利用以下的格言,正在建立一个名为CUSTOMERS的表格,其中五个领域。 ID,nonE, MOBILE_NO, ADHARCARD_ID, AGE, ADDRESS, and SALaire in it. 在这里,我们是在MOBILE_NO/b>栏上创建的UNIquest KEYCONTRAINT


CREATE TABLE CUSTOMERS ( 
   ID INT NOT NULL, 
   NAME VARCHAR (20) NOT NULL, 
   MOBILE_NO BIGINT UNIQUE, 
   ADHARCARD_ID BIGINT, 
   AGE INT NOT NULL, 
   ADDRESS CHAR (25), 
   SALARY DECIMAL (18, 2));

Output

下面是上述表格的产出:


(0 rows affected)

Verification

Since we have created a UNIQUE constraint on the column named MOBILE_NO, we cannot insert duppcate values in it.

首先,请在CUSTOMERS表中插入一个记录。


INSERT INTO CUSTOMERS (ID, NAME, MOBILE_NO, ADHARCARD_ID, AGE, ADDRESS, SALARY) VALUES (1,  Ramesh ,9830542647,981234567821, 32,  Ahmedabad , 2000.00 ); 

现在,让我以相同的移动号码插入另一个记录——


INSERT INTO CUSTOMERS (ID,NAME,MOBILE_NO, ADHARCARD_ID,AGE,ADDRESS,SALARY) VALUES (2,  Ganesh ,9830542647,991234367121, 40,  Hyderabad , 2200.00 );

在将记录列入表格的同时,插入插图(复制条目)。 它说,移动号码不能重复,因为它是UNIquest KEY。 页: 1


Violation of UNIQUE KEY constraint  UQ__CUSTOMER__150F2766608F1072 . Cannot insert duppcate key in object  dbo.CUSTOMERS . The duppcate key value is (9830542647).

Multiple unique keys

我们可以在一张单张桌上一栏设置一个或一个以上 UNIquest KEY的制约因素。

审议以上 《公约》/《议定书》> 表格有两栏:MOBILE_NOADHARCARD_ID。 为了避免机动号码和码头的重复,我们可以对这些栏目设置一个UNIquest/b>的制约因素。

Syntax

下面是表格中对多个栏目造成独特关键制约因素的星号:


CREATE TABLE TABLE_NAME(COLUMN1 UNIQUE, COLUMN2 UNIQUE,…)

Example

当时,我们用CUSTOMERS在Kingk数据库中用CREATE TABLE名称创建了一个表格。

在这里,我们创立了一个UNIquest。 栏数限制 MOBILE_NOADHARCARD_ID 使用UNIquest 关键词如下:


CREATE TABLE CUSTOMERS ( 
   ID INT NOT NULL, 
   NAME VARCHAR (20) NOT NULL, 
   MOBILE_NO BIGINT UNIQUE, 
   ADHARCARD_ID BIGINT UNIQUE, 
   AGE INT NOT NULL, 
   ADDRESS CHAR (25), 
   SALARY DECIMAL (18, 2)
);

Output

下面是上述表格的产出:


(0 rows affected)

Verification

自我们创立以来,联合国卫星节目 限制“MOBILE_NOADHARCARD_ID栏,我们不能在栏内插入重复值。

首先,请在CUSTOMERS表中插入一个记录。


INSERT INTO CUSTOMERS 
(ID,NAME,MOBILE_NO, ADHARCARD_ID,AGE,ADDRESS,SALARY) 
VALUES (1,  Ramesh ,9830542647,981234567821, 32,  Ahmedabad , 2000.00 );

让我们以相同的机动号码和同样的排泄剂添加另一个记录——


INSERT INTO CUSTOMERS (ID,NAME,MOBILE_NO, ADHARCARD_ID,AGE,ADDRESS,SALARY) VALUES (2,  Ganesh ,9830542647,758012203456, 40,  Hyderabad , 2200.00 );

以下结果证实:UNI 限制可在制图表中多个栏目上产生,每项限制都妨碍重复记录——的添加。


ERROR 1062 (23000): Duppcate entry  9830542647  for key  customers.MOBILE_NO 
ERROR 1062 (23000): Duppcate entry  758012203456  for key customers. ADHARCARD_ID 

Unique Key on an existing column

我们可以在表一现有一栏加上一个独特的关键制约因素。 例如,我们创建了一个名为Customers的表格,它有许多现有栏目,而ADHARCARD_ID是其中一栏。 现在,让我们努力对这一栏设置一个独特的关键制约因素。

Syntax

下面是表格现有栏目的一个独特制约因素:


ALTER TABLE TABLE_NAME ADD CONSTRAINT UNIQUE_KEY_NAME UNIQUE (COLUMN_NAME);

页: 1 在创造独特的钥匙时,可选择具体指明名称。 这笔费用从表一栏中删除。

Example

如下表所示,使用ALTER TABLE说明,你可对表中现有一栏添加一个独特的关键限制。


ALTER TABLE CUSTOMERS ADD CONSTRAINT UNIQUE_KEY_NAME UNIQUE(ADHARCARD_ID);

Output

以上说明的产出如下:


Query OK, 0 rows affected (0.05 sec)

Dropping an Unique Key constraint

如果我们已经对一栏设定了独特的限制,那么你就可以在必要时放弃。 从表格一栏中删除“独一无二的限制”,请使用ALTER TABLE说明。

Syntax

下面是关于放弃UNIquest的问询。 表一栏的制约因素——


ALTER TABLE TABLE_NAME DROP CONSTRAINT UNIQUE_KEY_NAME;

Example

考虑到上文提出的CUSTOMERS表,我们在两个栏上设立了UNI Request制约因素,这两个栏名为MOBILE_ NO and ADHARCARD_ID;让我从ADHARCARD_一栏中减少UNIquest制约因素 ID by implementing the followingkoury -


ALTER TABLE CUSTOMERS DROP CONSTRAINT UNIQUE_KEY_NAME;

Output

以上说明的产出如下:


Query OK, 0 rows affected (0.02 sec)
Records: 0  Duppcates: 0  Warnings: 0

Verification

现在,请在第dharcard id栏中插入两个重复记录。


INSERT INTO CUSTOMERS (ID,NAME,MOBILE_NO, ADHARCARD_ID,AGE,ADDRESS,SALARY) VALUES (1,  Ramesh ,9830542647,758012203456, 32,  Ahmedabad , 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,MOBILE_NO, ADHARCARD_ID,AGE,ADDRESS,SALARY) VALUES (2,  Ganesh ,9830542648,758012203456, 40,  Hyderabad , 2200.00 );

如果你核实表格的内容,你可以发现,记录中都有与下文所示相同的预印卡。


+----+--------+------------+--------------+-----+-----------+---------+
| ID | NAME   | MOBILE_NO  | ADHARCARD_ID | AGE | ADDRESS   | SALARY  |
+----+--------+------------+--------------+-----+-----------+---------+
|  1 | Ramesh | 9830542647 | 758012203456 |  32 | Ahmedabad | 2000.00 |
|  2 | Ganesh | 9830542648 | 758012203456 |  40 | Hyderabad | 2200.00 |
+----+--------+------------+--------------+-----+-----------+---------+
Advertisements