数据库基础——(SQLserver)约束

                                                          数据库
定义:一些存储在硬盘上的数据文件

内存:
计算机临时存储的一些数据

.net - SQL Server
PHP - MySql
Java - Oreacl

数据库中的数据类型:
int decimal(长度,小数位数)

bit - 布尔型 1 - true 0 - false

datetime - 时间日期型

nvarchar(长度) 500 max 字符串
varchar(长度)

text - 长文本
-------------------------------------------
关系型数据库
四种约束:

1、主键约束:
设置某一列为主键列
不允许重复,不允许为空,一个表有且只有一个主键列

2、外键约束:(建立表和表之间关系的最重要的约束)
当前表的某一列被其它表的某一个主键列/唯一列所约束
当前表被约束的这一列里面的内容不允许超出约束它的列里面的内容

要作为主约束列来约束其它表的列,这一列必须是 主键列/唯一列/

3、唯一约束:

设置一列为唯一列,让这一列的数据不能重复

4、Check约束:
编写表达式,来约束某一列其中的值的范围
&& - and
|| - or

------------------------------
作业:

1、常用数据库类型

1. IBM 的DB2

作为关系数据库领域的开拓者和领航人,IBM在1997年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。最近推出的DB2 Universal Database 6.1则是通用数据库的典范,是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。

2. Oracle

Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。

3. Informix

Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。

4. Sybase

Sybase公司成立于1984年,公司名称“Sybase”取自“system”和 “database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。

5. SQL Server

1987 年,微软和 IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。

6. PostgreSQL

PostgreSQL 是一种特性非常齐全的自由软件的对象——关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.

7.mySQL

mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的官方网站的网址是: www.mysql.com

2、搜一下关系型数据库的特点

关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库的时候,你能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。
3、四种约束总结

1、CHECK 约束

在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式。例如,可以要求 authors 表的 postcode 列只允许输入六位数字的邮政编码。

CHECK 约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列。

当除去某个表时,对这个表的CHECK 约束也将同时被去除。

CHECK 约束的限制

CHECK 约束不接受计算结果为 FALSE 的值。因为 空值的计算结果为 UNKNOWN,所以如果 赋值表达式中存在这些值,则约束可能会被覆盖而不起作用。例如,假设对 int 列 MyColumn 应用一个约束,指定 MyColumn 只能包含值 10(即 MyColumn = 10)。如果将值 NULL 插入到 MyColumn, 数据库引擎将插入 NULL 且不返回错误。

如果 CHECK 约束检查的条件对于表中的任何行都不是 FALSE,它将返回 TRUE。如果刚创建的表没有任何行,则此表的任何 CHECK 约束都视为有效。这种情况可能会产生意外结果,如下面的示例所示。

CREATE TABLE CheckTbl (col1 int, col2 int);GOCREATE FUNCTION CheckFnctn()RETURNS intAS BEGIN DECLARE @retval int SELECT @retval = COUNT(*) FROM CheckTbl RETURN @retvalEND;GOALTER TABLE CheckTblADD CONSTRAINT chkRowCount CHECK (dbo.CheckFnctn() >= 1 );GO 添加的 CHECK 约束指定表 CheckTbl 必须至少包含一行。但是,因为表中不包含任何可供检查此约束的条件的行,所以 ALTER TABLE 语句将成功。

执行 DELETE 语句时不验证 CHECK 约束。因此,使用特定类型的 CHECK 约束对表执行 DELETE 语句时可能会产生意外结果。例如,假设对表 CheckTbl 执行下列语句。

INSERT INTO CheckTbl VALUES (10, 10)

GO

DELETE CheckTbl WHERE col1 = 10;

即使 CHECK 约束指定表 CheckTbl 必须至少包含 1 行,DELETE 语句也会成功。

2、主键约束

主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符.(非空,惟一)例如:altertablememberaddconstraintPK_member_member_noprimarykeyclustered(member_no)主键列的数据类型不限,但此列必须是唯一并且非空。如该表中已有主键为1000的行,则不能再添加主键为1000。人工或程序不好控制的时候,也可以设置主键列为自动增长列。

主键的作用

主键是一个表中能标识唯一行的标志(也有其他方法表示唯一行,如唯一列)。

主键主要用在查询单调数据,修改单调数据和删除单调数据上。

一般做程序的时候,都将表的主键设置为int型的可自增的列,这样在 编程的时候,很容易区分数据。

3、唯一约束

唯一约束SQL实现

  唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。

  创建唯一约束

  在服务器资源管理器中,选择要将唯一约束添加到的表,再从“数据库”菜单中单击“打开表定义”。

  该表在“表设计器”中打开。

  从“表设计器”菜单中单击“索引/键”。

  在“索引/键”对话框中单击“添加”。

  在网格中单击“类型”,再从属性右侧的下拉列表框中选择“唯一键”。

  当保存表时,将在数据库中创建该唯一约束。

  创建唯一约束可确保在不参与主键的特定列中不输入重复值。当唯一约束和主键都强制唯一性时,如果满足下列条件,则应将唯一约束而不是主键约束附加到表上:

  1.希望在列或列的组合中强制唯一性。可将多个唯一约束附加到表,但是只能将一个主键约束附加到表。

  2.希望在允许空值的列中强制唯一性。可将唯一约束附加到允许空值的列,但是只能将主键约束附加到不允许空值的列。当将唯一约束附加到允许空值的列时,请确保在约束的列中最多有 一行包含空值。

  对字段使用了unique约束,可以当主健在数据库中使用

4、外键

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

外键(Foreign Key)

换而言之,如果关系模式R中的某属性集不是R的 主键,而是另一个关系R1的主键则该属性集是关系模式R的外键,通常在 数据库设计中缩写为FK。

作用

保持 数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。

软道语录

外键就是指另外表中的主键 。

时间: 2024-10-13 23:59:16

数据库基础——(SQLserver)约束的相关文章

SQLSERVER 数据库基础操作

1.修改表中字段的长度,类型为varchar,从30改到50 语句执行(注:当前为30): alter table 表名 alter column 列名 varchar(50) 2.增加字段: alter table 表名 add 字段 varchar(50) SQLSERVER 数据库基础操作,布布扣,bubuko.com

数据库基础与ADO.NET和C#中的异常处理

一.数据库基础 1.启动数据库服务--SQLServer(MSSQLSERVER) 方式1: 开始--程序--Microsoft SQL Server 2008 R2  --配置工具--SQL Server 配置管理器--SQLServer服务 方式2: 进入控制面板--管理工具--服务   --找到SQL Server (MSSQLSERVER) 方式3: 开始--运行--输入 services.msc 回车后    进入到 服务列表中,   找到SQL Server (MSSQLSERVER

剑指Offer——知识点储备-数据库基础

剑指Offer--知识点储备-数据库基础 数据库 事务 事务的四个特性(ACID): ??原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability) - (1)原子性 整个事务中的所要操作要么全部提交成功,要么全部失败回滚. - (2)一致性 保证数据库中的数据操作之前和操作之后的一致性.(比如用户多个账户之间的转账,但是用户的总金额是不变的) - (3)隔离性 隔离性要求一个事务对数据库中数据的修改,在未提交完成前对于其它事务是

数据库基础(面试常见题)

一.数据库基础 1. 数据抽象:物理抽象.概念抽象.视图级抽象,内模式.模式.外模式 2. SQL语言包括数据定义.数据操纵(Data Manipulation),数据控制(Data Control) 数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等 数据操纵:Select ,insert,update,delete, 数据控制:grant,revoke 3. SQL常用命令: CREATE TABLE Student( I

数据库基础复习以及一些面试题

一.数据库基础 1. 数据抽象:物理抽象.概念抽象.视图级抽象,内模式.模式.外模式2. SQL语言包括数据定义.数据操纵(Data Manipulation),数据控制(Data Control)数据定义:Create Table,Alter Table,Drop Table, Craete/DropIndex等数据操纵:Select ,insert,update,delete,数据控制:grant,revoke,commit,rollback3. SQL常用命令:CREATE TABLE S

数据库基础

1.数据库基本概念 (1)为什么使用数据库----数据库是用来储存数据的地方,是数据存储的仓库 (2)数据库的作用 a.数据存储方便 b.数据管理查询方便 2.时下流行的数据库 (1)关系型数据库:Oracle    Oracle公司,产品免费,服务收费 Mysql    开方源代码,网站应用广泛 SQLServer    版本多,使用方便 DB2    硬件要求必须是IBM产品 (2)非关系型数据库(NoSQL) Hadoop Google的BigTable 3.数据库的基本概念 数据库的数据

SQL数据库基础知识-巩固篇<一>

SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 DataBase MS-SQLServer-2000 DataBase SQL的含义:结构化查询语言(Structured Query Language)简称SQL 作用:SQL(Structured Query Language,结构化查询语言)是一种用于操作数据库的语言. 结构化查询语言包含6个部分:一:数

sqlserver 约束

sqlserver 约束 SQLServer - 约束 一.约束的分类 在SQLServer中,有3种不同类型的约束. 1.实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键. 2.域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如CHECK约束. 3.参照完整性约束 如果某列的值必须与其他列的值匹配,那就意味着需要一个参照完整性约束,例如外键. 二.约束命名 在学习约束之前,首先来了解下为约束命名需要注意哪些地方. SQLServer在我们不提供名称时,会

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据