精华内容
下载资源
问答
  • 关系表的定义
    千次阅读
    2018-01-30 20:25:20

    SQL:结构化查询语言

    1、create table命令定义SQL关系:

                CREATE  TABLE r

                         A1 D1,A2 D2,……,An Dn,

                          <完整性约束1>,

                           ……

                          <完整性约束k>);

    其中,r是关系名,每个Ai是关系r模式中的一个属性名,Di是属性Ai的域

    2、完整性约束:

                 not null,一个属性上的not null约束表明在该属性上不允许空值

                 primary key (A1,……,An),声明表示属性A1,……,An构成关系的主码;主码属性必须非空且唯一。

                 foreign key(A1,……,Am)references,声明表示关系中任意元组在属性上(A1,……,Am)上的取值必须对应于关系s中某元组的主码属性上的取值

                 check(P),P是谓词条件

    3、基本模式定义

                 drop  table命令,从数据库中删除关于被去掉关系的所有信息

                      DROP TABLE  r;

                 alter  table命令,为已有关系增加属性

                      ALTER  TABLE  r  ADD  A  D;

                      其中,A是待添加属性的名字,D是待添加属性的域。关系中所有元组在新属性上的取值将被设为null

                 alter  table命令,从关系中去掉属性

                       ALTER  TABLE  r  DROP  A

                       但是很多数据库系统不支持次操作

                 还可用alter  table命令,修改关系中的属性,

                              如:ALTER  TABLE  instructor MODIFY  (ID char(10))

                                                           改变ID中的字符串长度

    4、SQL的数据定义语言用于创建具有特定模式的关系。除了声明关系属性的名称和类型之外,SQL还允许声明完整性约束,例如主码约束和外卖约束。


    Ctrl+S  保存

    Ctrl+X 剪切

    Ctrl+z  撤销

    Win+E 打开资源管理器

    Win+D 显示桌面

    Win+R运行

    Win+L 锁屏

    更多相关内容
  • 文章目录关系数据库关系数据库简介关系数据结构及形式化定义关系操作关系模型的完整性关系代数 关系数据库 关系数据库简介 美国????IBM公司的E.F.Codd 1970年提出关系数据模型E.F.Codd, “A Relational Model of ...

    本人就职于国际知名终端厂商,负责modem芯片研发。
    在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。

    关系数据库

    关系数据库简介

    • 美国🗽IBM公司的E.F.Codd
      1970年提出关系数据模型E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”《Communication of the ACM》
      1970之后,提出了关系代数和关系演算的概念
      1972年提出了关系的第一、第二、第三范式的规范化理论
      1974年提出了关系的BC范式
      奠定了关系数据库的理论基础
    • 关系数据库系统是支持关系模型的数据库系统
    • 关系模型由数据结构、关系操作集合和完整性约束三部分组成
    • 单一的数据结构------关系🔗
      但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系
    • 关系操作
      • 关系模型中常用的关系操作包括两类:
        ⭐查询操作:选择、投影、连接、除、并、交、差
        ⭐增加、删除、修改操作
      • 特点:操作的对象和结果均是集合;一次一集合
      • 关系数据语言:
        🔸三类:关系代数语言、关系演算语言和具有关系代数和关系演算双重特点的语言

    关系数据结构及形式化定义

    关系

    • 在关系模式中,数据是以二维表的形式存在的,这个二维表就叫做关系

    • 关系理论是以集合代数理论为基础的,因此我们可以用集合代数给出二维表的“关系”定义

    • 为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念 :
      ⭐域(Domain)

      • 域是一组具有相同数据类型的值的集合,又称为值域(用D表示)
        例如,整数、实数、字符串的集合
      • 域中所包含的值的个数称为域的基数(用m表示)
      • 关系中用域表示属性的取值范围
        例如:
        D1={李力,王平,刘伟} m1=3
        D2={男,女} m2=2
      • 域中的值无排列次序,如D2={男,女}={女,男}

      ⭐笛卡尔积(Cartesian Product)

      • 给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为D1×D2×…×Dn={(d1,d2,…,dn)| di∈Di,i=1,2,…,n}
      • 有定义可以看出,笛卡尔积也是一个集合
        其中:
        元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di);
        每一个元素(d1,d2,…,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的,如:(1,2,3)≠(2,3,1)≠(1,3,2);而集合中的元素是没有排序次序的,如:1,2,3)=(2,3,1)=(1,3,2)
        若Di(i=1,2,…,n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,…,n)表示,则笛卡尔积D1×D2×…×Dn的基数M(即元素(d1,d2,…,dn)的个数)为所有域的基数的累乘之积,即M= ∏ i = 1 n m i \prod_{i=1}^nm_i i=1nmi 例如:
        上述表示教师关系中姓名、性别两个域的笛卡尔积为
        D1×D2={李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}
        其中:
        🔹 李力、王平、刘伟、男、女都是分量
        🔹(李力,男),(李力,女)等是元组
        🔹其基数M=m1×m2=3*2=6
        🔹元组的个数为6
        笛卡尔积可用二维表的形式表示
        例如,上述的6个元组可表示成下表👇
        姓名性别
        李力
        李力
        王平
        王平
        刘伟
        刘伟
        由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。

      ⭐关系(Relation)

      • 笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…,Dn上的n员关系,可用R(D1×D2×…×Dn)表示。
        如上例D1×D2笛卡尔积的子集可以构成教师关系T1,如下表:
        在这里插入图片描述
      • 几点说明
        • R为关系名,n称为关系的目或度(Degree)
          当n=1时,称为单元关系
          当n=2时,称为二元关系
          … …
          当n=n时,称为n元关系
        • 关系是笛卡尔积的有限子集,即是一个二维表,行对应一个元组、列对应一个域、每列的名称称为属性
        • n目关系必有n个属性

      ⭐属性、码的概念

      • 候选键与关键字
        • 能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选键(Candidate Key),也称候选关键字或候选码。如:
          ■ “学生关系”中的学号能唯一的标识每一个学生,则属性学号是学生关系的候选键
          ■ 在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键
        • 如果一个关系中有多个候选键,可以从中选择一个作为查询、插入和删除元组的操作变量,被选用的候选键称为主关系键(Primary Key),或简称为主键、主码、关系键、关系字。
          例如:在学生关系中假设存在身份证号属性,则“学号”和“身份证号”都可以作为学生关系的候选键,如果选定“学号”作为数据操作的依据,则“学号”为主关系键
        • 主关系键是关系模型中的一个重要概念。每一个关系必须选择一个主关系键,选定以后,不能随意改变。每个关系必定有且仅有一个主关系键,因为关系的元组无重复,至少关系的所有属性的组合可作为主关系键,通常用较小的属性组合作为主关系键
      • 主属性与非码属性
        • 主属性(Prime Attribute):包含在任何一个候选码中的各属性称为主属性
        • 非码属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非码属性,或非主属性(Non-key Attribute)
        • 在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”
        • 在最极端的情况下,所有属性的组合是关系的候选码,这时称为全码(All-Key)
          例如:假设有教师课程参考书关系TCB,分别有三个属性 教师号(T)、课程号(C)和参考书(B)。一个教师可以讲授多门课程;一门课程可以为多个教师讲授,它们使用相同的一套参考书;同样每种参考书可以供多门课程使用。在这种情况下,T、C、B三者之间是多对多关系,(T,C,B)三个属性的组合是关系TCB的候选码,称为全码,T,C,B都是主属性
        • 关系的类型
          • 基本关系(通常又称为基本表或基表):实际存在的表,实际存储数据的逻辑表示
          • 查询表:查询结果对应的表
          • 视图表:由基本表或其它视图表导出的表,是虚表,不对应实际存储的数据

      ⭐关系的基本性质

      • 尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别
      • 严格地说,关系是种规范化了的二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系做了种种限制,关系具有如下特性:
        • 关系中不允许出现相同的元组。因为数据上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的
        • 关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。
        • 关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否者将得到不同的关系
        • 同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。即列是同质的
        • 关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域
          例如:有下表中的关系,职业与兼职是两个不同的属性,但它们取自同一个域,职业={教师,公务员,企业主}👇
          在这里插入图片描述
        • 关系中的每一个分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以是空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为“规范化关系”,否则称为“非规范化关系”。
          例如:下表中,籍贯含有省、市/县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市/县两列,将其规范化👇
          在这里插入图片描述

    关系模式

    • 关系数据库中,关系模式是型,关系是值
    • 关系模式是对关系结构的描述,是关系的框架,或称为表框架。它应该:
      • 指出关系由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映像关系
      • 刻画关系必须满足的完整性约束条件
    • 定义:关系的描述称为关系模式(Relation Schema)。一个关系模式应当是一个五元组。它可以形式化地表示为:R(U,D,DOM,F)
      其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合
    • 关系模式通常可以简记为:R(A1,A2,…,An)
      其中R为关系名,A1,A2,…,An为属性名。而域名及属性向域的映像常常直接说明为属性的类型和长度
    • 关系模式是静态的、稳定的;关系是关系模式在某一时刻的状态或内容,动态的、随时间不断变化的

    关系数据库模式

    • 一组关系模式的集合叫做关系数据库模式
    • 关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述,与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的实例,可以看作是关系的值。
      例如,在教学数据库中,共有五个大系,其关系模式分别为:
      🔹学生(学号,姓名,性别,年龄,系号)
      🔹教师(教师号,姓名,性别,年龄,系号)
      🔹课程(课程号,课程名,课时)
      🔹选课(学号,课程号,成绩)
      🔹授课(教师号,课程号)
      🔹系(系号,系名,地址)
      在每个关系中,又有其相应的数据库的实例,如下图是学生关系模式对应的数据库实例👇
      在这里插入图片描述

    关系数据库

    • 关系数据库是“一组随时间变化,具有各种度的规范化关系的集合”
    • 在关系模型中,实体以及实体间的联系都是用关系来表示。在一个给定的现实世界领域中,相应于所有实体及实体之间的联系的关系的集合构成一个关系数据库
    • 由此可见,关系数据库也有的概念,其型就是关系数据库模式,相对固定;其值就是关系数据库内容,代表现实世界中的实体,而实体是随着时间不断变化的,所以其值在不同的时刻会有所变化

    关系数据库——关系操作&&关系模型的完整性
    关系数据库——关系代数


    在这里插入图片描述

    展开全文
  • 关系模式(1)什么是关系模式(2)定义关系模式3.关系模式和关系的对比4.关系数据库 0.思维导图 1. 关系 什么是关系? 单一的数据结构----关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构----二...


    0.思维导图

    在这里插入图片描述

    1. 关系

    什么是关系?

    • 单一的数据结构----关系
      现实世界的实体以及实体间的各种联系均用关系来表示
    • 逻辑结构----二维表
      从用户角度,关系模型中数据的逻辑结构是一张二维表
    • 建立在集合代数的基础上

    (1)域(Domain)

    • 是一组具有相同数据类型的值的集合。例:
      整数
      实数
      介于某个取值范围的整数
      长度指定长度的字符串集合
      {‘男’,‘女’}
      ………………

    (2)笛卡尔积(Cartesian Product)

    • 笛卡尔积
      给定一组域D1,D2,…,Dn,这些域中可以有相同的。
      D1,D2,…,Dn的笛卡尔积为:
      在这里插入图片描述
      所有域的所有取值的一个组合
      不能重复;

    • 元组(Tuple)
      笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple);
      (张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组 ;

    • 分量(Component)
      笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量;
      张清玫、计算机专业、李勇、刘晨等都是分量 ;

    • 基数(Cardinal number)
      可以把基数看做笛卡尔积元素的个数,及元组的个数;
      若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:
      在这里插入图片描述

    • 笛卡尔积的表示方法:
      笛卡尔积可表示为一个二维表;
      表中的每行对应一个元组,表中的每列对应一个;
      在这里插入图片描述

    (3)关系(Relation)

    • 关系
      ·笛卡尔积·D1×D2×…×Dn的子集叫作在D1,D2,…,Dn上的关系,表示为:
      在这里插入图片描述
      R:关系名
      n:关系的(Degree)

    • 元组
      ·关系·中的每个元素是关系中的元组,通常用t表示。

    • 单元关系与二元关系
      当n=1时,称该关系为单元关系(Unary relation)或一元关系 ;
      当n=2时,称该关系为二元关系(Binary relation);

    • ·关系的表示·
      关系也是一个二维表,表的每行对应一个元组,表的每对应一个
      在这里插入图片描述

    • 属性
      关系中不同列可以对应相同的域;
      为了加以区分,必须对每起一个名字,称为属性(Attribute);
      n目关系必有n个属性;

      • 候选码(Candidate key)
        若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
        简单的情况:候选码只包含一个属性;
      • 全码(All-key)
        最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key);
      • 主码
        若一个关系有多个候选码,则选定其中一个为主码(Primary key);
      • 主属性
        候选码的诸属性称为主属性(Prime attribute);
        不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute) ;
        在这里插入图片描述
    • D1,D2,…,Dn的笛卡尔积的某个子集才有实际含义
      ·例:·表2.1 的笛卡尔积没有实际意义
      取出有实际意义的元组来构造关系
      关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)
      假设:导师与专业:1:1, 导师与研究生:1:n
      主码:POSTGRADUATE(假设研究生不会重名)
      SAP关系可以包含三个元组:{ (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨),(刘逸,信息专业,王敏) }

    (4)三类关系

    • 基本关系(基本表或基表)
      实际存在的表,是实际存储数据的逻辑表示
    • 查询表
      查询结果对应的表
    • 视图表
      由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
    • 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表
    • 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
    • 我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
    • 注释:数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。
    • 基本关系(二维表)的性质
      ① 列是同质的(Homogeneous);
      ② 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名;
      ③ 列的顺序无所谓,列的次序可以任意交换;
      ④ 任意两个元组的候选码不能相同;
      ⑤ 行的顺序无所谓,行的次序可以任意交换;
      ⑥ 分量必须取原子值,这是规范条件中最基本的一条; 表2.3  非规范化关系

    2.关系模式

    (1)什么是关系模式

    关系模式(Relation Schema)是
    关系是
    关系模式是对关系描述:

    • 元组集合的结构
      • 属性构成
      • 属性来自的域
      • 属性与域之间的映象关系
    • 元组语义以及完整性约束条件
    • 属性间的数据依赖关系集合

    (2)定义关系模式

    关系模式可以形式化地表示为:

    • R(U,D,DOM,F)
    • R 关系名
    • U 组成该关系的属性名集合
    • D 属性组U中属性所来自的域
    • DOM 属性向域的映象集合
    • F 属性间的数据依赖关系集合

    ·例:·
    导师和研究生出自同一个域——人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域;
    DOM(SUPERVISOR-PERSON)= DOM(POSTGRADUATE-PERSON)=PERSON

    关系模式通常可以简记为
    R (U) 或 R (A1,A2,…,An)
    R: 关系名
    A1,A2,…,An : 属性名
    注:域名及属性向域的映象常常直接说明为属性的类型、长度

    3.关系模式和关系的对比

    • 关系模式
      对关系的描述
      静态的、稳定的
    • 关系
      关系模式在某一时刻的状态或内容
      动态的、随时间不断变化的
      关系模式和关系往往统称为关系

    在数据库学科中可以把关系模式理解为表的结构、属性之间的关系、约束条件,把关系理解为二维表

    4.关系数据库

    • 关系数据库·
      在一个给定的应用领域中,所有·关系的集合·构成一个关系数据库
    • ·关系数据库模式包括
      若干域的定义;
      在这些域上定义的若干关系模式;
    • 关系数据库的··与
      关系数据库的: 关系数据库模式, 对关系数据库的描述。
      关系数据库的: 关系模式在某一时刻对应的关系的集合,简称为关系数据库
    展开全文
  • 关系数据库——sql基础1定义

    千次阅读 多人点赞 2019-10-21 17:07:09
    同时也是一种介于关系代数与关系演算之间的结构化查询语言(Structured Query Language),其功能包括数据定义、数据查询、数据操纵和数据控制。 SQL的特点: 1)综合统一:集数据定义、数据查询、数据操纵和...

    关系数据库标准语言SQL

    基本概念

    1. SQL语言是一个功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言(Structured Query Language),其功能包括数据定义、数据查询、数据操纵和数据控制

    2. SQL的特点:

      1)综合统一:集数据定义、数据查询、数据操纵和数据控制等多种功能于一体。

      2)高度非过程化 :面对象的设计

      3)面向集合的操作方式 :操作对象是集合,并且操作结果也是集合

      4)两种使用方式,统一的语法结构 :既是一种独立的语言,又是一种嵌入式的语言,(嵌入式是指嵌入别的高级语言)。

      5)简洁易学

    数据库的创建与基本概念

    一、创建数据库:

    代码:

    create database Student;        --创建数据库
    use Student;                    --使用数据库
    drop database Student;          --删除数据库

    注意:

    1)两种注释方式:(1)两个减号--,注释单行 (2)/* */注释多行

    2)不能再当前数据库删除当前数据库

    数据类型:

    201902279

    注意:

    1)一个属性采用何种数据类型由两部分决定:(1)该属性的取值范围;(2)该属性做何种运算。

    模式的创建与删除

    模式,一个独立于数据库用户的非重复命名空间,在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。

    代码:

    /** 创建模式zhang,下键表student*/
    create schema zhang
    	create table student
    	(
    		Sno char(9) primary key,
    		Sname varchar(20) unique,
    		Ssex char(4) not  null,
    		Sage smallint,
    		Sdept varchar(5)		
    	);
    
    /** 删除模式中的表*/
    drop table zhang.student;
    
    /** 删除模式*/
    drop schema zhang;    --注意前提该模式下无对象

    注意:

    1)删除模式的时候首先应当将模式下的所有对象删除,才能删除该模式

    2)在删除某个非dbo模式下的表时,需要加模式名

    3)该模式不是三级模式两级映像中的模式,而是相当于一个命名空间(主要可以解决重名的问题)

    4)CASCADE(级联):删除模式的同时把该模式中所有的数据库对象全部删除(SQL Server不支持)

    5)RESTRICT(限制):只有当该模式中没有任何下属的对象时才能执行

    表的定义、删除与修改

    一、创建表(三张):(1)学生表(Student)(2)课程表(Course)(3)学生课程表(SC)

    1)学生表(Student)

     代码:

    /** 未添加数据*/
    create table student
    (
    	Sno char(9) primary key,          --primary key   指示主码
    	Sname varchar(20) unique,         --unique        指示值唯一,
    	Ssex char(4) not  null,           --not null      该值非空
    	Sage smallint,
    	Sdept varchar(5)	
    );

    2)课程表(Course)

    201903132

    代码:

    /** 创建课程表*/
    create table Course
    (
    	Cno char(2) primary key,
    	Cname varchar(10) unique,
    	Cpno char(2),                --Cpno是外码,参照的是自身的Cno
    	Ccredit smallint,
    	foreign key (Cpno) references Course(Cno)     --外码
    );

    3)学生-课程表

     

    代码:

    /** 创建学生-课程表*/
    create table SC
    (
    	Sno char(9),
    	Cno char(2),
    	Grade int,
    	primary key(Sno, Cno),            --多个属性列构成主码,写在最后
    	foreign key(Sno) references student(Sno),    --外码, 每个外码写一行
    	foreign key(Cno) references Course(Cno)
    );

    注意:

    1)创建表的时候需要考虑三个完整性约束条件:实体完整性,参照完整性,用户自定义完整性

    2)两种完整性约束条件的定义方式:

    • 列级完整性约束条件:涉及相应属性列的完整性约束条件,在属性列的后边定义。

    • 表级完整性约束条件:涉及一个或多个属性列的完整性约束条件 ,在将属性列完之后定义。

    3)外码要和所参照的主码类型相同。表级完整性约束的时候属性列需要加括号。

    二、修改表

    增加列

    alter table student add graduation date;
    /*
    1. 指定要修改的表
    2. add关键字
    3. 新增列的属性名
    4. 新增列的数据类型
    */

    删除列

    alter table student drop column graduation;

    修改列的数据类型

    alter table student alter column graduation varchar(20); 

    增加约束

    /*这种增加约束的方法不容易从左边的框框(键)中看出来*/
    alter table student add unique(graduation);
    
    /*给增加的约束自定义了一个别名,容易区分*/
    alter table student add constraint S_un unique(graduation);
    
    /*注意*/
    --1. 不可以使用增加not null约束,想要添加只可以在设计中将勾去掉
    --虽然以下的方式看似添加了not null约束,但是不起任何作用
    alter table student add constraint cc check(sname is not null);
    
    --2. 给某一属性列添加主键,需要保证该属性列不允许为空,刚建的新表在未加约束的情况下,默认属性列允许为空值
    alter  table  student  add primary key(sno,cno);
    
    --3. 添加外键,需要保证外码和被参照表的主属性的数据类型保持一致
    alter  table  student  add foreign key (sno) references student(sno);

    删除约束

    /*通过指定的约束名字删除指定的约束*/
    alter table student drop constraint S_un;
    
    /*在左边单机右键删除*/

    三、删除表

    /*删除表的时候必须先将参照表干掉,再删除被参照表*/
    drop table student;

    索引的建立与删除

    建立索引的目的是加快数据查询的速度。DBA或者表的属主可以根据需要建立表的索引;但是有些DBMS可以自动建立以下索引,1)PRIMARY KEY索引(聚簇索引)2)UNIQUE索引(唯一性索引)

    一、创建索引

    /*创建唯一性索引*/
    /*
     * stu为索引名字,创建索引必须要有一个索引名
     * 列名后面紧跟排序类型,ASC为升序,DESC为降序,默认为ASC,可以有多个列,用逗号隔开。
     * 对于已经包含重复值的属性列不可以增加唯一性索引
    */
    create unique index S_nn on student(graduation asc);
    
    /*创建聚簇索引(聚集)*/
    Create  clustered index stu on student(sage desc);
    /*
     * 聚簇索引的关键字为clustered,不是书上有误,而是sqlserver是这样
     * 同样,列名后面紧跟排序类型,可以有多个列,用逗号隔开。
     * 聚簇索引严格按照物理存储位置来排序。
     * 不可以在有主键的表中创建索引
     * 一个表只能创建一个聚簇索引
    */

    二、删除索引

    /*注意:删除索引必须为表名+索引名*/
    drop  index  student.stu

     

    展开全文
  • 27.一对一,一对多,多对多关系表的各种骚操作

    万次阅读 多人点赞 2021-08-31 10:22:33
    1.关系表的数据操作 (1)一对多表关系的数据的添加修改 ①学院信息的插入: 常规方法是写个视图函数,在视图函数里添加插入数据的逻辑代码。但是这样的话——你得访问此视图函数对应的接口才能添加成功!岂不...
  • 3.1 表定义 3.1.1 SQL语言概览 简介: SQL(Structured Query Language,结构化查询语言),SQL最早的版本 是由IBM开发的,它最初叫做Sequel(Structured English QUEry Language),在20世纪70年代早期作为System...
  • 1.对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义级约束条件,如1.1单属性列级定义主键CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, /*列级定义主键*/ Sname CHAR(20) )1.2单属性...
  • 关系模式的形式化定义

    千次阅读 2019-12-16 23:21:24
    关系模式由五部分组成,即它是一个五元组: R:关系名 U:组成该关系的属性名集合 D:属性组U中属性所来自的域 DOM:属性向域的映象集合 F:属性间数据的依赖关系集合 ...
  • 关系模型的概念,定义

    万次阅读 多人点赞 2018-05-02 20:37:51
    关系数据模型: (1)关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。(2)关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象个操作的结果都是关系,所以其数据结构简单、...
  • 26.Django实现表关系(一对多,一对一,多对多))

    千次阅读 多人点赞 2021-08-30 17:06:26
    表关系的实现: 实践: (1)模型的定义(models.py文件): class Department(models.Model): """ 学院 """ d_id = models.AutoField(primary_key=True) d_name = models.CharField(max_length=30) def ...
  • 知识图谱中的实体及关系定义二>

    千次阅读 2020-08-09 18:06:05
    在前文中我们将知识图谱中实体和关系的定义分为自顶向下和自底向上两种策略,在本文中我们继续深入研究知识图谱中的实体和关系定义相关内容。 1.实体种类 实体的定义通常根据领域词典、词表来进行规范,之后根据目标...
  • 顺序表定义:顺序是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即...
  • 数据库基本定义、删除及修改

    千次阅读 2019-05-21 15:30:50
    1.定义基本 创建了一个模式即建立了一个数据库的命名空间,一个框架。SQL语言使用create table语句定义基本,格式如下: create table <表名>(<列名><数据类型>[列级完整性约束条件] [,&...
  • 要求:请安装Kingbase数据库软件,在数据库软件中创建一个自己名字的模式,在该模式下创建学生关系数据、课程、选课表。 插入一些数据,尝试查询、更新、删除 二、相关原理与知识 (完成实验所用到的相关原理...
  • 关系数据结构及形式化定义

    千次阅读 2019-03-02 10:50:57
    关系 基础概念 域 一组具有相同数据类型的值的集合; 笛卡尔积 例子 关系的组成 关系 $D_1\times D_2\times D_3\times...\times D_n$的子集叫做域在$D_1,D_2, D_3,...,D_n$上的关系,表示为: R(D_1,D_2,D_3,.....
  • 顺序的类型定义以及基本操作函数

    万次阅读 多人点赞 2018-07-22 15:16:10
    本篇文章是我的处女作,主要是我学习清华大学出版社《数据结构》课程顺序一节的心得体会,主要内容为对于书本上伪代码的详细实现的补充以及学习,如果有任何错误或可以改进之处欢迎各位巨巨指出 正文 顺序...
  • 表关系(一对一,一对多,多对多)

    千次阅读 2018-03-03 21:04:31
    可以在数据库图表中的之间创建关系,以显示一个中的列与另一个中的列是如何相链接的。在一个关系型数据库中,利用关系可以避免多余的数据。例如,如果设计一个可以跟踪图书信息的数据库,您需要创建一个名为 ...
  • ER图和关系模型到MySQL数据库

    千次阅读 2020-03-02 21:01:12
    本篇主要介绍了MySQL数据库从ER图到关系模型,再到数据库的创建过程及其结构的修改。通过本篇的学习,可以掌握以下内容: ● 应用ER图和关系模型创建数据库 ● 数据库结构的修改 1、mooc数据库的ER...
  • 模拟引脚 : ~D1 ~D2 ~D3 ~D4 ~D5 ~D6 ~D7
  • 定义:若属性A是基本关系R的主属性,则属性A不能取空值(空值就是“不知道”或“不存在”或“无意义”的值) 例: 选修(学号,课程号,成绩) “学号、课程号”为主码 “学号”和“课程号”两个属性都不能...
  • 摘自西工大老师课堂PPT BV1oT4y1774h ΓL=Γ(0)\Gamma_L=\Gamma(0)ΓL​=Γ(0) 是负载端的反射...传输线上任意一点的输入阻抗与该点反射系数有一一对应的关系 ΓL\Gamma_LΓL​ 是传输线终端的反射系数 ...
  • PCIE总线-PCI、PCIE关系及信号定义

    万次阅读 2018-07-10 09:34:55
    PCIE x16较常用,从PCI、PCIE总线速率对比中可知,PCIE xN传输速率成倍增加是由于差分对数目在成对增加(Lane的数目), 一般各接口用途为: 1)x1/x2主要是用来扩展声卡、网卡等低速设备,用于淘汰 PCI插槽 2...
  • 数据定义

    千次阅读 2018-04-06 23:27:18
    关系数据库系统支持三级模式结构,其模式、外模式和内模式的基本对象有模式、、视图和索引等。SQL数据定义功能包括模式的定义表定义、视图定义和索引的定义。 SQL的数据定义语句如下 一、模式的定义和...
  • 数据库定义参照完整性

    千次阅读 2020-05-18 11:03:18
    关系模型的参照完整性在CREATE TABLE 中用FOREIGN KEY 短语定义哪些列为外码,用REFERENCES短语指定这些外码参照哪些的主码。 例如:关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码,Sno...
  • 文章目录0.思维导图1.SQL概述(1)什么是...SQL(Structured Query Language)结构化查询语言,是关系数据库的标准语言 SQL是一个通用的、功能极强的关系数据库语言 (2)SQL 的产生与发展 (3)SQL的特点 ()4 ...
  • 关系模型中设计时的约束条件

    千次阅读 2019-02-26 15:27:19
    关系模型中设计时的约束条件 一、介绍 关系模型是目前最重要的也是应用最广泛的数据模型。简而言之,关系就是一张二维,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系 设计...
  • Sequelize模型之间存在关联关系,这些关系代表了数据库中对应之间的主/外键关系。基于模型关系可以实现关联之间的连接查询、更新、删除等操作。本文将通过一个示例,介绍模型的定义,创建模型关联关系,模型与...
  • 独立正交不相关定义关系

    万次阅读 2018-06-01 16:00:40
    一、“独立”、“不相关”和“正交”的定义假设X为一个随机过程,则在t1和t2时刻的随机变量的相关定义如下(两个随机过程一样):(1)定义Rx(t1,t2)=E{X(t1)X(t2)}为相关函数,若R=0,称正交(注意,相关...
  • 一、一对一关系定义:有两个,在第一个中的某一行只与第二个中的一行相关,同时第二个中的某一行,也只与第一个中的一行相关,我们称这两个为一对一关系。例如:第一张表:ID姓名国籍贡献1001王大锤...
  • Matlab定义变量的操作步骤

    千次阅读 2021-04-20 03:43:53
    当前不少网友表示自己才接触Matlab这款应用,还不晓得如何定义变量的操作,接下来就为你们分享Matlab定义变量的操作步骤,大家都来一起学习吧。Matlab定义变量的操作步骤情况一:符号变量一定要定义定义之后才能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,488,503
精华内容 995,401
关键字:

关系表的定义