📜  使用主键创建表的 SQL 查询

📅  最后修改于: 2022-05-13 01:54:39.517000             🧑  作者: Mango

使用主键创建表的 SQL 查询

主键唯一标识每个行表。它必须包含唯一且非 NULL 的值。一张表只能有一个主键,主键可以由单个或多个字段组成。当多个字段用作主键时,它们被称为复合键。

要在表中创建主键,我们必须使用关键字; “首要的关键 ( )”

询问:

CREATE TABLE `Employee` ( `Emp_ID` VARCHAR(20) NOT NULL ,`Name` VARCHAR(50) NOT NULL ,  
`Age` INT NOT NULL ,`Phone_No` VARCHAR(10) NOT NULL ,`Address` VARCHAR(100) NOT NULL ,
 PRIMARY KEY (`Emp_ID`));

要查看“Emp_ID”是否为主键,我们使用Describe 命令查看表的结构。



DESCRIBE用于描述某事。由于在数据库中我们有表,这就是为什么我们使用 DESCRIBE 或 DESC(两者都是相同的)命令来描述表的结构。

询问:

DESCRIBE Employee;
Or 
DESC Employee;

输出:

现在,要在表已存在(NO EARLIER PRIMARY KEY DEFINED)时在任何列上创建 PRIMARY KEY 约束,请使用以下 SQL语法:

询问:

ALTER TABLE Employee ADD PRIMARY KEY (Phone_No);

输出:



如果定义了任何较早的主键,则会出现以下错误;

输出:

这个错误是因为;只能存在一个主键。因此,我们必须先删除初始 PRIMARY KEY 以创建新的 PRIMARY KEY。

1. 在多列上创建 PRIMARY KEY:

询问:

CREATE TABLE `Employee` ( `Emp_ID` VARCHAR(20) NOT NULL ,
                      `Name` VARCHAR(50) NOT NULL ,  
                      `Age` INT NOT NULL ,  
                      `Phone_No` VARCHAR(10) NOT NULL ,
                      `Address` VARCHAR(100) NOT NULL ,
                      PRIMARY KEY (`Emp_ID`,`Name`));

输出:



2.当表已经存在时添加多个主键

询问:

ALTER TABLE Employee
 ADD CONSTRAINT PK_CUSTID PRIMARY KEY (Emp_ID, NAME);
 DESC Employee;

输出: