文档介绍:第7章关系数据库标准语言——SQL
本章要点:
      SQL语言的特点
      SQL语言的组成
      SQL语言的数据定义语句的使用
      SQL语言的数据查询语句的使用
      SQL语言的数据操纵语句的使用
      SQL语言的数据控制语句的使用
SQL语言概述
SQL语言的由来
SQL即结构化查询语言,是Structured Query Language的缩写,是介于关系代数和关系演算之间的语言。它于1973年在由Boyce和Chambertin提出来的SQUARE(Specifying As Relation Expressions)的基础上修改而成的,具有功能丰富、使用方便灵活、语言简洁易用等特点。
SQL语言的特点
1. 一体化特点
2. 高度的非过程化
SQL语言与其他语言一个重要的区别是,SQL是非过程化的语言,用SQL语言进行数据操作,用户只需指出“做什么”,而不用说明“怎样做”,存取路径的选择和SQL语句的操作过程由系统自动完成,从而大大减轻了用户的负担。
3. 语言简洁易学
4. 可用于客户–­服务器结构
客户–服务器是计算机应用的发展趋势,SQL可用于建立客户–服务器结构的数据库系统。
SQL语言的语句
SQL的数据定义功能
基本表的建立、修改和删除
1. 建立表[格式]:
CREATE TABLE 表名
{ 字段名1 数据类型说明,
[字段名2 数据类型说明[,……,]]
[Primary Key(字段名)]
}
【例7-1】在数据库别名“JWGL”下,创建以下4个表。
学生(学号 CHAR(6),姓名 CHAR(8),年级 CHAR(2),专业CHAR(10))
课程(课号CHAR(2),课名CHAR(20),开课教师 CHAR(8),总学时 INTEGER,学分INTEGER)
必修课(课号CHAR(2),必修专业 CHAR(10))
选课成绩(学号 CHAR(6),课号 CHAR(2),成绩 INTEGER)
解:创建表的语句分别如下。
CREATE TABLE 学生(学号 CHAR(6),姓名 CHAR(8),年级 CHAR(2),专业 CHAR(10),primary key(学号))
CREATE TABLE 课程(课号 CHAR(2),课名 CHAR(20),开课教师 CHAR(8),总学时 INTEGER,学分 INTEGER PRIMARY KEY(课号))
CREATE TABLE 必修课(课号 CHAR(2),必修专业 CHAR(10))
CREATE TABLE 必修课成绩(学号 CHAR(6),课号 CHAR(2),成绩 INTEGER,primary key(学号,课号))
2. 修改表结构
(1)为基本表添加字段
[格式]:
ALTER TABLE 表名 ADD COLUMN 字段名类型[长度] 【例7-2】在已定义的课程表中增加开课学期字段。
解:语句如下:
ALTER TABLE 课程 ADD COLUMN 开课学期 INTEGER(2)从基本表中删除字段
[格式]:
ALTER TABLE 表名 DROP COLUMN 字段名
【例7-3】在已定义的课程表中删除开课学期字段。
解:语句如下。
ALTER TABLE 课程 DROP COLUMN 开课学期
3. 删除表
[格式]:
DROP TABLE 表名
【例7-4】删除“教务管理”数据库中的课程表。
解:语句如下。
DROP TABLE 课程
索引的建立与删除
1. 建立索引
[格式]:
CREATE [UNIQUE]INDEX 索引名
ON 表名(字段名1 [DESC|ASC][,字段名2 [DESC|ASC],…])
2. 删除索引[格式]:
DROP INDEX 索引名 ON 表名
【例7-6】删除必修课成绩表中的XH索引。
解:使用的SQL语句如下。
DROP INDEX XH ON 必修课成绩
SQL的数据查询功能
SELECT语句的格式及功能说明
[格式]:
SELECT [ALL | DISTINCT |TOP N|TOP N PERCENT]
*|列名1或表达式1 [AS 列标题1 ] [,列名2或表达式2 [AS 列标题2]…]
FROM 表名1 [ IN 数据库名1] 别名1[,表名2 [ IN 数据库名2] 别名2 …]
[WHERE 条件]
[GROUP BY列名1 [, 列名2]…]
[HAVING 条件]
[ORDER BY 列名1 [ASC | DESC]