数据库系统及应用 第5章结构化查询语言SQL 主编:赖申江 本章学习导航 ? 结构化查询语言SQL是一种功能齐 全的数据库语言,包含数据定义功 能、数据查询功能、数据操纵功能 和数据控制功能。其中最主要的功 能就是查询。通过本章学习,学生 应掌握SQL语言的使用方法和技巧, 提高知识综合运用能力,写出高质 量的SQL查询命令。 数据库系统及应用 本章学习要点 ?SQL的数据定义 :熟练运用CREATE TABLE、 ALTER TABLET和DROP TABLE语句完成表的创建、 修改和删除 。 ? SQL的数据操纵 :熟练运用INSERT、DELETE 和UPDATE语句添加、删除和更新记录 。 ? SQL的数据查询 :熟练运用SELECT语句完成简 单查询、嵌套查询、连接查询、分组与计算查询 。 教学课时:4课时 数据库系统及应用 第5章 结构化查询语言SQL ? 5.1 SQL概述 ? 结构化查询语言(Structured Query Language, 简称SQL)是一种介于关系代数和关系演算之间 的语言。它于1974年由Boyce和Chamberlin提 出,由于具有语言简洁、方便实用、功能齐全等 优点,很快得到推广和应用。随着关系数据库的 流行,SQL语言最终发展成为关系数据库的标准 语言和数据库领域中一个主流语言。SQL已经被 ANSI(美国国家标准化组织)确定为数据库系统 的工业标准,它是数据库系统的通用语言。利用 SQL,用户可以用几乎相同的语句在不同的数据 库系统上执行同样的操作。 数据库系统及应用 第5章 结构化查询语言SQL ? 5.1.1 SQL语言的特点 ? SQL语言之所以能够成为国际标准,是因为它是一个综合的、通用的、 功能极强,同时又简单易学的语言。 ? (1)功能强大 ? SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体。 ? (2)高度非过程化 ? 用户只要提出“做什么”,而无需指明“怎么做”,存取路径的选择 以及SQL语言的操作过程由系统自动完成,不但大大减轻了用户负担, 而且有利于提高数据的独立性。 ? (3)简单易用 ? SQL语言十分简洁,实现核心功能,一般只要用到下面9个命令动词, 如表5-1所示。因此容易学习和掌握。 ? (4)有联机交互和嵌入两种使用方式 ? SQL语言支持两种不同的使用方式。一种是联机交互使用,即用户能 在终端直接输入SQL命令对数据库进行操作;另一种是嵌入式,即将 SQL语句嵌入到其他高级语言中,以便程序员在设计时使用。 数据库系统及应用 第5章 结构化查询语言SQL ? 5.1.2 SQL数据定义功能 ? 关系数据库的基本对象是表、视图和索引。因此SQL的数 据定义功能包括定义数据库、表、视图和索引,如表5-2 所示。由于视图是基于表的虚表,索引是依附于表的,因 此SQL通常不提供修改视图和索引的操作。 ? 1.数据库的创建和删除 ? 关系数据库被定义为关系(表)、索引和视图的集合。在 创建表、视图和索引前必须首先创建数据库。 ? 例如,创建学生选课数据库stsc,可以用CREATE DATABASE stsc语句来实现。 数据库系统及应用 第5章 结构化查询语言SQL ? 2.基本表的创建、修改和删除 ? 用CREATE DATABASE建立的数据库是一个空的数据库,接下来应 该在这个数据库中建立表。 ? (1)创建基本表 ? 表的创建既可以通过表设计器或Visual FoxPro的新建表命令实现, 也可以使用SQL中的相应命令创建。 ? 命令格式:CREATE TABLE|DBF <表名> [FREE](<字段名1> <字 段类型> <(宽度[,<小数位数>])>[,<字段名2> <字段类型> <(宽度 [,<小数位数>])>,…]) ? 功能:建立一个由<表名>指定的表结构。 ? 说明: ? ①<表名>:指定要创建的表的名称。 ? ②FREE:指定创建的表是一个自由表,不被添加到数据库中。 ? ③<字段名1> <字段类型> <(宽度[,<小数位数>]):指定相应字段的 名称、类型、宽度及小数位数。 数据库系统及应用 第5章 结构化查询语言SQL ? 例5-1 在学生选课数据库stsc中创建一个学生表 student。 ? CREATE TABLE student (学号 c(8),姓名 c(6), 性别 c(2),院系 c(8),出生日期 D,入学成绩 N(4,1)) ? 功能:用CREATE TABLE语句创建数据库表 student。该表中包含了学号、姓名、性别、院系、 出生日期和入学成绩6个字段。 数据库系统及应用 第5章 结构化查询语言SQL ? (2)修改表结构 ? 修改表结构命令以ALTER TABLE开头,后面根据不同的操作使用不同 的命令动词。 ? ①增加字段 ? 格式:ALTER TABLE <表名> ADD <字段名> <字段类型> <(宽 度)> ? 功能:对指定的表增加一个字段。 ? 例5-2为学生student表增加一个照片字段。 ? ALTER TABLE student ADD 照片 G ? ② 删除字段 ? 格式:ALTER TABLE <表名> DROP <字段名> ? 功能:在指定的表中删除指定字段。 ? 例5-3删除学生student表中的照片字段。 ? ALTER TABLE student DROP 照片 数据库系统及应用 第5章 结构化查询语言SQL ? ③ 修改字段 ? 格式:ALTER TABLE <表名> ALTER <字段名> <字段 类型> <(宽度)> ? 功能:在指定的表中修改指定字段的类型和宽度,不能修 改字段名。 ? 例5-4把学生student表中的姓名字段宽度由6改为10。 ? ALTER TABLE student ALTER 姓名 c(10) ? ④修改字段名 ? 格式:ALTER TAB