第五章 结构化查询语言(SQL)
1 第 五 章 结构化查询语言(SQL)
本章目录 目录 第一节SQL概述 上页 第二节数据定义功能 下页 第三节数据操纵功能 退出 第四节数据查询功能
目录 上页 下页 退出 2 本 章 目 录 第一节 SQL概述 第二节 数据定义功能 第三节 数据操纵功能 第四节 数据查询功能
第一节SQL概述 、SQL语言的特点 1.综合统 目录 SL语言集数据定义(DDL)、数据操纵(DML) 数据管理(DCL)的功能于一体,语言风格统一,可以 上页独立完成数据库的全部操作,包括定义关系模式、录 入数据及建立数据库、查询、更新、维护数据、数据 下页库的重新构造、数据库安全性等一系列操作的要求, 为数据库应用系统开发者提供了良好的环境 退出 2.高度非过程化 3.面向集合的操作方式 4.以同一种语法结构提供两种使用方式 5.语言简洁,易学易用
目录 上页 下页 退出 3 一、SQL语言的特点 1.综合统一 SQL语言集数据定义(DDL)、数据操纵(DML)、 数据管理(DCL)的功能于一体,语言风格统一,可以 独立完成数据库的全部操作,包括定义关系模式、录 入数据及建立数据库、查询、更新、维护数据、数据 库的重新构造、数据库安全性等一系列操作的要求, 为数据库应用系统开发者提供了良好的环境。 2.高度非过程化 3.面向集合的操作方式 4.以同一种语法结构提供两种使用方式 5.语言简洁,易学易用 第一节 SQL概述
二、SQL语言的基本概念 SL语言支持关系型数据库的三级模式结构。其中外 模式对应于视图(View)和部分基本表( Base table), 模式对应于基本表,内模式对应于存储文件 目录 基本表是本身独立存在的表,在SQL语言中一个关 上页 系对应一个表。一些基本表对应一个存储文件,一个表 可以带若干索引,索引存放在存储文件中。 存储文件的逻辑结构组成了关系型数据库的内模式 下页 而存储文件的物理文件结构是任意的。 退出 视图是从基本表或其他视图中导出的表,它本身不 独立存储在数据库中,也就是说数据库只存放在视力的 定义而不存放视图对应的数据,这些数据仍存放在导出 视图的基本表中,因此视图是一个虚表
目录 上页 下页 退出 4 二、 SQL语言的基本概念 SQL语言支持关系型数据库的三级模式结构。其中外 模式对应于视图(View)和部分基本表(Base Table), 模式对应于基本表,内模式对应于存储文件。 基本表是本身独立存在的表,在SQL语言中一个关 系对应一个表。一些基本表对应一个存储文件,一个表 可以带若干索引,索引存放在存储文件中。 存储文件的逻辑结构组成了关系型数据库的内模式。 而存储文件的物理文件结构是任意的。 视图是从基本表或其他视图中导出的表,它本身不 独立存储在数据库中,也就是说数据库只存放在视力的 定义而不存放视图对应的数据,这些数据仍存放在导出 视图的基本表中,因此视图是一个虚表
第二节数据定义功能 数据定义语言DDL用于执行数据定义的操作,如创建或 删除表、索引和视图之类的对象。由 CREATE、DROP、 目录 ALTER命令组成,完成数据库对象的建立( CREATE) 删除(DROP)和修改( ALTER) 上页 、定义(创建)表 下页 【格式】 CREATE TABLE((,)完整性约束NULL 退出 NOT NULLI,…1)[ PRIMARY KEY UNIQUE[ DEFAULTITAG<标识1 【功能】定义(也称创建)一个表
目录 上页 下页 退出 5 数据定义语言DDL用于执行数据定义的操作,如创建或 删除表、索引和视图之类的对象。由CREATE、DROP、 ALTER命令组成,完成数据库对象的建立(CREATE)、 删除(DROP)和修改(ALTER)。 一、定义(创建)表 【格式】CREATE TABLE ([([,])][完整性约束][NULL | NOT NULL][,…])[PRIMARY KEY | UNIQUE] [DEFAULT ] [REFERENCES [TAG ]] 【功能】定义(也称创建)一个表。 第二节 数据定义功能
数据类型说明 字段类型字段宽度小数位 说明 字符型字段的宽度为n( Character field of width n) CDT 日期类型(Date) 日期时间类型( Date Time) 目录 d/值字段类型,宽度为n,小数位为 d(Numeric field of width n with d decimal places) 上页 浮点数值字段类型,宽度为n,小数位为d( Floatin d numeric field of width n with d decimal places) 下页 整数类型( Integer) d双精度类型( Double) 退出 货币类型( Currency) YLMG 逻辑类型( Logical) 备注类型(Memo) 通用类型( General)
目录 上页 下页 退出 6 字段类型 字段宽度 小数位 说明 C n – 字符型字段的宽度为 n (Character field of width n) D – – 日期类型(Date) T – – 日期时间类型(Date Time) N n d 数值字段类型,宽度为 n,小数位为 d (Numeric field of width n with d decimal places) F n d 浮点数值字段类型,宽度为 n,小数位为 d (Floating numeric field of width n with d decimal places) I – – 整数类型(Integer) B – d 双精度类型(Double) Y – – 货币类型(Currency) L – – 逻辑类型(Logical) M – – 备注类型(Memo) G – – 通用类型(General) 数据类型说明
【例5-1】创建一个表STUD(学生信息表),它由以下 字段组成:学号(C,10);姓名(C,8);性别(C, 2);班级名(C,10);系别代号(C,2);地址(C, 50);出生日期(D);是否团员(L);备注(M)。 CREATE TABLE STUD(学号C(10),姓名C(10),性 目录 别C(2),班级名C(10),系别代号C(2),地址C (50),出生日期D,是否团员L,备注M,照片G) 上页 LIST STRUCTURE 下页 【例5-2】创建一个表SC(课程成绩表),它由以下字 退出 段组成:学号(C,10);课程号(C,2) CREATE TABLE SC(学号C(10),课程号C(2)) LIST STRUCTURE
目录 上页 下页 退出 7 【例5-1】创建一个表STUD(学生信息表),它由以下 字段组成:学号 (C,10);姓名(C,8);性别(C, 2);班级名(C,10);系别代号(C,2);地址(C, 50);出生日期(D);是否团员(L);备注(M)。 CREATE TABLE STUD(学号C(10),姓名 C(10),性 别 C(2),班级名 C(10),系别代号 C(2),地址 C (50),出生日期 D,是否团员 L,备注 M,照片 G) LIST STRUCTURE 【例5-2】创建一个表SC(课程成绩表),它由以下字 段组成:学号(C,10);课程号(C,2)。 CREATE TABLE SC(学号 C(10),课程号 C(2)) LIST STRUCTURE
【例5-3】利用SL命令建立“图书管理”数据库,其中包 含4个表:读者表、作者表、图书表、借书表 操作步骤如下: 创建数据库 目录 CREATE DATABASE图书管理 2.用SQL命令建立“读者”表: 上页 CREATE TABLE读者(读者编号C(9) NOT NULL; PRIMARY KEY,姓名C(8),性别C(2) CHECK(性别=“; 下页 男”OR性别=“女”) DEFAULT“男”,出身日期D 少;数民族否L,籍贯C(10),联系电话C(8),照片G) 退出 说明:该命令在当前打开的图书管理数据库中建立读者 表,其中读者编号为主关键字,用 CHECK对性别字段值 说明了有效性规则,并设定了性别字段默认值为 男
目录 上页 下页 退出 8 【例5-3】利用SQL命令建立“图书管理”数据库,其中包 含4个表:读者表、作者表、图书表、借书表。 操作步骤如下: 1.创建数据库: CREATE DATABASE 图书管理 2.用SQL命令建立 “读者”表: CREATE TABLE 读者(读者编号 C(9) NOT NULL; PRIMARY KEY , 姓名 C(8),性别 C(2) CHECK(性别=“; 男” OR 性别=“女” ) DEFAULT “男” ,出身日期 D, 少;数民族否 L,籍贯 C(10),联系电话 C(8),照片 G) 说明:该命令在当前打开的图书管理数据库中建立读者 表,其中读者编号为主关键字,用CHECK对性别字段值 说明了有效性规则,并设定了性别字段默认值为 “男”
3.用SQL语句建立“作者”表 CREATE TABLE作者(作者编号C(2) PRIMARY KEY,; 作者姓名C(10),职称C(10),联系电话C(10),备注M) 4.用SQL语句建立“图书”表: 目录 CREATE TABLE图书(书号C(6) NOT NULL PRIMARY KEY, 作者编号C(2) NOT NULL,书名C(14),价格N(8,2), 上页 数量I,出版社C(18),; 下页 FOREIGN KEY作者编号TAG作者编号 REFERENCES作者) 说明:该命令在当前打开的图书管理数据库中建立图书表 退出 其中书号为主关键字,“ FOREIGN KEY作者编号”表示在 该表的“作者编号”字段上建立了一个普通索引,同时说 明该字段是联接字段,通过引用作者表中的主索引“作者 编号”(TAG作者编号 REFERENCES作者)与作者表建立 联系
目录 上页 下页 退出 9 3.用SQL语句建立“作者”表: CREATE TABLE 作者(作者编号 C(2) PRIMARY KEY,; 作者姓名 C(10),职称 C(10),联系电话 C(10),备注 M) 4.用SQL语句建立“图书”表: CREATE TABLE 图书(书号 C(6) NOT NULL PRIMARY KEY,; 作者编号 C(2) NOT NULL,书名 C(14),价格 N(8,2),; 数量 I,出版社 C(18),; FOREIGN KEY 作者编号 TAG 作者编号 REFERENCES 作者) 说明:该命令在当前打开的图书管理数据库中建立图书表, 其中书号为主关键字,“FOREIGN KEY 作者编号”表示在 该表的“作者编号”字段上建立了一个普通索引,同时说 明该字段是联接字段,通过引用作者表中的主索引“作者 编号”(TAG 作者编号 REFERENCES 作者)与作者表建立 联系
5.用SQL语句建立“借书”表: CREATE TABLE借书(读者编号C(6) NOT NULL,读者姓名 C(10),书号C(6),借书日期 D DEFAULT DATEO,还书日 期 D NULL,; 目录 FOREIGN KEY读者编号TAG读者编号 REFERENCES读者; FOREIGN KEY书号TAG书号 REFErENCES图书) 上页 说明:该命令在当前打开的图书管理数据库中建立借书表, 下页其中“ FOREIGN KEY读者编号”在该表的“读者编号”字 段上建立了一个普通索引,同时说明该字段是联接字段, 通过引用读者表中的主索引“读者编号”(TAG读者编号 退出 REFERENCES读者)与读者表建立联系 这里要注意:“ FOREIGN KEY读者编号TAG读者编号 REFERENCES读者”语句中前后两个“读者编号”的含义 不同
目录 上页 下页 退出 10 5.用SQL语句建立“借书”表: CREATE TABLE 借书(读者编号 C(6) NOT NULL,读者姓名 C(10),书号 C(6),借书日期 D DEFAULT DATE(),还书日; 期 D NULL,; FOREIGN KEY 读者编号 TAG 读者编号 REFERENCES 读者; FOREIGN KEY 书号 TAG 书号 REFERENCES 图书) 说明:该命令在当前打开的图书管理数据库中建立借书表, 其中“FOREIGN KEY 读者编号”在该表的“读者编号”字 段上建立了一个普通索引,同时说明该字段是联接字段, 通过引用读者表中的主索引“读者编号”(TAG 读者编号 REFERENCES 读者)与读者表建立联系。 这里要注意:“FOREIGN KEY 读者编号 TAG 读者编号 REFERENCES 读者”语句中前后两个“读者编号”的含义 不同