SQL主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说SQL主键在一张表中的记录值是唯一的。
建立SQL主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。
1在数据库提供的GUI环境中建立(以SQL7为例)。
输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
2通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
建表之后更改表结构:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
2.使用SQL语句创建主键约束
使用SQL语句创建主键约束可以在创建表(Create Table)或修改表(Alter Table)时进行 创建。
在修改表中创建主键约束语法:
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
PRIMARY KEY [CLUSTERED | NONCLUSTERED]
{(Column[,…n])}
参数说明:
CONSTRAINT:创建约束的关键字。
constraint_name:创建约束的名称。
PRIMARY KEY:表示所创建约束的类型为主键约束。
CLUSTERED | NONCLUSTERED:是表示为PRIMARY KEY或UNIQUE约束创建聚集或非聚集索引的关键字。PRIMARY KEY约束默认为CLUSTERED,UNIQUE约束默认为 NONCLUSTERED。
下面在指定的数据库中创建一个名为mytable的数据表,并在该数据表中将“userid”列设置为主键。
*** 作步骤:
(1)在 *** 作系统中选择“开始”→“所有程序”→“Microsoft SQL Server”→“查询分析器”命令,打开查询分析器。
(2)在查询分析器的工具栏中选择要连接的数据库。
(3)在代码编辑区中编写如下代码。
SQL语句如下:
USE 销售管理系统 --引入数据库
GO
CREATE TABLE mytable --创建表
(
USERID int CONSTRAINT pk_id PRIMARY KEY, --创建主键约束
USERNAME char (20), --数据列
USERPASS char (20), --数据列
USERPHONE char (20), --数据列
USERADDRESS varchar (50), --数据列
USERLEVEL char(2) --添加列语法:ALTER TABLE 表名
Add 列名 类型
添加主键语法:ALTER TABLE 表名
ADD CONSTRAINT 主键名 PRIMARY KEY(列名)
ALTER TABLE testTable
Add Id int NOT NULL IDENTITY (1, 1)
go
ALTER TABLE testTable
ADD CONSTRAINT PK_Id PRIMARY KEY(Id)
go
也可以添加列时直接指定是主键 :
ALTER TABLE testTable
Add Id int NOT NULL IDENTITY (1, 1) primary key
gocreate
table
(
id
int
identity(1,
1)
not
null
primary
key,
other_column
varchar(50)
)
--
对表设置主键的同时,数据库会自动的创建一个以主键作为名称的唯一索引的。
可以参考下面的方法:
建表的时候,可以直接在列名后面增加主键约束,比如:
IDchar(5)primarykey。
对已经建表的列增加主键约束:
alter table 表名 add constraint 约束名 primary key (ID)
扩展资料:
sql语句
添加主键
Alter table tabname add primary key(col)
删除主键
Alter table tabname drop primary key(col)
创建索引
create [unique] index idxname on tabname(col…)
删除索引
drop index idxname
参考资料来源:百度百科-结构化查询语言
参考资料来源:百度百科-sql语句
通过int或bigint设置。
自增列的类型应为int或bigint型,可以设置起始和每次递增数。
如:createtable[table1]
(
[id][int]identity(1,1)
)
这样每次插入则不需要为主键设置参数,数据库会根据设置的递增条件,自动给出主键值。如以上代码所示,则第一次插入后主键为1,第二次为2,依次递增。
需要注意的是:如果这个表中有10条数据,主键为1-10不间断的数字,那要删除第十条数据,继续插入的话,id则会变成11,而不是10。通俗的说就是主键使用过一次将不会再次使用。
扩展资料很多情况下,在插入数据的时候,不希望自增id按照序号1开始,而是以某种格式的序列开始,比如按照日期序号的形式()这样子的模式开始。
设置了自增id之后,在插入数据的时候不需要向这个自增字段插入数据,这个字段会按默认值1进行插入,同时会保存下一条记录的自增值。
但是如果插入一条带有id值的记录,比如id=201807001,那么我们在下次插入记录的时候,在不强制插入id的情况下,会按201807002往下继续插入。
要实现自定义模式自增,就只需要在创建好表和设置完自增主键字段后,再执行设置自增默认值的 *** 作。
先执行alter table 表名alter column 列名 int not null
再执行
alter table 表名 add constraint PK_主键约束 primary key (lie)
执行第一句前提是表中的lie列没有空值才可以
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)