SQL语言创建表时候怎么定义主码和外码

作者&投稿:氐促 (若有异议请与网页底部的电邮联系)
sql,如何用sql语句对一个已经编辑好的表在设置主码和外码?~

sql中的主码和外码,属于索引,SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间
创建索引的语法:
CREATE [UNIQUE][CLUSTERED | NONCLUSTERED] INDEX index_name
ON {table_name | view_name} [WITH [index_property [,....n]]
说明:
UNIQUE: 建立唯一索引。
CLUSTERED: 建立聚集索引。
NONCLUSTERED: 建立非聚集索引。
Index_property: 索引属性。
UNIQUE索引既可以采用聚集索引结构,也可以采用非聚集索引的结构,如果不指明采用的索引结构,则SQL Server系统默认为采用非聚集索引结构。
删除索引语法:
DROP INDEX table_name.index_name[,table_name.index_name]
说明:table_name: 索引所在的表名称。
index_name : 要删除的索引名称。
修改索引的语法:
ALTER INDEX命令在其用来做什么方面多少有些欺骗性。截止到现在,ALTER命令总是与修改对象的定义有关。例如ALTER表以添加或禁用约束和列。ALTER INDEX是不同的-该命令与维护有关,而与结构完全不相干。如果需修改索引的组成,那么只能DROP然后CREATE索引,或者用DROP_EXISTING=ON选项CREATE并使用索引。
ALTER INDEX { | ALL}ON{ REBUILD[[ WITH (  [PAD_INDEX = {ON | OFF}]    | [[,] FILLFACTOR =     | [[,] SORT_IN_TEMPDB = { ON | OFF }]    | [[,] IGNORE_DUP_KEY = { ON | OFF }]    | [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]    | [[,] ONLINE = { ON| OFF }]    | [[,] ALLOW_ROW_LOCKS = { ON | OFF }]    | [[,] ALLOW_PAGE_LOCKS = { ON | OFF }]    | [[,] MAXDOP =   )]  |[ PARTITION =     [ WITH (    [,...N])]]]    | DISABLE    | REORGANIZE    [ PARTITION = ]    [ WITH (LOB_COMPACTION = { ON | OFF })]    | SET ([ ALLOW_ROW_LOCKS = { ON | OFF} ]    | [[,] ALLOW_PAGE_LOCKS = { ON | OFF } ]    | [[,] IGNORE_DUP_KEY = { ON | OFF } ]    | [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]  )}[;]

可以在建表时定义、
create table test1(t1 int primary key,t2 int) ti是主键、主码完整性约束
create table test2(t3 int primary key,t1 int foreign key references test1(t1))
test2中t3为主键、t5为外键引用test1的t1
也可以使用
alter table test2
add constraint fk_s foreign key (t1) referneces test1(t1) 添加引用完整性,fk_s是约束名、自己随便起

如果test1的ti不是主键、可以通过
alter table test1
add constraint fk_t primary key (t1) 添加主码完整性,被指定的列、原表中一定要不能为空

SQL语言创建表时候用Primary Key(属性名)定义主码,用Foreign Key(属性名)定义外码。

主码是一种唯一关键字,表定义的一部分。一个表的主码可以由多个关键字共同组成,并且主码的列不能包含空值。主码是可选的,并且可在 CREATE TABLE语句中用Primary Key(属性名)定义。

将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键,用Foreign Key(属性名)定义。

如:

CREATE TABLE Customer

(SID integer,

CID integer,

Last_Name varchar(30),

First_Name varchar(30),

PRIMARY KEY (SID),Foreign Key(CID 名));

扩展资料:

主码不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。实际上,因为主码除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主码需要更新,则说明主码应对用户无意义的原则被违反了。

主码应当由计算机自动生成。如果由人来对主码的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主码的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。



creat table student
(
sno char(20) not null primary key,
sname......,
.....
)

creat table c
(
cno int not null primary key,
.....
)

creat table sc
(
.......
constraint fk foreign key (sno,cno)
references student(sno)
references c(cno)

)


SQL是什么?
当心,在你创建好一个表之后,你不能向表中添加 BIT型字段。如果你打算在一个表中包含BIT型字段,你必须在创建表时完成。日期型DATETIME VS SMALLDATETIME一个DATETIME型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒。如果你不需要覆盖这么大范围的日期和时间,你...

写出创建如下三张数据表的SQL语句。
在SSMS中,用【创建表】来设计,包括约束;然后保存,选中该新表,右键【编写表脚本】,SQL就有了项目”表结构:项目号:普通编码定长字符类型,长度为10,主键。项目写出创建如下三张表的sQL语句。按照要求用SQL语句创建表格:选课表:表名——SC属性:Sno字符型,最大7个字符表示学生学号。Cno字符型,最...

从零开始学习 GraphQL:入门指南和教程
调试 GraphQL 接口步骤 在开发完成 GraphQL 接口后,使用 API 工具进行调试是必不可少的步骤。通过创建和运行 GraphQL 请求,开发者可以验证接口的正确性和响应的有效性。在 Apifox 等工具中,新建 GraphQL 请求后,开发者需根据接口设计填写对应的查询或 mutation 语句。通过发送请求,即可得到预期的响...

写出创建如下三张数据表的SQL语句
在SSMS中,用【创建表】来设计,包括约束;然后保存,选中该新表,右键【编写表脚本】,SQL就有了项目”表结构:项目号:普通编码定长字符类型,长度为10,主键。项目写出创建如下三张表的sQL语句。按照要求用SQL语句创建表格:选课表:表名——SC属性:Sno字符型,最大7个字符表示学生学号。Cno字符型,最...

Qleraly不只是浏览器书签管理器
功能按钮为了帮助您充分利用Qlearly,以下是一些按钮的功能。在一列中:添加:使用此按钮,您可以手动添加书签。 保存:这将保存您当前打开到此列的所有选项卡。 打开:这将打开该列中保存的所有选项卡。列设置:创建任务:这允许您向任务板添加任务。 创建注意:这允许您向电路板添加注释。

存储过程如何使用
---创建表 create table TESTTABLE ( id1 VARCHAR2(12), name VARCHAR2(32) ) select t.id1,t.name from TESTTABLE t insert into TESTTABLE (ID1, NAME) values ('1', 'zhangsan'); insert into TESTTABLE (ID1, NAME) values ('2', 'lisi'); insert into TESTTABLE (ID1...

sql数据表设置不了备注
如NavicatforSQLite)支持在表格设计时设置备注。您可以使用这些软件打开QL数据库,然后在表格设计中设置备注。2、在代码中添加注释:如果QL数据表无法设置备注,您可以在代码中添加注释来记录表格结构和字段含义。在创建表格和字段时,可以使用注释来描述表格和字段的含义,方便后续的维护和管理。

Hive 安装与基础概念docx?
配置 HDFS 存储位置:指定 Hive 表数据存储在 HDFS 上的位置。配置资源管理器(如 YARN):确保资源管理器与 Hive 集成,以便有效地管理作业。6. 使用 Hive 使用 Hive 进行数据查询和分析需要掌握 HiveQL 查询语言。以下是一些常见的 Hive 操作:创建表:使用 CREATE TABLE 语句定义表结构。加载数据:...

Elasticsearch:对 Java 对象的 ES|QL 查询
首先,我们需要创建索引以正确映射字段。接下来是书籍的 Java 类。我们将使用 Jackson 的 CSV 映射器读取文件,因此我们需要对其进行配置。然后我们将逐行读取 csv 文件,并使用 BulkIngester 优化摄取。索引编制大约需要 15 秒,完成后,图书索引将包含约 80K 文档,可供查询。现在,我们从书籍数据中提取...

java运行hiveQL,如何获取并打印日志信息?
通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ②读取配置文件 当获得了日志记录器之后,第二步将配置Log4j环境,其语法为: BasicConfigurator.configure (): 自动快速地使用缺省...

历下区18256252909: 如何使用SQL语句定义主码完整性约束和引用完整性约束 -
菜航广迪: 可以在建表时定义、 create table test1(t1 int primary key,t2 int) ti是主键、主码完整性约束 create table test2(t3 int primary key,t1 int foreign key references test1(t1)) test2中t3为主键、t5为外键引用test1的t1 也可以使用 alter table test2 add ...

历下区18256252909: sql,如何用sql语句对一个已经编辑好的表在设置主码和外码? -
菜航广迪: --修改主键 ALTER TABLE tablename --修改表 ADD CONSTRAINT tb_PRIMARY PRIMARY KEY CLUSTERED (列名) /*将你要设置为主键约束的列*/ --修改约束ALTER TABLE 销售表 --修改表 ADD CONSTRAINT ck_sl --创建检查约束 CHECK (数量 >= 1 and 数量 <= 10000) --添加约束条件 --修改外键alter table 表名 add constraint 外键名称 foreign key (字段) references 关系表名 (关系表内字段)

历下区18256252909: sql server 2005 中创建表时 如何定义两个主键 -
菜航广迪: 设计表时,右键选择“索引/键”,然后在属性里,选择类型为“主键”,列 里选择你想设为主键的列就行了SQL语句:在创建表(Create table)时加上CONSTRAINT [IX_Tbl] UNIQUE NONCLUSTERED ([Field1] ASC,[Field2] ASC,[Field3] ASC ) ON [PRIMARY] 就可以了

历下区18256252909: 我想问问如何在创建一个新表的同时指定一个主键的SQL语句 -
菜航广迪: 有3种方法:方法1: create table stu (id int primary key,name nvarchar(50),age int)方法2: create table stu (id int ,name nvarchar(50),age int,primary key (id))方法3: create table stu (id int ,name nvarchar(50),age int,constraint pk_name primary key (id))

历下区18256252909: SQL2000语句,创建数据表怎么设置主健和默认值 -
菜航广迪: CREATE TABLE 表名( 字段1 int IDENTITY NOT NULL PRIMARY KEY, --通过PRIMARY KEY设定主键 字段2 varchar(30) NOT NULL, 字段3 smalldatetime NOT NULL DEFAULT GETDATE() --通过DEFAULT value设定默认值);祝你成功!

历下区18256252909: 数据库创建的时候设定两个属性为主码的时候该怎么做 -
菜航广迪: sql 语句实现用 primary key(一个属性,第二个属性) 就ok了 如果用的sqlserver2000 的企业管理器,直接选中一个属性后,按住 Shift键,然后选中另外一个属性,点击右键,设置主键,就ok了

历下区18256252909: SQL语言建立表 设置主码问题 -
菜航广迪: 差别不大.区别在于第一种情况下,数据库用系统名定义一个约束,来作为主键约束的名字.第二种情况下,这个约束的名字,由用户在 SQL 语句中指定了,也就是 C1.对于某些情况下,需要禁用主键约...

历下区18256252909: 怎么为一个创建好的表设置主码和外码约束 ! -
菜航广迪: CREATE TABLE Student ( Sno CHAR(5) NOT NULL UNIQUE ,Sname CHAR(20) UNIQUE ,Ssex CHAR(1) CHECK (Ssex IN ('M','F')), Sage INT, Sdept CHAR(15) ) ;³主码的三种指定方式 1) 用NOT NULL UNIQUE 作为列级约束指定 2...

历下区18256252909: t sql 建好表后如何定义主键 -
菜航广迪: 可用alter table来定义主键.步骤:1、创建测试表:create table test(id int,name varchar(10))2、如要以id为主键,可用如下语句:如原来id允许为空,则多加一步,设置主键列不为空.alter table test alter column id int not null如原来id不允许为空则跳过上一步,直接执行:alter table test add primary key(id)3、再查此表,主键已创建:

历下区18256252909: 通过sql语句创建表 -
菜航广迪: if exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('pro') and o.name = 'FK_PRO_REFERENCE_TEAINF') alter table prodrop constraint FK_PRO_REFERENCE_...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网