当前位置:首页 » 编程语言 » sql设置逻辑主键
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql设置逻辑主键

发布时间: 2022-06-02 18:24:11

㈠ 如何定义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用命令创建主键与外键。

1、为了方便大家理解,使用一个例子来帮助大家理解。意思大概就是通过引用表二中的字段完成对表一字段的约束。方法:

㈢ sql中为一个工作表创建逻辑字段

用外键关联。
用外键关联,主键唯一标识一条记录,比如一个人的身份证。外键则是在其他表中引用另一个表的主键的字段叫外键。如人的银行卡记录可能有多条,每条都会有你的身份证号码、银行帐号。身份证号码就可以作为个人信息表的外键,主键和外键的建立可以通过企业管理器,在表上右键“设计”,摸索一下就知道了。
sql逻辑表、库:可以理解为数据库中的视图,是一张虚拟表。可以映射到一张物理表,也可以由多张物理表组成,这些物理表可以来自于不同的数据源。对于mysql, Hbase和ES,要组成一张逻辑表,只需要他们有相同含义的key即可。这个key在mysql中是主键,Hbase中是生成rowkey用的值,是ES中的key。

㈣ SQL怎样用命令设置主键

可以参考下面的方法:

建表的时候,可以直接在列名后面增加主键约束,比如:

IDchar(5)primarykey。

对已经建表的列增加主键约束:

alter table 表名addconstraint约束名 primary key (ID)

(4)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

㈤ 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中设置主键的作用

联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。
可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了,因为会有重复。那么你可以再使用个订单序列号bill_seq来作为区别。把bill_no和bill_seq设成联合主键。即使bill_no相同,bill_seq不同也是可以的。

㈦ 如何用sql 添加主键

操作步骤如下:

1、首先我们在这个StudentNo列上用你的鼠标右击,然后选择里面的修改,进行点击,弹出

界面。

㈧ 在sql中怎样设置主键语法

创建表

--------------------------------------------------------------------------------

CREATE TABLE TABLE_NAME(
column1 DATATYPE [NOT NULL] [PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...
[constraint <约束名> 约束类型 (要约束的字段名)... ]
);
说明:
TABLE_NAME --表名.
column1,column2 --列的名称 不能取关键字
DATATYPE --是Oracle的数据类型,可以查看附录.
NOT NULL /NULL --不可以/可以允许资料有空的.NULL一般省略.
PRIMARY KEY --是本表的主键。
CONSTRAINT --是对表里的字段添加约束.(约束类型有 Check,Unique,Primary key,not null,Foreign key)。

示例:
CREATE TABLE student(
s_id number(8) PRIMARY KEY,
s_name varchar2(20) NOT NULL,
s_sex varchar2(8) ,
clsid number(8) ,
CONSTRAINT u_1 UNIQUE(s_name),
CONSTRAINT c_1 CHECK (s_sex in ('MALE','FEMALE'))
);

表级约束
如 设置 两列不能同时为空
ALTER TABLE tablename ADD CONSTRAINT check_name CHECK (col1 is not null or col2 is not null) ;

复制表

--------------------------------------------------------------------------------

CREATE TABLE TABLE as <SELECT 语句>

(需注意的是复制表不能复制表的约束);

示例:
CREATE TABLE test AS SELECT * FROM emp;
会将表emp的数据一并复制到test中,但约束没有复制.

如果只复制表的结构不复制表的数据则:
CREATE TABLE test as (SELECT * FROM emp WHERE 1=2);
或者
CREATE TABLE test as (SELECT * FROM emp WHERE FALSE);