SQL查询与数据定义:计算值与表定义

需积分: 0 0 下载量 135 浏览量 更新于2024-08-23 收藏 365KB PPT 举报
"SQL查询计算值,数据定义与完整性约束" 在SQL中,查询经过计算的值是常见的操作,这通常涉及到表达式的使用。例如,在给定的描述中,查询全体学生的姓名及其出生年份,可以使用SELECT语句结合算术运算来实现。在例子中,`SELECT Sname, 2000-Sage FROM Student;` 这个SQL查询就是选取了学生的姓名(Sname)以及当前年份2000减去他们的年龄(Sage),得到他们出生的年份。输出结果显示了每个学生的姓名和对应的出生年份。 SQL是Structured Query Language的缩写,是一种用于管理关系数据库的标准语言。它具有以下特点: 1. 综合统一:SQL集成了数据定义、查询、操纵和控制等多种功能。 2. 高度非过程化:用户无需指定数据处理的具体步骤,只需描述最终想要的结果。 3. 面向集合的操作方式:SQL操作的对象是数据集合,而不是单个记录。 4. 同一种语法结构提供两种使用方法:既可以交互式使用,也可以嵌入到高级语言中。 5. 语言简洁,易学易用:SQL的语法简单明了,方便用户理解和使用。 SQL主要包含以下几个功能部分,对应不同的动词: - 数据定义:如CREATE, DROP, ALTER,用于创建、删除和修改数据库对象,如表、视图和索引。 - 数据查询:由SELECT语句实现,用于从数据库中检索信息。 - 数据操纵:包括INSERT, UPDATE, DELETE,分别用于插入新记录、更新现有记录和删除记录。 - 数据控制:如GRANT, REVOKE,用于权限管理和访问控制。 在数据定义方面,例如创建一个学生表(Student)的SQL语句如下: ```sql CREATE TABLE Student ( Sno CHAR(10) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(4), Sage SMALLINT, Sdept CHAR(15) ); ``` 这个语句定义了一个名为Student的表,包含了Sno(学号)、Sname(姓名)、Ssex(性别)、Sage(年龄)和Sdept(所在系)五个属性。Sno被定义为主键(Primary key),意味着它是唯一的标识符,不可为空;Sname定义为唯一(UNIQUE),确保每个学生的姓名都是独一无二的。 此外,我们还可以定义带有外键约束的课程表(Course): ```sql CREATE TABLE Course ( Cno CHAR(5) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(5), Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) ); ``` 在这个例子中,Cno是课程号,为主键,Cpno是先修课程号,定义为外键(FOREIGN KEY),它引用了Course表自身的Cno字段,表示先修课程的关系。 完整性约束是确保数据准确性和一致性的关键机制。主键约束(Primary key)确保了某个列的唯一性,而外键约束(FOREIGN KEY)则维护了不同表之间的参照完整性,即确保引用的值在被引用的表中存在。还有其他完整性约束,如非空约束(NOT NULL)、唯一约束(UNIQUE)等,它们在定义表时一同使用,以确保数据的质量。 总结来说,SQL提供了强大的工具来查询和管理数据库,包括计算字段的值、定义数据结构以及设定完整性约束,这些都极大地支持了数据的存储和处理。