项目4 关系数据库标准语言SQL.docx
- 文档编号:24866264
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:35
- 大小:22.13KB
项目4 关系数据库标准语言SQL.docx
《项目4 关系数据库标准语言SQL.docx》由会员分享,可在线阅读,更多相关《项目4 关系数据库标准语言SQL.docx(35页珍藏版)》请在冰豆网上搜索。
项目4关系数据库标准语言SQL
项目4关系数据库标准语言SQL
第1节数据定义与更新
教学目标
1.能使用CREATETABLE创建数据表
2.能使用ALTERTABLE命令修改表结构
3.能使用INSERT命令在表中插入数据
4.能更新和删除数据
教学重点、难点
1.创建数据表
2.修改表结构
3.在表中插入数据
4.更新和删除数据
技能培训
1.创建数据表
2.修改表结构
3.在表中插入数据
4.更新和删除数据
教法
任务驱动、讲练结合
学法
指导操作
教具使用
本节需要的数据表
教学内容与过程
教学内容
教师活动
学生活动
备注
复习提问
什么是数据表中字段、记录?
思考回答
学生补充,教师点评
导入新课
列举常见的数据表格,如何输入到计算机中?
给出本节课题
讲授新课
任务1数据定义
SQL的数据定义包括数据库的定义、数据表的定义、视图的定义、规则的定义等。
一、创建基本表
1.创建表
CREATETABLE命令的基本格式如下:
CREATETABLE<表名>
[FREE](<字段名1><字段类型>[(宽度[,小数位])]
[PRIMARYKEY|UNIQUE]
[,<字段名2>…]…)
说明:
(1)FREE:
定义的表是自由表。
(2)PRIMARYKEY:
为该字段创建一个主索引。
(3)UNIQUE:
为该字段创建一个候选索引。
【实例1】建立“订单管理”数据库,并用SQL命令建立“产品1”表(产品id(C,5),产品名称(C,12),型号(C,20)),并指定“产品id”字段为索引主关键字。
分析:
建立数据库可以直接使用CREATEDATABASE命令。
建立数据表可以使用SQL的CREATETABLE命令,分为建立数据库表和自由表。
操作命令:
CREATEDATABASE订单管理&&建立“订单管理”数据库
2定义字段有效性规则
CREATETABLE<表名>
(<字段名1><字段类型>[(宽度[,小数位])]
[CHECK<表达式1>[ERROR<提示信息>]]
[DEFAULT<表达式2>]
[PRIMARYKEY|UNIQUE]
[,<字段名2>…]…)
说明:
(1)CHECK<表达式1>[ERROR<提示信息>]:
定义字段有效性规则。
(2)DEFAULT<表达式2>:
设置字段的默认值。
【实例2】在“订单管理”数据库中建立“订单1”表(订单id(C,5),订购日期(D),发货日期(D),运费(N,8,2)),设置“订单id”为关键字建立主索引,“订购日期”字段的默认值为当前系统日期DATE(),“运费”字段值在0~50000之间。
分析:
操作:
在命令窗口输入命令:
OPENDATABASE订单管理&&打开“订单管理”数据库
CREATETABLE订单1;
(订单idC(5)PRIMARYKEY,;
订购日期DDEFAULTDATE(),;
发货日期D,;
运费N(8,2)CHECK(运费>=0AND运费<=50000)ERROR"运费超出范围!
")
3.建立表间的关系
【实例3】在“订单管理”数据库中,定义“订单明细1”表(订单id(C,5),产品id(C,5),数量(I),折扣(N,6,2)),以“订单id”为关联字段,与父表“订单1”表建立多对一的关联。
分析:
用“FOREIGNKEY<表达式>TAG<标记>REFERENCES<表名>[TAG<标记>]”中的“FOREIGNKEY<表达式>TAG<标记>”建立普通索引,用“REFERENCES<表名>[TAG<标记>]”建立与指定表之间的关联。
操作命令:
在命令窗口输入命令:
OPENDATABASE订单管理&&打开“订单管理”数据库
CREATETABLE订单明细1(订单idC(5),;
产品idC(5),数量I,折扣N(6,2),;
FOREIGNKEY订单idTAG订单idREFERENCES订单1TAG订单id)
二、修改表结构
修改表结构的命令格式:
ALTERTABLE<表名1>
ADD|ALTER[COLUMN]<字段名1><字段类型>[(宽度[,小数位])]
[NULL|NOTNULL]
[CHECK<表达式1>[ERROR<提示信息>]]
[[SET]DEFAULT<表达式2>]
[PRIMARYKEY|UNIQUE]
1.修改表结构
【实例4】在“订单管理”数据库的“产品1”表中添加一个“单价”字段,数据类型为N(8,2)。
分析:
使用SQL的“ALTERTABLE<表名1>ADD…”命令可以在表中添加字段。
操作:
在命令窗口输入命令:
OPENDATABASE订单管理
ALTERTABLE产品1ADD单价N(8,2)
【实例5】将“产品1”表中的“产品名称”字段的宽度改为30。
分析:
使用SQL的ALTERTABLE<表名1>ALTER命令可以修改字段的类型等属性。
操作命令:
ALTERTABLE产品1ALTER产品名称C(30)
【实例6】将“订单1”表中“运费”字段的取值范围限定在0~1000之间。
分析:
使用SQL的“ALTERTABLE<表名1>ALTER…CHECK<表达式1>[ERROR<提示信息>”命令可以修改字段的有效性规则。
操作:
在命令窗口输入命令:
ALTERTABLE订单1ALTER运费N(8,2);
CHECK运费>=0and运费<=1000ERROR"运费超出范围!
"
CHECK运费>=0and运费<=1000ERROR"运费超出范围!
"
【实例7】将“订单1”表中“订购日期”字段的默认值设置为2011年11月27日。
分析:
由于“订单1”表中的“订购日期”字段已存在,因此,使用SQL的“ALTERTABLE<表名1>ALTER…SETDEFAULT<表达式2>”命令修改字段的默认值。
日期“2011年11月27日”的常量表示为{^2011/11/27}。
操作:
在命令窗口输入命令:
ALTERTABLE订单1ALTER订购日期SETDEFAULT{^2011/11/27}
三、删除表
删除表可以使用SQL的DROPTABLE命令,格式如下:
DROPTABLE<表名>|?
【实例8】从“订单管理”数据库中删除“产品1”表。
分析:
删除当前数据库中的表时,必须先打开数据库,否则在数据库中仍保留该表的一些信息,不利于数据库的维护。
操作:
在命令窗口输入命令:
OPENDATABASE订单管理&&删除数据库表之前,必须先打开数据库
DROPTABLE产品1
●拓展与提高
CREATETABLE|DBF<表名1>[NAME<长表名>][FREE]
(<字段名1><字段类型>[(宽度[,小数位])][NULL|NOTNULL]
[CHECK<表达式1>[ERROR<提示信息1>]]
[DEFAULT<表达式2>]
[PRIMARYKEY|UNIQUE]
[REFERENCES<表名2>[TAG<标记1>]]
[,<字段名2>…]
[,PRIMARYKEY<表达式3>TAG<标记2>|,UNIQUE<表达式3>TAG<标记3>]
[,FOREIGNKEY<表达式4>TAG<标记4>REFERENCES<表名3>[TAG<标记5>]]
[,CHECK<表达式6>[ERROR<提示信息2>]])
【实例9】在“订单管理”数据库中创建“业务员1”表,其字段分别为“编号(C,5)”、“姓名(C,8)”、“性别(C,2)”、“雇用日期(D)”、“联系电话(C,18)”、“照片(G)”字段,并定义“编号”字段为主索引,“性别”字段的默认值为“男”。
分析:
使用SQL的CREATETABLE命令建立数据库表时,首先要使数据库处于打开状态,否则创建的是自由表,还要了解字段数据类型的字母代码,其中“雇用日期”和“照片”字段不需要指定字段宽度。
操作:
在命令窗口输入命令:
OPENDATABASE订单管理&&打开数据库
CREATETABLE业务员1(编号C(5)PRIMARYKEY,;
姓名C(8),性别C
(2)DEFAULT"男",;
雇用日期D,联系电话C(18),照片G)
2.修改表结构
修改表结构ALTERTABLE命令的另外一种格式如下:
ALTERTABLE<表名1>
ALTER|DROP[COLUMN]<字段名1>
[NULL|NOTNULL]
[SETCHECK<表达式1>[ERROR<提示信息>]]
[SETDEFAULT<表达式2>]
[DROPDEFAULT]
[DROPCHECK]
[RENANMECOLUMN<字段名2>TO<字段名3>]
3.删除表
使用REMOVETABLE命令可以删除数据库表,命令格式如下:
REMOVETABLE<表名>[DELETE]
相关知识:
定义视图
1.定义视图
创建视图的命令格式如下:
CREATESQLVIEW[视图名][ASSELECT查询语句]
2.删除视图
删除视图的命令格式如下:
DROPVIEW[视图名]
说明:
该命令的功能是删除指定的视图。
例如,分别删除CP_V和CP_S视图,键入命令:
DROPVIEWCP_V
DROPVIEWCP_S
执行上述命令后,CP_V和CP_S视图分别被删除。
课堂练习:
1.建立“成绩管理”数据库,用SQL命令在该数据库中建立“课程”表,包含“课程号(C,4)”和“课程名(C,8)”字段,并定义“课程号”字段为主索引。
2.创建“考生”表,包含“考试号(C,5)”、“姓名(C,8)”、“年龄(I)”字段,定义“考试号”字段为主索引,“年龄”字段接受数据的最小值为16,否则给出“年龄偏低”提示信息。
3.创建“成绩”表,包含“考试号”(C,5)、“课程号(C,4)”、“成绩(I)”字段,以“考试号”为关键字与“考生”表建立多对以关联,以“课程号”为关键字与“课程”表建立多对一关联。
4.在“考生”表中添加一个“职业”字段,字符类型,宽度为8.
5.定义“成绩”表中的“课程号”字段的默认值为“KC001”。
6.删除“考生”表中的“职业”字段。
任务2SQL数据操作
主要包括数据的插入、更新和删除三个部分的功能。
一、插入记录
【实例14】在“订单管理”数据库的“产品1”表中插入一条记录:
"40001","电视","海尔LK47液晶",7000。
分析:
使用SQL的INSERTINTO命令可以将数据插入到表中。
操作:
在命令窗口输入命令:
OPENDATABASE订单管理
INSERTINTO产品1VALUES("40001","电视","海尔LK47液晶",7000)
二、更新记录
【实例15】将“产品1”表中全部记录的“单价”降低10%。
分析:
使用SQL的UPDATE命令可以修改表中记录。
操作命令:
UPDATE产品1SET单价=单价*0.9
三、删除记录
【实例16】删除“产品1”表中产品名称是“电视”的全部记录。
分析:
使用SQL的DELETEFROM命令可以删除表中记录。
操作命令:
DELETEFROM产品1WHERE产品名称="电视"
课堂练习
1.使用INSERTINTO命令插入记录时,对插入字段和插入值有什么要求?
2.在“成绩管理”数据库的“课程”表中插入一条记录:
"KC01","网络技术应用"。
3.在“考生”表中至少插入4条记录。
4.将“考生”表中全部记录的“年龄”字段值加1。
5.删除“考生”表中年龄大于55的记录。
观察结果
观察操作过程
观察操作结果
观察操作结果
观察操作结果
观察操作结果
观察操作结果
观察操作结果
阅读
观察操作结果
观察操作结果
观察操作结果
操作并分析结果
教师给出任务
教师分析
教师讲解
教师提出任务
教师分析
教师给出任务
教师分析
教师提出任务
教师分析
教师提出任务
教师分析
教师提出任务
教师分析
教师讲解
教师给出任务
教师分析
教师给出任务
教师分析
教师指导
教师给出任务
教师分析
教师给出任务
教师分析
教师给出任务
教师分析
小结
作业
1.看书
2.综合练习4中的有关操作题
第2节SQL数据查询
教学目标
1.使用SELECT命令创建简单查询
2.使用SELECT命令创建联接查询与嵌套查询
3.使用SELECT命令创建排序与分组查询
4.按不同的要求输出查询
教学重点、难点
1.创建联接查询与嵌套查询
2.创建排序与分组查询
技能培训
根据要求使用SELECT命令创建查询
教法
任务驱动、讲练结合
学法
指导操作
教具使用
本节需要的数据表
教学内容与过程
教学内容
教师活动
学生活动
备注
复习提问
如何使用查询设计器创建查询?
思考回答
学生补充,教师点评
导入新课
列举常见的数据查询方法,提出任务。
给出本节课题
讲授新课
任务3SQL数据查询
一、简单查询
【实例17】从“产品”表中检索所有产品的记录。
分析:
不加限制的检索记录,是SELECT命令最简单的一种格式。
操作命令:
SELECT*FROM产品
查看查询结果。
【实例2】从“产品”表中检索不同规格产品,只输出“产品名称”、“型号”和“单价”字段值,并将“单价”字段值命名为“价格”。
分析:
这是一个从单表中检索记录,不需要输出全部字段,只需要部分字段值的操作。
操作:
在命令窗口输入命令:
SELECT产品名称,型号,单价AS价格FROM产品
查看查询结果。
二、条件查询
【例19】从“产品”表中检索单价在3000元以上的产品记录。
分析:
该查询是一个单条件查询,需要指定条件,这是SELECT命令最常用的一种方式。
操作:
在命令窗口输入命令:
SELECT产品名称,型号,单价FROM产品WHERE单价>3000
【例20】从“产品”表中检索“MP5播放器”或“数码相机”的记录,只显示“产品名称”、“型号”和“单价”字段。
分析:
在该查询中可以使用的条件:
WHERE产品名称IN("MP5播放器","数码相机")
或
WHERE产品名称="MP5播放器"OR产品名称="数码相机"
操作:
在命令窗口输入命令:
SELECT产品名称,型号,单价FROM产品;
WHERE产品名称IN("MP5播放器","数码相机")
三、联接查询
【例21】检索“订单id”是“10202”所订购产品的产品名称、型号和数量。
分析:
操作:
在命令窗口输入命令:
SELECT订单明细.产品id,产品名称,型号,数量FROM产品,订单明细;
WHERE订单明细.产品id=产品.产品idAND订单id="10202"
四、嵌套查询
【例22】在“产品”表和“订单明细”表中检索订购“数码相机”的订单信息。
分析:
操作:
在命令窗口输入命令:
SELECT订单id,产品id,数量FROM订单明细;
WHERE产品idIN(SELECT产品idFROM产品;
WHERE产品名称="数码相机")
五、查询排序
【例23】按“产品”表中的“单价”升序检索全部产品的信息。
分析:
在SELECT命令中使用ORDERBY选项可以对查询结果进行排序。
操作:
在命令窗口输入命令:
SELECT*FROM产品ORDERBY单价
相关知识:
计算函数
表4.4常见的计算函数的使用方法
函数名
格式
含义
COUNT()
COUNT([DISTINCT]<表达式>)
统计表中记录的个数。
<表达式>可以是字段名或由字段名组成。
如果选择DISTINCT选项,统计记录时表达式值相同的记录,只统计一条
SUM()
SUM([DISTINCT]<数值表达式>)
计算数值表达式的和。
如果选择DISTINCT选项,计算函数值时,数值表达式值相同的记录只有一条参加求和运算
AVG()
AVG([DISTINCT]<数值表达式>)
计算数值表达式的平均值。
如果选择DISTINCT选项,计算函数值时,数值表达式值相同的记录只有一条参加求平均值运算
MAX()
MAX(<表达式>)
计算表达式的最大值。
表达式可以是数值型、字符型、逻辑型或日期型数据
MIN()
MIN(<表达式>)
计算表达式的最小值。
表达式可以是数值型、字符型、逻辑型或日期型数据
六、查询分组
使用SELECT命令对查询结果进行分组,命令格式如下:
SELECT[DISTINCT]<查询项>[AS<列标题>][,<查询项>[AS<列标题>]…]
FROM<表名>
[WHERE<条件>]
GROUPBY<分组项>[,<分组项>][HAVING<条件>]
【例24】统计“产品”表中有不同的产品类别。
分析:
前面已经介绍过使用命令:
SELECTDISTINCT产品名称FROM产品
【例25】在“订单明细”表中分组汇总每笔订单的总数量。
分析:
计算总的数量,可以使用命令:
SELECT订单id,SUM(数量)FROM订单明细
拓展与提高:
合并查询
七、查询输出
将查询结果输出的命令格式如下:
SELECT[DISTINCT]<查询项>[AS<列标题>][,<查询项>[AS<列标题>]…]
TOPn[PERCENT]
FROM<表名>
INTO<目标>|TOFILE<文件名>[ADDITIVE]|TOPRINTER[PROMPT]|TOSCREEN
1.输出部分结果
【例26】显示“产品”表中单价最高的前5条记录。
分析:
显示查询中前几条或前百分之几的记录,使用TOPn[PERCENT]选项,且与ORDERBY选项同时使用。
操作:
在命令窗口输入命令:
SELECT*TOP5FROM产品ORDERBY单价DESC
2.存放到临时表
【例27】在“产品”表中查询“数码相机”的记录,并保存到临时表SMXJ中。
分析:
使用CURSOR<表名>参数,可以将查询到的数据保存到临时表中。
建立的临时表是自动打开的,当文件关闭时,系统自动将它删除。
操作:
在命令窗口输入命令:
SELECT产品名称,型号,单价FROM产品WHERE产品名称="数码相机";
INTOCURSORSMXJ
3.保存到数据表
【例28】在“产品”表中查询“数码相机”的记录,保存到XJDB表中。
分析:
使用INTODBF或INTOTABLE选项,可以将查询结果保存到数据表中。
操作:
在命令窗口输入命令:
SELECT产品名称,型号,单价FROM产品WHERE产品名称="数码相机";
INTODBFXJDB
3.保存到数据表
【例28】在“产品”表中查询“数码相机”的记录,保存到XJDB表中。
分析:
使用INTODBF或INTOTABLE选项,可以将查询结果保存到数据表中。
操作:
在命令窗口输入命令:
SELECT产品名称,型号,单价FROM产品WHERE产品名称="数码相机";
INTODBFXJDB
课堂练习
1.分别执行下列命令:
SELECT产品名称FROM产品
SELECTDISTINCT产品名称FROM产品
两个命令的查询结果有什么不同?
2.在“学籍”表中查询全部记录的“学号”、“姓名”、“出生日期”和“入学成绩”字段内容。
3.在“学籍”表中查询入学成绩在400至450之间记录,只显示“姓名”、“性别”、“出生日期”、“专业”、“入学成绩”和“团员”字段内容。
4.将上题查询结果按入学成绩降序排列。
5.在“学籍”表中查询所有的专业列表。
6.在“成绩”表统计“数学”以及“语文”、“数学”和“英语”3门课程成绩和的最高分、最低分。
7.将上题的查询结果保存到CJ.dbf表中。
观察操作结果
观察操作结果
阅读
思考回答
观察结果
观察操作结果
阅读
观察操作结果
查看操作结果
阅读
观察操作结果
观察操作结果
观察操作结果
观察操作结果
操作并分析结果
教师给出任务
教师分析
教师讲解
给出任务教师分析
教师讲解
教师给出任务
教师分析
操作
教师给出任务
教师讲解
教师给出任务
教师分析
教师给出任务
教师讲解
教师讲解
教师给出任务
教师讲解
教师给出任务
教师讲解
教师给出任务
教师讲解
教师给出任务
教师讲解
教师给出任务
教师讲解
教师给出任务
教师讲解
教师讲解
小结
作业
1.看书
2.综合练习4有关操作题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目4 关系数据库标准语言SQL 项目 关系 数据库 标准 语言 SQL