SQL主键

时间:2020-02-23 14:32:31  来源:igfitidea点击:

在充满数据的世界中,获取重复数据非常容易。
任何数据库表设计人员的噩梦都是创建一个可能重复插入数据的表。
为了克服重复行的问题,SQL主键用于唯一地标识每一行。

SQL主键

主键是可以唯一标识一行的一列或者一组列。
创建表时,应指定主键。
同样,主键创建带有下面提到的一组规则。

  • 主键不能为空。

  • 主键必须始终包含唯一值。
    如果是多个列的组合,则该组合必须是唯一的。

  • 一个表只能有一个主键。

现在让我们尝试了解以下提到的数据库的主键创建。

  • 的MySQL
  • PostgreSQL的
  • SQL服务器

MySQL主键

语法:

CREATE TABLE <table_name>(<column_name1> <data_type> NOT NULL,
<column_name2> <data_type> NOT NULL,
<column_name3> <data_type> NOT NULL,
PRIMARY KEY (column_name1));

在上面的语法中,PRIMARY KEY关键字用于指定该列将用作表的主键。

让我们创建一个客户表来更好地理解这一点。

CREATE TABLE customer
(cust_id varchar(8) NOT NULL UNIQUE, 
cust_name varchar(50) NOT NULL, 
state varchar(25), 
country varchar(25),
PRIMARY KEY (cust_id) );

在MySQL工作台上执行以上查询。

"唯一"列的值为" YES",表示该列将接受唯一值。
另外,键列的行值为" PRIMARY",而列的行值指定为主键的列。

PostgreSQL主键

语法:

CREATE TABLE <table_name>(<column_name1> <data_type> NOT NULL,
<column_name2> <data_type> NOT NULL,
<column_name3> <data_type> NOT NULL,
PRIMARY KEY (column_name(n)));

在上面的语法中,PRIMARY KEY关键字用于指定将某个列或者一组列用作表的主键。

让我们创建一个Employee表以更好地理解这一点。

CREATE TABLE Employee(
employee_no integer PRIMARY KEY,
employee_name character(50),
employee_city character(35),
employee_phn numeric);

在上表中,我们仅使用一列" employee_no"创建主键。
以下是用于创建具有多列的表的查询。

CREATE TABLE Employee(
employee_no integer,
employee_name character(50),
employee_city character(35),
employee_phn numeric,PRIMARY KEY (employee_no,employee_phn));

在上表中,我们使用两列" employee_no和employee_phn"创建主键。

SQL Server主键

语法:

CREATE TABLE <table_name>(<column_name1> <data_type> NOT NULL,
<column_name2> <data_type> NOT NULL,
<column_name3> <data_type> NOT NULL,
PRIMARY KEY (column_name(n)));

在上面的语法中,PRIMARY KEY关键字用于指定将某个列或者一组列用作表的主键。

让我们创建一个Employee表以更好地理解这一点。

CREATE TABLE Employee(
employee_no integer PRIMARY KEY,
employee_name character(50),
employee_city character(35),
employee_phn numeric);