SQL教程:创建表与主键定义

需积分: 20 11 下载量 119 浏览量 更新于2024-08-23 收藏 1.57MB PPT 举报
"创建表时定义主键-结构化语言SQL" 在SQL中,主键是一种特殊的约束,用于唯一标识表中的每一行记录,并确保数据的完整性。在创建表时定义主键是数据库设计的基本步骤之一。以下是关于SQL、主键和创建表时定义主键的详细知识。 1. SQL简介 SQL(Structured Query Language),结构化查询语言,是用于管理和处理关系数据库的标准语言。自1970年代起,随着关系数据库模型的兴起,SQL逐渐发展成为关系数据库管理系统(RDBMS)的核心组成部分。SQL具有多个标准,如ANSI SQL和SQL-92(SQL2),以及后续的SQL3,它们不断扩展和完善了SQL的功能。 2. SQL的组成部分 SQL语言主要包含四个部分: - 数据查询语言(DQL):用于检索数据,如SELECT语句。 - 数据操纵语言(DML):涉及插入、删除和修改数据,如INSERT、DELETE和UPDATE语句。 - 数据定义语言(DDL):用于定义数据库结构,包括创建和修改表、视图、索引等,如CREATE TABLE、ALTER TABLE等。 - 数据控制语言(DCL):涉及权限管理、事务控制等,如GRANT、REVOKE和COMMIT。 3. 主键 主键是表中的一个或一组字段,其值在整个表中是唯一的,并且不允许为空。它确保了数据的唯一性和实体完整性。主键的选择通常基于以下原则: - 唯一性:主键的值必须在表中唯一。 - 稳定性:主键的值一旦被设置,通常不会更改。 - 非空性:主键字段不能包含空值。 4. 创建表时定义主键的语法 在创建表时定义主键,可以使用`PRIMARY KEY`约束。例如,给定的创建表语句: ```sql CREATE TABLE Tb_Class ( ClassId char(8) PRIMARY KEY, ClassName varchar(30) NOT NULL, DeptId char(2) NOT NULL, ClassStuNumber int ); ``` 在这个例子中,`ClassId`列被定义为主键。`char(8)`表示该列可以存储最多8个字符,`PRIMARY KEY`约束确保了`ClassId`的唯一性。其他列如`ClassName`和`DeptId`被定义为`NOT NULL`,意味着这些字段不能为空。 5. 主键类型 主键可以是单个列,也可以是多个列的组合。例如,如果`ClassId`和`DeptId`组合起来可以唯一标识一行,可以这样定义复合主键: ```sql CREATE TABLE Tb_Class ( ClassId char(8), ClassName varchar(30) NOT NULL, DeptId char(2) NOT NULL, ClassStuNumber int, PRIMARY KEY (ClassId, DeptId) ); ``` 6. 主键的重要性 主键对于数据库性能和设计至关重要,因为它有助于快速定位和访问数据。此外,主键还可以用作外键,与其他表建立关联,从而实现数据间的引用完整性。 7. SQLServer中的主键 在SQLServer中,除了使用`CREATE TABLE`语句定义主键外,还可以使用`ALTER TABLE`语句后期添加主键约束,或者使用`INT IDENTITY`作为自动增长的主键。 总结,创建表时定义主键是数据库设计的基础,它确保了数据的唯一性和完整性。通过理解和熟练运用SQL的DDL部分,我们可以有效地构建和管理数据库结构,而主键则是这个结构中的关键元素。