精华内容
下载资源
问答
  • sql定义主码外码
    千次阅读
    2020-10-11 16:24:17
    基本格式模板:
    CREATE TABLE 表名  (
    	列名 数据类型 列表完整性约束条件,
    	。。。
    	列名 数据类型 列表完整性约束条件,
    	列名 数据类型 列表完整性约束条件
    );
    
    例子:
    CREATE TABLE student(
    	Sno CHAR(9) PRIMARY KEY,   /* PRIMARY KEY主码*/
    	Sname CHAR(20) UNIQUE, /*UNIQUE使Sname取唯一值*/
    	Ssex CHAR(4)NOT NULL, /*NOT NULL使Ssex不能取空值*/
    	FOREIGN KEY(Sbj) REFERENCES Couse(Cname)  /*Sbj是外码,被参照表是Couse*/
    );
    
    更多相关内容
  • 展开全部SQL语言创建表时候用Primary Key(属性名)定义主码,用Foreign Key(属性名)定义外码主码是一种唯一关键字,表定62616964757a686964616fe59b9ee7ad9431333433623064义的一部分。一个表的主码可以由多个...

    展开全部

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

    主码是一种唯一关键字,表定62616964757a686964616fe59b9ee7ad9431333433623064义的一部分。一个表的主码可以由多个关键字共同组成,并且主码的列不能包含空值。主码是可选的,并且可在 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 名));

    4839d34694d11a2cf17ac2ead5920ace.png

    扩展资料:

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

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

    展开全文
  • 数据库之主码外码

    万次阅读 多人点赞 2019-04-24 21:29:34
    想要明白主码外码的概念前,需要先对域和笛卡儿积概念有一个彻底的理解。请阅读的童靴务必耐心~O(∩_∩)O 1.域 定义:域是一组 具有相同数据类型值的 集合。(域就是集合,不过集合里的元素是相同的数据类型) ...

    目录

    1.域

    2.笛卡儿积

    3.关系

    主码

    外码


    想要明白主码和外码的概念前,需要先对域和笛卡儿积概念有一个彻底的理解。请阅读的童靴务必耐心~O(∩_∩)O

    1.域

    定义:域是一组 具有相同数据类型值集合。(域就是集合,不过集合里的元素是相同的数据类型)

    例如,自然数、整数、实数、大于一小于一百的数、{男,女}都可以是域。

    2.笛卡儿积

    笛卡儿积是 域上 的一种集合运算。

    定义:给定一组域D1,D2,D3···,Dn,允许其中某些域是相同的,D1,D2,D3,···,Dn的笛卡儿积定义为

               D1×D2×D3×···×Dn={(d1,d2,d3,···,dn) | di∈Di ,i=1,2,···,n}

    大白话就是从每个域中抽出一个元素放在一起,每一个(d1,d2,d3,···,dn) 称之为一个元组

    这样说还是比较抽象,举一个例子: 

                                      

    3.关系

    定义: D1×D2×D3×···×Dn 的子集叫做在域D1,D2,D3,···,Dn上的 关系,表示为 R(D1,D2,D3,···,Dn)。

                (笛卡儿积中若干个元组的集合就是关系)

    主码

    若关系中的某一个属性组的值能唯一地标识一个元组,而其子集则不能,则称该属性组为候选码(candidate key)

    若一个关系中有多个候选码,则选定其中一个为主码。例如学生的学号就可以作为一个主码,因为它是唯一的。

    一个关系可以没有主码,但是设置一个主码的话对数据库查询效率会高一些。

    主码不一定是只有一个属性,主码可以由一个或者多个属性组成。主码是候选码之一。

    考虑主码的时候考虑的是属性的唯一性,即该属性的值不会重复,如果重复了就无法唯一标识整个元组。

    主码和设置非空的关系是什么?

    主码的要求是:非空、唯一性。

    而设置某个属性:非空仅仅是不允许输入空值,但却可以重复。

     

    外码(外键)

    那么什么是外码呢?

    如果一个关系中的一个属性(该属性不能是候选码)是另外一个关系中的主码则这个属性为外码。

    外码的值要么为空,要么要为其对应的主码中的一个值。

     

    那么外键的作用是什么呢?

    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。

    使两张表形成关联,外键只能引用外表中的列的值或使用空值。

     

    阻止执行(情况一):

    1、从表插入新行,其外键值不是主表的主键值便阻止插入;

    2、从表修改外键值,新值不是主表的主键值便阻止修改;

    3、主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行);

    4、主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。

    级联执行(情况二):

    1、主表删除行,连带从表的相关行一起删除;

    2、主表修改主键值,连带从表相关行的外键值一起修改。

           两种方法提供给用户选择。无论选取哪种方法,从表里都不会有多余行。

           从另一个角度理解,用拒绝同一事物在从表中的标志与主表不一致。

     

    展开全文
  • 表和完整性约束 表的定义以及完整性约束的...主码关键字,PRIMARY KEY__PK),在中选择的一个代表,被定义主码 主码的特点: 1、主码value不得为空 2、构成主码的每个字段不得重复 属性是构成的属性 ...

    表和完整性约束

    • 表的定义以及完整性约束的定义
      • 定义列
      • 定义计算列
      • 定义主关键字(实体完整性约束)
      • 定义外部关键字(参照完整性约束)
        • 删除约束 、更新约束
      • 定义普通约束(用户定义完整性)
      • 表级约束

    主码

    主码(主关键字,PRIMARY KEY__PK),在码中选择的一个代表,被定义为主码
    主码的特点:
    1、主码value不得为空
    2、构成主码的每个字段不得重复
    主属性是构成码的属性
    主码属性是构成主码的属性

    外码

    外码(Foreign key__FK),设有关系表R和W,R中的某个字段FK与W中的主码PK对应,则FK成为W的外码。
    外码定义了两个表之间的约束关系,W为主表(被参照表),R为从表(参照表)。

    范式描述

    1.关键字
    2.语法概念
    3.元语言符号:[] {} |
    4.() 实际符号

    表的定义

    • 定义表时,约束条件(完整性约束)分为两种:
      • 对某个字段的约束,成为字段的完整性约束
      • 对整个表的约束,被称为整个表的完整性约束

    字段的完整性约束也可以定义成表的完整性约束

    • 一个表由若干列构成,在SQL Server中可以
      • 定义实列(简称列,column_definiton)
      • 定义虚列(即计算列,computed_column_definition)

    列的定义

    UNIQUE :唯一
    若一个字段定义了UNIQUE字段,该字段值不允许重复,但可以为多个null

    CHECK
    如:CHECK(grade>=0 AND grade<=100)

    DEFAULT
    设置默认值

    ON DELETE CASCADE / ON UPDATE CASCADE
    当被参照记录即被参照表被删除/修改时级联删除参照表即从表的记录。

    修改表结构

    • 修改表结构
      • 修改列定义
      • 增加新列(含计算列)
      • 增加表级约束
      • 删除列
      • 删除约束

    ALTER TABLE

    • 增加字段
    • 删除字段
    • 修改字段类型
    • 增加约束
    • 删除约束

    课程作业:

    USE 学校管理
    GO
    CREATE SCHEMA 学校
    GO
    CREATE TABLE 学校.院系(
    编号 INT PRIMARY KEY,
    名称 VARCHAR(20) NOT NULL UNIQUE,
    负责人 VARCHAR(10),
    办公地点 VARCHAR(20)
    )
    GO
    CREATE TABLE 学校.学生(
    学号 VARCHAR(8) PRIMARY KEY,
    姓名 VARCHAR(10) NOT NULL,
    院系 INT FOREIGN KEY REFERENCES 学校.院系(编号),
    性别 VARCHAR(2) CHECK (性别 IN ('男' ,'女') ),
    生源 VARCHAR(6),
    状态 VARCHAR(4) CHECK (状态 IN ('正常','留级','休学','退学') )
    )
    GO
    CREATE TABLE 学校.教师(
    教师编号 VARCHAR(8) PRIMARY KEY,
    姓名 VARCHAR(10) NOT NULL,
    性别 VARCHAR(2) CHECK(性别 IN ('男','女')),
    院系 INT FOREIGN KEY REFERENCES 学校.院系(编号),
    专业 VARCHAR(10),
    职称	VARCHAR(6) CHECK(职称 IN('教授','副教授','讲师','助教'))
    )
    GO
    CREATE TABLE 学校.课程(
    课程编号 VARCHAR(8) PRIMARY KEY,
    课程名称 VARCHAR(20) NOT NULL,
    责任教师 VARCHAR(8) FOREIGN KEY REFERENCES 学校.教师(教师编号),
    学时 INT NOT NULL,
    课程性质 VARCHAR(10) CHECK(课程性质 IN ('公共基础','专业基础','专业选修','任意选修'))
    )
    GO
    CREATE TABLE 学校.选课(
    学号 VARCHAR(8) FOREIGN KEY REFERENCES 学校.学生(学号),
    课程编号 VARCHAR(8) FOREIGN KEY REFERENCES 学校.课程(课程编号),
    考试成绩 INT CHECK(考试成绩>=0 AND 考试成绩<=100) DEFAULT NULL
    )
    
    ALTER TABLE 学校.学生
    ADD 平均成绩 INT DEFAULT NULL
    
    ALTER TABLE 学校.课程
    DROP COLUMN 学时
    
    ALTER TABLE 学校.课程
    ADD 学时 INT NOT NULL CHECK(学时%8=0)
    
    ALTER TABLE 学校.院系
    ALTER COLUMN 名称 VARCHAR(30)
    
    ALTER TABLE 学校.教师
    ADD 工资 NUMERIC(7,2)
    
    展开全文
  • 数据库主码外码

    万次阅读 多人点赞 2016-12-28 10:42:18
    数据库主码外码 主码外码是用来实现参照完整性的,外码的数据项需参照主码的数据项来操作。具体实现是在创建数据库时为表间创立关系。如:  三个关系: 学生信息表(学号、姓名、性别、出生年月、籍贯、所属...
  • 展开全部主码包含候选,候选包含。1、含义不同:若关系中的某一属性组的值能唯一地标识一个元e68a84e8a2ad...一个表中如果有一个字段,存储另外一个表的主键,这个字段就是外键,又称外码。2、实际操...
  • 主码=主键=关键字 超键(),候选键 =超键 超键 (唯一的,可多余) 候选键/(唯一的,不可多余) 候选=候选键 属性、非属性 属性=候选键的并 属性是候选所有属性的并集 键...
  • 满意答案qq5751378872014.06.09采纳率:55%等级:10已帮助:1164人外码必须是另一个关系的主码, 或者 有唯一约束的列。否则创建将要失败!-- 创建测试表. 无主键.CREATE TABLE test_main2 (id INT NOT NULL,value ...
  • sql server中的外码和级联

    千次阅读 2016-05-14 09:33:12
    sql server中的外码和级联问题定义了三个表GOODS、PLAZA、SALE,其中SALE表的主码外码参考GOODS表和PLAZA的主码。create table GOODS( GNAME char(20) primary key, GTYPE char(10) );create table PLAZA( ...
  • 可以将理解为键的意思; **1....3.主码=主键:某个能够唯一标识一条记录的最小属性集。(候选中人为挑选) 具有: 唯一性(一个数据表只能有一个主键) 标识性(一个数据表的不同记录值都具...
  • 关于SQL中的外码

    万次阅读 2012-08-31 10:45:01
    2.外码可以是该表的主码,也可以不是。 例子: create database 宿舍管理系统;   use 宿舍管理系统 create table 宿舍 ( Dno varchar(10) primary key, Dphone varchar
  • SQL之表定义

    千次阅读 2018-01-30 20:25:20
    SQL:结构化查询语言 1、用create table命令定义SQL关系:  CREATE TABLE r  (A1 D1,A2 D2,……,An Dn,  ,  ……  
  • PAGE / NUMPAGES 实验一 数据库的定义实验 本实验需要2学时 一实验目的 要求学生熟练掌握和...二实验内容 1 创建数据库和查看数据库属性 2 创建表确定表的主码和约束条件为主码建索引 3 查看和修改表结构 4 熟悉SQL S
  • SQL Server 2012 外键约束(定义外键、删除外键)

    万次阅读 多人点赞 2019-04-21 20:00:26
    文章目录准备知识定义外键使用SSMS工具定义外键使用SQL方式定义外键删除外键使用SSMS工具删除外键方式一:在对象资源管理器中删除主键方式二:在表设计器中删除主键使用SQL方式删除外键 准备知识     外键...
  • 创建表时定义表的主码 创建表后定义或修改表的主码 参照完整性 创建表时定义外码 创建表后定义外码 定义参照完整性的违约处理 用户自定义完整性 NOT NULL/NULL DEFAULT UNIQUE CHECK ...
  • 主键=主码:某个能够唯一标识一条记录的最小属性集(是从候选里人为挑选的一条) 关系数据库依赖于主键—它是数据库物理模式的基石。 唯一性:一个数据表只能有一个主键 标识性:一个数据表的所有记录都具有不同...
  • SQL service数据表 定义约束

    千次阅读 2021-11-26 15:33:37
    主码约束 在SSMS工具中定义主键的方法为: 设计器可视化 sql语句也可以定义主键 在建表的时候 后面写个 primary key(Cno), 或者 Cno char(10) not null primary key, 定义外键约束 右键–关系 在上面添加关系 ...
  • ❤️ 关系数据结构及形式化定义 1.笛卡尔积:当做一个表来说,就是一行是一个元组,一列是一个域,是域的基数的相乘 2.关系:一张规范的二维表 3.域:是一组具有相同的数据类型的值的集合 4.域的基数:用白话说就是...
  • 如何在SQL Server中创建用户名和密码

    千次阅读 热门讨论 2020-02-22 21:02:01
    【前言】 对于数据库来说,数据的安全是非常重要的,但是我们如何确保它的安全性呢?怎么让每个人只能看自己的信息,而不能看别人的信息呢,这...我将数据库中创建用户分为了:设置数据库、创建新的SQL Server登录...
  • 数据库设置外码实例

    万次阅读 2019-06-06 15:53:24
    Cpno char(3) foreign key references Course(Cno), /*这里是自引用主码*/ Ccredit smallint, --foreign key Cpno references Course(Cno) ); create table SC /*建立学生选课表*/ (Sno char(8) , Cno char(3)...
  • MySQL 创建两列(多列)属性的主码

    千次阅读 2019-04-21 16:12:35
    1.SQL语句创建多列属性的主码 PRIMARY KEY (`studnetID`,`classID`)声明studentID属性和classID属性共同组成主键,SQL语句语句如下所示,数据库引擎用的是InnoDB。 -- ---------------------------- -- Table ...
  • sql基本表的定义,删除与修改

    千次阅读 2019-09-23 12:15:48
    sql基本表的定义,删除与修改 一 定义基本表 ... sno char(9) primary key, /*列级完整性约束条件,sno是主码*/ sname char(20) unique, /*sname取唯一值*/ ssex char(2), sage smallint, sdept char(20...
  • //定义SQL Server连接对象 打开数据库 SqlConnection con = new SqlConnection(consqlserver); con.Open(); //定义查询命令:表示对数据库执行一个SQL语句或存储过程 SqlCommand com = new SqlCommand(sql, con); //...
  • 关系数据库——sql基础1定义

    千次阅读 多人点赞 2019-10-21 17:07:09
    关系数据库标准语言SQL 基本概念 SQL语言是一个功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言(Structured Query Language),其功能包括数据定义、数据查询、数据操纵和...
  • 学习笔记——关系数据库标准语言SQL1....其中PRIMARY KEY表示主码、UNIQUE表示取值唯一,它们都是列级完整性约束条件。除此之外还有NOT NULL 表示不为空 CREATE TABLE Student( Sno CHAR(9) PRIMARY KEY,
  • 具体使用方法有两种,一种是在列级定义主码,另一种是在表级定义主码。 【例5.1】将Student表中的Sno属性定义 列级定义主码 create table Student1 (Sno char(9) primary key, Sname char(20) not null,
  • 忘记 SQL Server 管理员密码的处理

    万次阅读 2017-12-23 11:56:23
    1. 使用 SQL Server 服务器计算机本地 Administrators 组的任何成员登录到 SQL Server 服务器 2. 确定忘记管理员密码的 SQL Server 服务 可以在服务(services.msc)里面查看,或者使用下面的 Powershell 命令 Get...
  • SQL练习

    千次阅读 2020-05-12 19:51:32
    设有关系S、SC、C如下: S(sno, sname, age, sex, sdept) ...(要求标明主码外码及成绩的范围) mysql> create table s -> ( -> sno varchar(9) primary key, -> sname varchar(1
  • SQL 数据定义赋值、输出

    千次阅读 2017-10-27 23:21:58
    set 选项 {on | off} --对执行SQL命令时的选项赋值,on表示打开选项功能,off表示关闭选项功能 select的语法如下: select { @local_variable = value | expression } 当expression为字段名时,select语句...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 305,150
精华内容 122,060
关键字:

sql定义主码外码