`
网盛数新
  • 浏览: 10480 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

数据应用达人之SQL基础教程分享4-键的约束

阅读更多

键的约束

5、主键约束

【知识点介绍】

在第一章的数据库里我们就提到过主键,SQL也不例外。
SQL里的主键是表里的一个或多个用于实现唯一性标记的列(字段),主键是在创建表的时候指定的。
以我们创建的Student表为例,我们将ID设置为主键:

CREATE TABLE Student
(
ID INT NOT NULL PRIMARY KEY,
SName VARCHAR(25) NOT NULL,
Sex VARCHAR(10),
Major VARCHAR(20),
Credit INT
);

-- 或者

CREATE TABLE Student
(
ID INT NOT NULL,
SName VARCHAR(25) NOT NULL,
Sex VARCHAR(10),
Major VARCHAR(20),
Credit INT,
PRIMARY KEY (ID)
);

 


之所以那ID做为主键,说明ID可以作为唯一标识,因为每个人的ID都是不同的值。这样可以确保Student表里数据的准确性和一致性,通过ID就可以完整的表达(展示)出每一行的数据。

6、唯一性约束

【知识点介绍】

UNIQUE,即唯一性约束,要求表里的某一列的值在每一行都是唯一的,这一点和主键约束是类似的。
UNIQUE的用法和主键类似,以Student学生表为例:

CREATE TABLE Student
(
ID INT NOT NULL UNIQUE,
SName VARCHAR(25) NOT NULL,
Sex VARCHAR(10),
Major VARCHAR(20),
Credit INT
);

-- 或者

CREATE TABLE Student
(
ID INT NOT NULL,
SName VARCHAR(25) NOT NULL,
Sex VARCHAR(10),
Major VARCHAR(20),
Credit INT,
UNIQUE (ID)
);

 

例子只是为了说明UNIQUE的用法,没有实际意义,供参考而已。

当然,主键约束和唯一性约束直接也有很多不同点:
·唯一性约束的列允许值为NULL,但主键不允许;
·唯一性约束可以设置多个列,但它们不会被当做主键使用;
·一般情况下,一个表里可以有多个唯一性约束,但只有一个主键(当然也可以有多个列或字段来组成一个组合主键);
·主键还有一个关键的作用,就是被外键引用。

所以,我们就来了解下外键吧。

7、外键约束

【知识点介绍】

什么是外键?外键实际上是基于主键才存在的,在表1中存在的主键,在表2中也存在,则它便成了表2的一个外键。

换一种描述,即一个表中的 外键FOREIGN KEY 是指向另一个表中的主键 PRIMARY KEY的,实际上有点子类继承父类的意思。

我们举例说明,假设我们还有一个表FinanceStu(金融专业学生表),它有ID、SName、Class(班级)等列,该表的ID是自身的主键,且又是对Student的外键:

CREATE TABLE FinanceStu
(
ID INT NOT NULL,
SName VARCHAR(25) NOT NULL,
Sex VARCHAR(10),
Class VARCHAR(10),
Credit INT,
PRIMARY KEY (ID),
FOREIGN KEY (ID) REFERENCES Student(ID)
);

 

所以我们可以把Student看成父表,而FinanceStu则是基于Student的子表。如果我们把父表里的ID删除,则子表里的ID也会被删除,这就是之前更新表、删除表里提到的关联和约束了,这也是为什么我们一强调说,在设计表时要考虑周全的一个重要原因。

8、CHECK约束

【知识点介绍】

CHECK约束是用来规定列的取值范围的,它可以规定一个列的取值范围,也可以规定多个列的取值范围:

CHECK (列 规定)
-- 对一个列进行CHECK约束

CONSTRAINT 约定名 CHECK (列1 规定,列2 规定,列3 规定)
-- 对一个或多个列进行CHECK约束

 

例如我们要把Student表中的ID做个CHECK约束,要求它的取值不能低于20160000,Credit不能低于0(但允许是空的),我们可以这样写:

CREATE TABLE Student
(
ID INT NOT NULL,
SName VARCHAR(25) NOT NULL,
Sex VARCHAR(10),
Major VARCHAR(20),
Credit INT,
CONSTRAINT mycheck CHECK (ID > 20160000,Credit > 0)
);

 

有了这样的约束之后,我们在添加修改行数据的时候,就需要遵循这个约束了。

9、小结

【知识点介绍】

我们在这几节介绍了一些操作表的SQL语句,使用CREATE TABLE用来创建新表, ALTER TABLE用来更改表列对象, 而 DROP TABLE可以用来完整地删除一个表。
但我们要注意,这些语句我们必须小心使用,并且在使用时应该做好备份工作。
由于这些语句在不同数据库管理系统(DBMS)中语法都会有所区别,更多详细的信息大家不妨可以去查询相对应的一些DBMS文档。

另外关于键(列)的约束,约束看起来是比较简单的,但它对数据库表的完整性、关联性起着至关重要的作用。

 

下文待续。。。。。。

 

欢迎大家前往访问我们的官网:

http://www.datanew.com/datanew/homepage

http://www.lechuangzhe.com/homepage

分享到:
评论

相关推荐

    SQL基础教程-Mick-示例程序&习题答案

    SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言,广泛应用于数据分析、数据存储和信息检索等场景。本教程“SQL基础教程-Mick-示例程序&习题答案”由Mick编写,旨在为初学者提供一个实用...

    SQL语句基础教程

    SQL语句基础教程 SQL(Structured Query Language)是一种特殊目的语言,用于管理关系数据库管理系统(RDBMS)。SQL语句基础教程旨在帮助新手和需要复习SQL的资料仓储业界老将,学习SQL基础知识和语法。 SQL指令 -...

    SQL基础教程(MICK)源码及课后答案

    在MICK的SQL基础教程中,你将学习到如何在实际场景中应用SQL,如查询分析、数据建模和存储过程。同时,提供的源码实例将帮助你更好地理解各种SQL语句的运行机制。课后答案则能检验你的理解程度,通过解决实际问题...

    sql-map-2.dtd和sql-map-config-2.dtd

    本文将深入探讨与“sql-map-2.dtd”和“sql-map-config-2.dtd”相关的知识点,以及它们在Ibatis中的作用。 Ibatis是一个轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句直接写在配置文件中,通过XML映射...

    [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

    对于SQL Server 2012,T-SQL的掌握至关重要,因为它直接影响到数据的查询效率、数据库设计以及应用程序的性能。 本书的核心内容可能包括以下几个方面: 1. **基础查询**:介绍如何使用SELECT语句进行基本的数据...

    SQL 基础教程 + 目录 + 高清扫描版

    在创建数据库时,SQL允许你定义表结构,包括数据类型(如整数、浮点数、字符串、日期时间等)、主键约束(确保数据唯一性)和外键约束(保持数据引用完整性)。例如,`CREATE TABLE`语句用于创建新的表格,`ALTER ...

    java基础教程----精华版

    这个"java基础教程----精华版"显然是一份精心整理的资料,旨在帮助初学者快速掌握Java编程的基础知识。下面将详细介绍Java语言的核心概念和关键知识点。 1. **Java语法基础**: - **变量**:在Java中,变量是存储...

    SQL Server2000中文版基础教程-源代码

    本教程的源代码部分可能包含示例数据库结构、SQL查询示例、存储过程等,通过实践这些代码,学习者可以更直观地理解和应用上述知识点,从而快速掌握SQL Server 2000的基础操作和管理。在学习过程中,不断实践和解决...

    SQL基础教程(mick).zip

    SQL基础学习代码,MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database ...

    sQL基础教程和应用实例

    这个基础教程和应用实例的资源对初学者来说是非常有价值的,因为它将带你逐步了解SQL的核心概念并提供实践操作的机会。 在SQL中,你将学习到如何创建、更新和查询数据。首先,你需要理解数据库的基本概念,比如表、...

    SQLServer2000基础教程

    ### SQL Server 2000 基础教程知识点概览 #### 一、数据库创建与管理 **1. 创建数据库** - **手动创建**:通过SQL Server 2000企业管理器的手动操作来新建数据库。 - **使用向导**:利用SQL Server 2000提供的...

    maven 下载 sqljdbc4-4.0.jar

    `sqljdbc4-4.0.jar`是Microsoft提供的一个适用于Java的SQL Server JDBC驱动程序,它允许Java应用程序通过JDBC接口与SQL Server进行通信。在本篇中,我们将深入探讨`sqljdbc4-4.0.jar`以及如何在Maven项目中下载和...

    Excel_VBA+ADO+SQL入门教程_-_汇总.pdf

    首先,必须严肃脸说明的是,对于普通 Excel 使用者而言,VBA、SQL 以及以 后提及的 ADO 并不是非学不可的,非学不可的是基础操作、函数、透视表、图表…… 然而大数据时代,对于另外相当一部分表族而言,Excel 用...

    数据库技术与应用--SQL Server 2005教程(詹英主编)

    总的来说,《数据库技术与应用--SQL Server 2005教程》是一本全面涵盖SQL Server 2005基础到高级特性的教程,无论你是初学者还是有经验的数据库管理员,都能从中受益匪浅。通过深入学习,你将能够熟练运用SQL Server...

    SQLSserver2008 上

    第一章 SQL Server基础 ? ? 1、SQL 2008视频教程—SQL数据库连接 ? 2、SQL 2008视频教程-系统数据库 ? 3、SQL 2008视频教程-数据库创建 ? 4、SQL 2008视频教程-数据库创建2 ? 5、SQL 视频教程-对...

    Excel VBA+SQL 数据管理与应用模板开发.rar

    在Excel VBA(Visual Basic for Applications)和SQL(Structured Query Language)的结合使用中,我们可以创建高效、自动化的数据管理与应用模板。这样的模板对于处理大量数据和执行复杂的计算任务非常有用,尤其在...

    SQL Server2005 SP4

    SQL Server 2005 SP4(Service Pack 4)是微软针对其关系型数据库管理系统SQL Server 2005发布的一个重要更新。这个服务包包含了大量的修复程序、安全更新和性能优化,旨在提高SQL Server 2005的稳定性和安全性。SP4...

    数据库原理与应用教程:基于SQL+Server+2005.rar

    本教程涵盖了从数据库基础到SQL Server 2005高级应用的广泛内容,适合初学者和有一定经验的数据库管理员学习,旨在帮助读者全面掌握数据库原理和SQL Server 2005的实际操作。通过学习,你将能够设计、实现、管理并...

Global site tag (gtag.js) - Google Analytics