sql建表主键
㈠ 如何定义sql主键
在SQL数据库中,如何定义SQL主键是经常要遇到的问题,下面将为您介绍两种定义SQL主键的方法,供您参考,希望对那您有所帮助。
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) --
㈡ sql用命令创建主键与外键,怎么操作
用命令创建主键与外键方法如下:
㈢ sql用命令创建主键与外键。
1、为了方便大家理解,使用一个例子来帮助大家理解。意思大概就是通过引用表二中的字段完成对表一字段的约束。方法:
㈣ sql怎么设置主键
1.主键语法
①创建时:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno) );
②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
前提是原先没有设置主键。
2.外键语法
①创建时:create table sc (
studentno int,
courseid int,
score int,
foreign key (courseid) );
②修改时:
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用组合主键
如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式
①创建时:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
②修改时:alter table tb_name add primary key (字段1,字段2,字段3);
前提是原来表中没有设置主键,若原先已有主键则会报错。
㈤ 怎样用SQL语句为表创建主键并自动创建索引
create
table
(
id
int
identity(1,
1)
not
null
primary
key,
other_column
varchar(50)
)
--
对表设置主键的同时,数据库会自动的创建一个以主键作为名称的唯一索引的。
㈥ sql创建表主键
--offices表创建主键
IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID('PK_offices') AND OBJECTPROPERTY(id, 'IsPrimaryKey') = 1) BEGIN
ALTER TABLE offices WITH NOCHECK ADD CONSTRAINT PK_offices PRIMARY KEY CLUSTERED (officeCode) ON [PRIMARY]
END
GO
--employees表创建主键
IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID('PK_employees') AND OBJECTPROPERTY(id, 'IsPrimaryKey') = 1) BEGIN
ALTER TABLE employees WITH NOCHECK ADD CONSTRAINT PK_employees PRIMARY KEY CLUSTERED (empNum) ON [PRIMARY]
END
GO
㈦ sql怎么创建表
1.1 创建表方法
创建表是指在已存在的数据库中建立新表。这是建立数据库最重要的一步,是进行其他操作的基础。
1.1.1 创建表的语法形式
CREATE TABLE 表名 (
属性名 数据类型 [ 完整性约束条件 ],
属性名 数据类型 [ 完整性约束条件 ],
......
属性名 数据类型 [ 完整性约束条件 ],
)[ 表类型 ] [ 表字符集 ];
SQL 是不区分大小写。下面将会具体介绍SQL,这种创建表是通过什么方式起来的效果怎么样?
命名规范:
1. 命名富有意义 ( 英文或英文组合 )
2. 自定义名称使用小写
3. MySQL 语句使用大写
CREATE TABLE IF NOT EXISTS data_house(
id INT,
name VARCHAR(20);
gender BOOLEAN,
) Engine = MyISAM;
上面 SQL 语句的含义是:如果不存在 text1 表,就创建它,包含 3 个字段 id 、 name 和 gender ,它们的类型分别是整形、字符型和布尔型,创建的表的类型是 MyISAM 。
完整性约束条件表
PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值自动增加,这是 MySQL 的 SQL 语句的特色 (null,0)
DEFAULT 标识该属性设置默认值 (not null defualt 0,not null default 0.0,not null default '')
1.1.2 设置表的主键
主键是表的一个特殊字段。该字段能惟一地标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证是用来标明人的身份,每个人都具有惟一的身份证号。设置表的主键指在创建表时设置表的某个字段为该表的主键。
主键的主要目的是帮组 MySQL 以最快的速度查找到表中的某一条信息。
主键必须满足的条件:
1. 主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;
2. 主键的值是非空值;
3. 主键可以是单一的字段,也可以是多个字段组合。
1. 单字段的主键:
CREATE TABLE student1 (
stu_id INT PRIMARY KEY ,
stu_name VARCHAR(20) NOT NULL,
stu_gender BOOLEAN
) Engine = InnoDB;
2. 多字段主键 :
CREATE TABLE student2 (
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY( stu_id, course_id )
)Engine = InnoDB;
1.1.3 设置表的外键
外键是表的一个特殊字段。如果字段 sno 是一个表 A 的属性,且依赖于表 B 的主键。那么,称表 B 为父表,表 A 为子表, sno 为表 A 的外键。通过 sno 字段将父表 B 和子表 A 建立关联关系。设置表的外键指在创建表设置某个字段为外键。
设置外键的原则:必须依赖于数据库中已存在的父表的主键;外键可以为空值。
外键的作用 : 是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。例如, stu_id 就 student 表的主键, stu_id 是 grade 表的外键。当 stu_id 为 '123' 同学退学了,需要从 student 表中删除该学生的信息。那么, grade 表中 stu_id 为 '123' 的所有信息也应该同时删除。
CONSTRAINT 外键别名 FOREIGN KEY ( 属性 1.1, 属性 1.2... 属性 1.n);
REFERENCES 表名 ( 属性 2.1, 属性 2.2,..., 属性 2.n)
CREATE TABLE student3 (
id INT PRIMARY KEY,
stu_id INT,
course_id INT,
# 设置外键
CONSTRAINT C_fk FOREIGN KEY (stu_id, course_id) REFERENCES student2(stu_id, course_id)
) Engine = InnoDB;
1.1.4 设置表的非空约束
非空性是指字段的值不能为空值 (NULL) 。非空约束将保证所有记录中该字段都有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错。例如,在 id 字段加上非空约束, id 字段的值就不能为空。如果插入记录的 id 字段的值为空,该记录将不能插入。设置表的非空约束是指在创建表时为表的某些特殊字段加上 NOT NULL 约束条件。设置非空约束的基本语法规则如下:
属性名 数据类型 NOT NULL
㈧ sql数据库中怎么设置多个列同时作为表的主键
可以用如下方法进行设置:
第一,如果是用SQL语句建表,如下:(假设要让a和c组合作为主码)
create table t1(
a int,
b varchar(20),
c int,
primary key(a,c)
)
第二,如果用图形化界面做,按住ctrl键,然后选择a和c两个列,接着右键菜单选择“设置为主键”即可。
一个表中最多只能有一个主键,也可以没有。一个主键既可以是单一的字段构成,也可以是多个字段联合构成,如果是单一字段,只需在该字段后面标记primary key即可,如果是多个字段联合构成,则需要采用最开始介绍的那种方式设置。
㈨ SQL怎样用命令设置主键
可以参考下面的方法:
建表的时候,可以直接在列名后面增加主键约束,比如:
IDchar(5)primarykey。
对已经建表的列增加主键约束:
alter table 表名addconstraint约束名 primary key (ID)
(9)sql建表主键扩展阅读:
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
㈩ t sql 建好表后如何定义主键
tsql建好表后如何定义主键的方法。
如下参考:
1、打开管理工具,SQLServerManagementStudio连接到数据库。