精华内容
下载资源
问答
  • 模式在SQL Server中称为架构,一个模式下通常包括了多个表、视图和索引等数据库对象。模式授权于用户,用户被授权某个模式,相当于被授权使用数据库中该模式下数据的权利 新建用户时,需要指定登录名,在浏览(…...

    第四周的数据库实验课,动手建立用户与模式,并将学习的表之间的参照关系使用SQL语句应用于表的建立、修改和删除中

    1、模式的定义和授权

    模式在SQL Server中称为架构,一个模式下通常包括了多个表、视图和索引等数据库对象。模式授权于用户,用户被授权某个模式,相当于被授权使用数据库中该模式下数据的权利


    新建用户时,需要指定登录名,在浏览(… )中选择


    建立架构时,可直接指定将该架构授权给哪个用户

    create schema "S-T" authorization wang --为用户 wang 授权新建的架构S-T,批处理语句末尾不能分号
    create table tab1(
    	col1 smallint,
    	col2 int,
    	col3 char(20),
    	col4 numeric(10,3),
    	col5 decimal(5,2)
    ); --为该模式创建一个表tab1,S-T.tab1
    

    如果不先授权架构,直接创建表,默认的是创建最高权限管理员架构的表,即dbo.*
    也可使用SSMS可视化操作,建立架构并选择授权用户


    建立架构时,架构所有者即为授权的用户


    2、模式的删除

    删除分为(级联)cascade删除和(限制)restrict删除,cascade在删除时同时将该模式下已定义的数据库对象一并删除,restrict删除会在该模式存在数据库对象时删除失败

    SQL Server的T-SQL语言不支持使用cascade和restrict删除

    -- drop schema "S-T" cascade; --不支持
    -- drop schema "S-T" restrict; --不支持
    drop schema "S-T"; --表示架构时需要加双引号,感觉相当于restrict删除模式
    

    直接删除内部存在表、视图等数据库对象的架构会失败


    需要在删除前清空架构内的数据库对象

    drop table "S-T".tab1; -- 先删该模式下的表等数据对象
    drop schema "S-T"; -- 再删除该模式
    

    3、表的建立和修改

    直接建立表,默认会在最高权限模式下建立

    建立表时,可在列名后添加该属性列的完整性约束条件(主码、能否为空等),最后添加该表的完整性约束条件(主属性、外码设置等)

     -- foreign key(a) references tab(b) --该表中a属性为外码,对应于tab表的b属性
    
    create table Student(
    	Sno varchar(20) primary key, --主码
    	Sname varchar(20) unique, --值互不相同
    	Ssex varchar(2),
    	Sage smallint,
    	Sdept varchar(20)
    ); --建立学生表
    create table Course(
    	Cno varchar(4) primary key, --主码
    	Cname varchar(40) not null, --不能取空值
    	Cpno varchar(4), --表示先行课程
    	Ccredit smallint,
    	foreign key(Cpno) references Course(Cno) --自身与自身参照,Cpno是外码(确保先行课程是存在的)
    ); --建立课程表
    create table SC(
    	Sno varchar(20),
    	Cno varchar(4),
    	Grade smallint,
    	primary key(Sno,Cno), --主属性包含两个属性
    	foreign key(Sno) references Student(Sno), --Sno是外码,被参照表为Student表,数据类型需相同
    	foreign key(Cno) references Course(Cno) --Cno是外码,被参照表为Course表
    	/*确保选课的学号真实存在,所选的课真实存在*/
    ); --建立选课表
    
    insert into Student values(
    	'20191102041',
    	'王伯成',
    	'男',
    	21,
    	'计算机科学与技术'
    ); --插入一个元组,注意字符串单引号
    

    可为已建立的表添加新属性(列),或修改已有属性的完整性约束

    alter table Student add S_entrance date; --Student表添加新列
    alter table Student alter column Sage int; --Student表改属性数据类型
    alter table Course add unique(Cname); --Course表改Cname属性值互不相同
    

    4、表的删除

    因为参照完整性规则,在删除表时,需要考虑该表与其他表使的参照关系,直接删除带有外码的表会失败


    需要先删除被参照关系的表

    -- drop table SC cascade; --不支持
    -- drop table SC restrict; --不支持
    drop table SC;
    drop table Course;
    drop table Student; --删除表后,视图等相关内容不可用
    

    删除表后,依赖该表的视图等对象仍有物理空间存在,但已不可用



    SQL-Server取消了cascade和restrict的删除,是不是为了安全性?避免误操作
    感觉SSMS的编辑器挺奇特,莫名其妙的红线(偏说刚建的表或什么的不存在),但是可以执行成功

    展开全文
  • 关系型数据库的模式

    千次阅读 2017-12-26 14:25:39
    一、SQL语言支持关系数据库的三级模式结构,分别是模式、外模式和内模式。 二、分别介绍:  1、模式:所有基本表构成了数据库的模式,也叫关系模式。...1、在SQL中,对应的名称:  (1) 关系模式

    一、SQL语言支持关系数据库的三级模式结构,分别是模式、外模式和内模式。

    二、分别介绍:

       1、模式:所有基本表构成了数据库的模式,也叫关系模式。

       2、外模式:视图与部分基本表构成了数据库的外模式。也叫子模式。

       3、内模式:数据库的存储文件与其索引文件构成了关系数据库的内模式,也称为存储模式。

    三、扩展以及详解:

    1、在SQL中,对应的名称:

       (1) 关系模式(或对应模式):称为基本表;

       (2) 存储模式(或对内模式):称为存储文件;

       (3) 子模式(或外模式):称为视图;

       (4) 元组(或记录):称为行;

      (5) 属性(或字段):成为i字段。

    2、需要注意的是:

       (1) SQL中一个关系对应一个表;

       (2) 一个或多个基本表对应一个存储文件,每个表有若干个索引,索引也存放在存储文件中。

       (3) 视图是从一个或多个基本表导出的虚拟表,视图本身不独立存储在数据库中,数据库中至存储视图的定义而不存储对应的数据,视图对应的 数据被存放在基本表中。

       (4) 用户可以用SQL语句对视图和基本表进行查询等操作。

       (5) 存储文件的逻辑结构组成了关系数据库的内模式,所以其物理结构是任意的,对用户是透明的。

    展开全文
  • 程序员通常使用逗号分隔的列表来避免多对多的关系中创建交叉表, 将这种设计方式定义为一种反模式称为“乱穿马路”。 目标:存储多属性值,即多对一 反模式:将多个值以格式化的逗号分隔存储一个字段...

      程序员通常使用逗号分隔的列表来避免在多对多的关系中创建交叉表,

    将这种设计方式定义为一种反模式,称为“乱穿马路”。

     

    目标:  存储多属性值,即多对一

     

    反模式:将多个值以格式化的逗号分隔存储在一个字段中       

       比如:ProductAccount表(Contacts表),产品与账号信息表,一个产品有有多个联系人账号信息。

              1、查询:查询指定账号的产品。不能使用SQL语法中的等号操作符,只能使用like 或者正则表达式,索引将不可用,查询效率降低。

              2、关联查询:查询指定 产品的账号信息。简单的sql语句无法实现,而且无法使用索引,查询效率极低。

              3、聚合查询:聚合查询使用SQL的内置函数,Count()、Sum()、Avg()等。这些函数是针对分组行而设计的,

                  并不是为了逗号分隔的列表。 需要借非正常方法来实现。

              4、修改、删除:修改或者删除一条记录时,必须执行2条SQL语句:第一条查询老的数据列表;第二条存储更新后的列表。

              5、数据的合法性无法验证:用什么来防止用在在ID字段中输入诸如“aaa”这样的非法字段。用户总能找到办法输入他们想输入的东西,

                  然后数据库变的越来越乱,并且数据变的毫无价值。

              6、需要使用合适的分隔符号:如果存储一个字符串列表而不是数字列表,列表中的某些条目可能会包含分隔符。

                  使用逗号作为分隔符可能会有问题,当然可以换另外一种分隔字符,但你无法确保这个新字符永远不出现在条目中。

              7、字段的长度限制会影响分类数量。

     

    如何识别反模式:出现以下现象时,说明已经乱穿马路了。

            1、字段存储的值有数量限制:这个问题在选择Varchar列的最大长度时被提及。

            2、需要使用正则表达式来提取数据,这可能是一种提示,意味着你应该把这些数据分开存储。

            3、要注意保存的内容中不出现特殊定义的分隔符号。比如逗号、(区分全角半角)竖线、横线等。

     

    合理使用反模式:

      如果应用程序接收的源数据是有逗号分隔的格式,而你只需要存储和使用它们并且不对其做任何修改,

          完全没有必要分开其中的值。

          简单理解为:要保存的数据值不会用于查询、或者关联查询,合法性也很容易控制,值也不会太多或太长,才可以用反模式。

     

    解决方案:创建一张交叉表,作为关联使用。

     

     

    SQL反模式,系列学习汇总

    1SQL反模式学习笔记1 开篇

    2、SQL反模式学习笔记2 乱穿马路

    3、SQL反模式学习笔记3 单纯的树

    4、SQL反模式学习笔记4 建立主键规范【需要ID】

    5、SQL反模式学习笔记5 外键约束【不用钥匙的入口】

    6、SQL反模式学习笔记6 支持可变属性【实体-属性-值】 

    7、SQL反模式学习笔记7 多态关联

    8、SQL反模式学习笔记8 多列属性

    9、SQL反模式学习笔记9 元数据分裂

    10、SQL反模式学习笔记10 取整错误

    11、SQL反模式学习笔记11 限定列的有效值

    12、SQL反模式学习笔记12 存储图片或其他多媒体大文件

    13、SQL反模式学习笔记13 使用索引

    14、SQL反模式学习笔记14 关于Null值的使用

    15、SQL反模式学习笔记15 分组

    16、SQL反模式学习笔记16 使用随机数排序

    17、SQL反模式学习笔记17 全文搜索

    18、SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题

    19、SQL反模式学习笔记19 使用*号,隐式的列

    20、SQL反模式学习笔记20 明文密码

    21、SQL反模式学习笔记21 SQL注入

    22、SQL反模式学习笔记22 伪键洁癖,整理数据

     

    转载于:https://www.cnblogs.com/SavionZhang/p/4018375.html

    展开全文
  • SQL数据库

    2019-10-12 11:01:31
    SQL是Structured Query Language(结构话查询...SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同,在SQL中关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文...

    SQL是Structured Query Language(结构话查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言,在使用时只需要发出“做什么”命令,"怎么做"是不用使用者考虑的。

    体系:
    SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同,在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。

    组成:SQL语言的组成:
    1.一个SQL数据库是表(table)的集合,它由一个或多个SQL模式定义;
    2.一个SQL表由行集构成,一行是列的序列(集合),每列对应一个数据项;
    3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图由若干个基本表或其他视图构成的表的定义;
    4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应;
    5.用户可以用SQL语句对视图和基本表进行查询等操作,在用户角度看来,视图和基本表是一样的,没有区别,都是关系(表格);
    6.SQL用户可以是应用程序,也可以是终端用户;

    操作:
    SQL包括了所有对数据库的操作,主要由四个部分组成:
    1.数据定义:这一部分又称“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分;
    2.数据操作:这一部分又称为“SQL DML”,其中包含数值查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作;
    3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性描述,事务控制语句等;
    4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则;

    展开全文
  • 关系的描述称为关系模式。 对关系的描述,一般表示为:关系名(属性1,属性2, 属性3)。师生关系可描述为:师生关系(教师,学生);学生关系可描述为:学生关系(学号,身份证号,姓名,生日,性别,院系编号)。 ...
  • sql

    2020-09-03 15:43:38
    超键:关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合一起也可以作为一个超键。超键包含候选键和主键。 候选键:是最小超键,即没有冗余元素的超键。 主键:...
  • 在SQL中关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。 ...
  • SQL Server】超键,候选键,主键,外键关系说明

    千次阅读 热门讨论 2016-10-20 10:37:41
     超键(Super Key):关系中能为惟一标识元组的属性集,称为关系模式的超键。  候选键(Candidate Key):不含有多余属性的超键称为候选键,也就是候选键若再删除属性就不是键了。  主键(Primary Key):...
  • 范式是符合某一种级别的关系模式的集合。关系数据库的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5...
  • 1、表数据库被存放一种称为模式(schema)的结构,所谓模式,就是数据库用户可以储存表的地方; 2、构成数据库的信息和用来访问这些信息的系统并不是一回事,后者称为数据库管理系统(DBMS),比如Oracle...
  • 在SQL Server专家联盟的董事会服务了5年,为很多SQL Server杂志供过稿,也在讨论SQL Server数据库编程的国际会议上发过言。  Louis Davidson,作为企业数据库开发人员和架构师,他拥有超过15年的工作经验。目前...
  • 在SQL Server专家联盟的董事会服务了5年,为很多SQL Server杂志供过稿,也在讨论SQL Server数据库编程的国际会议上发过言。  Louis Davidson,作为企业数据库开发人员和架构师,他拥有超过15年的工作经验。目前...
  • Oracle,数据对象是以模式(Schema)为单位进行管理和组织的。 模式与用户之间的关系,一个模式只能被一个数据库用户所拥有,并且模式名称和用户的名称相同。 表、索引、索引表、分区表、视图、实体化视图...
  • 范式是符合某一种级别的关系模式的集合。关系数据库的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5...
  • SQL 连接

    2017-11-02 23:43:30
    自然连接 此操作仅仅把R和S模式中有某共同属性,且此属性有相同的值的元组配对。 如果一个元组不能和另外关系中的任何一个元组配对的话,这个元组被称为悬浮元组
  • SQL拓展笔记

    2020-12-05 20:59:18
    SQL拓展笔记⼀、知识点拓展1. 主键 超键 候选键 外键2. 数据库事务的四个特性及含义3 ....超 键:关系中能唯⼀标识元组的属性集称为关系模式的超键。⼀个属性可以为作为⼀个超键,多个属性组合⼀起也可以作为⼀
  • Rails,该模型由称为Active Record的对象关系映射层处理。 该层允许您将数据库行的数据显示为对象,并使用业务逻辑方法修饰这些数据对象。 您可以阅读有关Active Record的更多信息。 控制器和视图由动作包...
  • SQL面试题总结

    2019-09-12 10:59:25
    超键(super key):关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):一个列或多列的组合,其值能唯一地标识表的每一行 外键(foreign ...
  • 11.1 在SQL Server进行分区483 11.1.1 分区视图483 11.1.2 分区表484 11.2 总结496 第12章 图、树、层次结构和递归查询497 12.1 术语497 12.1.1 图497 12.1.2 树498 12.1.3 层次结构498 12.2 应用场景498 12.2.1 ...
  • 这里写目录标题一、绪论1.1数据库的四个基本概念1.2关系模型1.3数据库系统的三级模式结构二、关系数据库2.1关系数据结构形式化定义2.2关系2.3关系模式2.4关系代数三、关系数据库标准语言SQL3.1开始:新建一个表3.2:...
  • 第五章 SQL语言(一)

    2010-12-29 10:54:15
    5.1 SQL简介 结构化查询语言SQL(Structured Query Language)是介乎于关系代数和元组演算之间的一种语言...在SQL中关系模式称为“基本表”(Base Table),存储模式称为“存储文件”(Stored File),子模式...
  • SQL和HQL之间的区别

    千次阅读 2018-10-26 23:52:09
    管理数据包括select(从单个或多个表检索数据),insert(添加一行或多行),update(负责更改表一行或多行的值),delete(负责删除表的一行或多行)和通过查询创建模式。 HQL或Hibernate查询语言将...
  • sql和linux常用命令

    2020-04-23 20:15:38
    sql和linux常用命令 1.描述主键、外键、候选主键、超键是什么 主键 : 数据库表对储存数据对象予以唯一和完整标识的数据列或属性...超键 : 关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为...
  • (一) 解析SparkSQL运行原理之Sql Parse 阶段 上一篇文章介绍Sql Parse阶段时,该阶段主要是使用Antlr4将一条SQL语句解析成语法树,然后使用...论文有介绍到Spark Sql以要计算的关系开头,从SQL解析器返回的抽象
  • SQL外键定义与测试

    2014-04-17 09:27:36
    外键 (Foreign Key)如果公共关键字一个关系是主关键字,那么这个公共关键字...换而言之,如果关系模式R的某属性集不是R的主键,而是另一个关系R1的主键则该属性集是关系模式R的外键,通常数据库设计缩写...
  • SQL Server】 范式

    2012-06-02 19:39:00
    为了提高数据库应用系统的...关系数据库,对关系模式的基本要求是满足1NF,实际应用通常要求满足3NF。 关系模式的规范化过程是通过对关系模式的分解实现的,把低一级的关系模式分解为高一级的关系模式...
  • SQL,范式,事务

    2016-02-15 18:08:00
    数据库范式: 构造数据库必须遵循一定的规则。关系数据库,这种规则就是范式。 范式是符合某一种级别的关系模式的集合。数据库的关系必须满足一定的...任何一个关系数据库,第一范式(1NF)是对关系模式...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 144
精华内容 57
关键字:

关系模式在sql中称为