使用主键创建表的 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 [Table_Name] ADD PRIMARY KEY (ID);
询问:
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;
输出: