MySQL数据库原理及应用-项目8-以程序方式处理学生信息管理数据表课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《MySQL数据库原理及应用-项目8-以程序方式处理学生信息管理数据表课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 数据库 原理 应用 项目 程序 方式 处理 学生 信息管理 数据表 课件
- 资源描述:
-
1、MySQLMySQL数据库原理及应用数据库原理及应用项目项目8 8 以程序方式处理学生信息管理以程序方式处理学生信息管理数据表数据表v学习目标:学习目标:了解SQL编程基础、游标、存储过程和函数、触发器及事务的作用掌握游标、存储过程和函数、触发器及事务的创建方法 掌握游标、存储过程和函数、触发器及事务的修改及删除方法任务任务8-1 掌握掌握SQL编程基础编程基础v【任务分析】【任务分析】设计人员要编写存储过程和函数、触发器及事务,首先要掌设计人员要编写存储过程和函数、触发器及事务,首先要掌握握SQL语言的语法规范及语言基础。语言的语法规范及语言基础。v【课堂课堂任务】任务】v 本次任务要求熟悉
2、本次任务要求熟悉SQL语言。语言。v SQL语言基础语言基础v SQL的流程控制的流程控制 v 常用函数常用函数v 游标的基本操作游标的基本操作任务任务8-1 掌握掌握SQL编程基础编程基础(一)SQL基础尽管MySQL有各种使用便捷的图形化用户界面,但各种功能的实现基础是SQL语言,只有SQL语言可以直接和数据库进行交互。SQL语言是一系列操作数据库及数据库对象的命令语句,因此了解基本语法和流程语句的构成是必须的。SQL语言基础主要包括什么主要包括常量和变量、表达式、运算符、控制语句等。任务任务8-1 掌握掌握SQL编程基础编程基础(一)SQL基础1、常量与变量 (1)常量。常量也称为文字值
3、或标量值,是指程序运行中值始终不改的量。常量类型常量类型常量表示说明常量表示说明字符串常量字符串常量包括在单引号(包括在单引号()或双引号()或双引号()中,由字母()中,由字母(az、AZ)、)、数字字符(数字字符(09)以及特殊字符(如感叹号()以及特殊字符(如感叹号(!)、)、at符(符()和井字)和井字号(号(#)组成。)组成。示例:示例:China、Output X is:、Nhello(Unicode字符串字符串常量,只能用单引号括起字符串)常量,只能用单引号括起字符串)十 进 制 整 型十 进 制 整 型常量常量使用不带小数点的十进制数据表示。使用不带小数点的十进制数据表示。示例
4、:示例:1234、654、+2008、-123十 六 进 制 整十 六 进 制 整型常量型常量使用前缀使用前缀0 x后跟十六进制数字串表示。后跟十六进制数字串表示。示例:示例:0 x1F00、0 xEEC、0X19日期常量日期常量使用单引号(使用单引号()将日期时间字符串括起来。)将日期时间字符串括起来。MySQL是按年是按年-月月-日日的顺序表示日期的。中间的间隔符可以用的顺序表示日期的。中间的间隔符可以用“-”,也可以使用如,也可以使用如“”、“/”、“”或或“%”等特殊符号。等特殊符号。示例:示例:2009-01-03、2008/01/09、20101210实型常量实型常量有定点表示和浮
5、点表示两种方式。有定点表示和浮点表示两种方式。示例:示例:897.1、-123.03、19E24、-83E2位字段值位字段值使用使用bvalue符号写位字段值。符号写位字段值。value是一个用是一个用0和和1写成的二进制写成的二进制值。直接显示值。直接显示bvalue的值可能是一系列特殊的符号。例如,的值可能是一系列特殊的符号。例如,b0显示显示为空白,为空白,b1显示为一个笑脸图标。显示为一个笑脸图标。示例:示例:SELECT BIN(b111101+0),OCT(b111101+0)布尔常量布尔常量布尔常量只包含两个可能的值:布尔常量只包含两个可能的值:TRUE和和FALSE。FALSE
6、的数字值的数字值为为“0”,TRUE的数字值为的数字值为“1”。示例:获取示例:获取TRUE和和FALSE的值:的值:SELECT TRUE,FALSENULL值值NULL值可适用于各种列类型,它通常用来表示值可适用于各种列类型,它通常用来表示“没有值没有值”、“无数无数据据”等意义,并且不同于数字类型的等意义,并且不同于数字类型的“0”或字符串类型的空字符串或字符串类型的空字符串任务任务8-1 掌握掌握SQL编程基础编程基础任务任务8-1 掌握掌握SQL编程基础编程基础(一)SQL基础1、常量与变量 (2)变量。变量就是在程序执行过程中,其值是可以改变的量。可以利用变量存储程序执行过程中涉及
7、的数据,如计算结果、用户输入的字符串以及对象的状态等。变量由变量名和变量值构成,其类型与常量一样。变量名不能与命令和函数名相同,这里的变量和在数学中所遇到的变量的概念基本上是一样的,可以随时改变它所对应的数值。在MySQL系统中,存在3种类型的变量:第1种是系统变量全局(global)变量会话(session)变量第2种是用户变量第3种是局部变量任务任务8-1 掌握掌握SQL编程基础编程基础(一)SQL基础1、常量与变量 (2)变量。全局变量和会话变量。查看全局变量的值例:查看当前的版本信息SELECT version AS 当前MySQL,CURRENT_DATE;例:查看全局变量SHOW
8、GLOBAL variables;SHOW variables WHERE variable_name LIKE collation%;任务任务8-1 掌握掌握SQL编程基础编程基础(一)SQL基础1、常量与变量 (2)变量。全局变量和会话变量。设置全局变量的值【例8.1】将全局系统变量sort_buffer_size的值改为25000,执行命令如下。SET global.sort_buffer_size=25000;【例8.2】对于当前会话,把系统变量SQL_SELECT_LIMIT的值设置为100。这个变量决定了SELECT语句的结果集中的最大行数。SET SESSION.SQL_SELE
9、CT_LIMIT=100;SELECT LOCAL.SQL_SELECT_LIMIT;任务任务8-1 掌握掌握SQL编程基础编程基础 用户变量。语法结构:SET 变量名:=表达式;例如:创建用户变量name,并赋值为“王小强”。(1)SET name=王小强;(2)SET name:=王小强;(3)SELECT name:=王小强;【例8.3】创建用户变量user1并赋值为1,user2赋值为2,user3赋值为3。SET user1=1,user2=2,user3=3;或SELECT user1:=1,user2:=2,user3:=3;【例8.4】创建用户变量user4,它的值为user3
10、的值加1。SET user4=user3+1;或SELECT user4:=user3+1;任务任务8-1 掌握掌握SQL编程基础编程基础【例8.5】查询【例8.3】和【例8.4】中创建的变量user1、user2、user3和user4的值。SELECT user1,user2,user3,user4;+-+-+-+-+|user1|user2|user3|user4|+-+-+-+-+|1|2|3|4|+-+-+-+-+1 row in set任务任务8-1 掌握掌握SQL编程基础编程基础 用户变量。【例8.6】使用查询结果给变量赋值。USE gradem;SET student=(SEL
11、ECT sname FROM student WHERE sno=2007010120);【例8.7】查询表student中名字等于例8.6中student值的学生信息。SELECT sno,sname,sbirthday FROM student WHERE sname=student;【例8.8】利用SELECT语句将表中数据赋值给变量。select name:=password from suser limit 0,1;任务任务8-1 掌握掌握SQL编程基础编程基础 用户变量。【例8.9】查看“gradem”数据库中的学生信息,而条件只是查看student表中“系别”为“软件工程系”的学
12、生信息。USE gradem;SET 系别=软件工程系;SELECT sno,sname,saddress FROM student WHERE sdept=系别;注意:只要关闭查询窗口,用户变量就失效任务任务8-1 掌握掌握SQL编程基础编程基础 局部变量。例如,定义局部变量myvar,数据类型为INT,默认值为10,代码如下。DECLARE myvar int DEFAULT 10;下面给局部变量myvar赋值为100,代码如下。SET myvar=100;任务任务8-1 掌握掌握SQL编程基础编程基础2表达式在SQL语言中,表达式就是常量、变量、列名、复杂计算、运算符和函数的组合。一个表
13、达式通常都有返回值。与常量和变量一样,表达式的值也具有某种数据类型。根据表达式的值的类型,表达式可分为字符型表达式、数值型表达式和日期型表达式。表达式一般用在SELECT及SELECT语句的WHERE子句中。任务任务8-1 掌握掌握SQL编程基础编程基础例如,如下所示为一个使用表达式的SELECT查询语句。SELECT A.sno,AVG(degree)AS 平均成绩,CONCAT(sname,SPACE(6),ssex,SPACE(4),classno,班,SPACE(4),left(classno,4),年级)AS 考生信息FROM sc A INNER JOIN student B ON
14、 A.sno=B.snoGROUP BY A.sno,sname,ssex,classnoORDER BY 平均成绩 DESC;+-+-+-+|sno|平均成绩|考生信息|+-+-+-+|2007030436|94.5000|徐小栋 男 20070304班 2007年级|2007030409|94.0000|刘明海 男 20070304班 2007年级|2007030408|93.0000|刘众林 男 20070304班 2007年级|2007030420|92.7500|李鹏飞 男 20070304班 2007年级|2007010106|92.6667|孙晋梅 女 20070101班 200
15、7年级|任务任务8-1 掌握掌握SQL编程基础编程基础(二)SQL的流程控制1、结构化程序设计语言的基本结构是(1)顺序结构(2)条件分支结构(3)循环结构顺序结构是一种自然结构,条件分支结构和循环结构需要根据程序的执行情况对程序的执行顺序进行调整和控制。在SQL语言中,流程控制语句就是用来控制程序执行流程的语句,也称流控制语句或控制流语句。在MySQL中,这些流程控制语句和局部变量只能在存储过程或函数、触发器或事务的定义中。任务任务8-1 掌握掌握SQL编程基础编程基础(二)SQL的流程控制(1)BEGINEND语句块。关键字BEGIN定义SQL语句的起始位置,END定义同一块SQL语句的结
16、尾。它的语法格式如下。BEGINsql_statement|statement_block;END;sql_statement是使用语句块定义的任何有效的SQL语句;statement_block是使用语句块定义的任何有效SQL语句块。任务任务8-1 掌握掌握SQL编程基础编程基础(二)SQL的流程控制(2)IFELSE条件语句。用于指定SQL语句的执行条件。如果条件为真,则执行条件表达式后面的SQL语句。当条件为假时,可以用ELSE关键字指定要执行的SQL语句。它的语法格式如下。IF search_condition THEN statement_listELSEIF search_cond
17、ition THEN statement_listELSE statement_listEND IF;其中,search_condition是返回true或false的逻辑表达式。如果逻辑表达式中含有SELECT语句,必须用圆括号将SELECT语句括起来任务任务8-1 掌握掌握SQL编程基础编程基础(二)SQL的流程控制【例8.10】使用IFELSE条件语句查询计算机系的办公室位置。如果查询结果为空,则显示“办公地点不详”,否则显示其办公地点。分析:(1)查询出计算机系的办公位置 select office FROM department WHERE deptname=计算机工程系;(2)根据
18、结果是否为空,分别处理 IF()THEN BEGIN ELSE END IF;任务任务8-1 掌握掌握SQL编程基础编程基础(二)SQL的流程控制DECLARE sofficename char(20);select sofficename:=office FROM department WHERE deptname=计算机工程系;IF(sofficename IS NULL)THEN BEGIN SELECT 办公地点不详 AS 办公地点;SELECT*FROM department WHERE deptname=计算机工程系;END;ELSE SELECT office FROM depa
19、rtment WHERE deptname=计算机工程系;END IF;任务任务8-1 掌握掌握SQL编程基础编程基础(二)SQL的流程控制(3)CASE分支语句。CASE关键字可根据表达式的真假来确定是否返回某个值,可以允许使用表达式的任何位置使用这一关键字。使用CASE语句可以进行多个分支的选择,CASE语句具有如下两种格式。简单格式:将某个表达式与一组简单表达式进行比较以确定结果。简单CASE格式的语法如下。CASEWHEN when_expression THEN result_expression;nELSE else_result_expression;END CASE;任务任务8
20、-1 掌握掌握SQL编程基础编程基础 搜索格式:计算一组布尔表达式以确定结果。搜索CASE格式的语法如下。CASEWHEN Boolean_expression THEN result_expression;nELSE else_result_expression;END CASE;语句中参数的含义与CASE格式的参数含义类似。任务任务8-1 掌握掌握SQL编程基础编程基础declare dj int default 0;SELECT count(*)into dj FROM sc WHERE degree=100 THEN SELECT 不及格门数较多 as 档次;WHEN dj=50 AN
21、D dj=1 AND dj 50 THEN SELECT 不及格门数较少 as 档次;ELSE SELECT 没有不及格的 as 档次;END CASE;任务任务8-1 掌握掌握SQL编程基础编程基础(4)循环语句。WHILEEND WHILE语句。WHILE语句是设置重复执行SQL语句或语句块的条件。当指定的条件为真时,重复执行循环语句。可以在循环体内设置LEAVE和ITERATE语句,以便控制循环语句的执行过程,其语法格式如下。begin_label:WHILE Boolean_expression DO sql_statement|statement_block;LEAVE begin_
22、label;sql_statement|statement_block;ITERATE begin_label;sql_statement|statement_block;END WHILE;任务任务8-1 掌握掌握SQL编程基础编程基础例如,使用WHILE语句求1100之和。SET i=1,sum=0;WHILE i100END REPEAT;SELECT sum;任务任务8-1 掌握掌握SQL编程基础编程基础 LOOPEND LOOP语句。LOOP语句可以使某些特定的语句重复执行,实现一个简单的循环。但是LOOP语句本身没有停止循环的语句,必须是遇到LEAVE语句才能停止循环。其语法格式如
23、下。begin_label:LOOP sql_statement|statement_block;LEAVE begin_label;sql_statement|statement_block;ITERATE begin_label;sql_statement|statement_block;END LOOP;任务任务8-1 掌握掌握SQL编程基础编程基础例如,使用LOOP语句求1100之和。SET i=1,sum=0;add_sum:LOOP BEGIN SET sum=sum+i;SET i=i+1;END;IF i100 THEN LEAVE add_sum;END LOOP;SELEC
24、T sum;任务任务8-1 掌握掌握SQL编程基础编程基础2、条件和处理程序的定义特定条件需要特定处理。这些条件可能涉及错误以及子程序中的一般流程控制。定义条件和处理程序是事先定义程序执行过程中可能遇到的问题,并且可以在处理程序中定义解决这些问题的办法。这种方式可以提前预测可能出现的问题,并提出解决办法。这样可以增强程序处理问题的能力,避免程序异常停止。MySQL中都是通过DECLARE关键字来定义条件和处理程序。任务任务8-1 掌握掌握SQL编程基础编程基础2、条件和处理程序的定义【例8.12】定义条件和处理程序,具体的执行代码如下。-首先建立测试表testmysqlCREATE TABLE
25、 test(t1 int,primary key(t1);Query OK,0 rows affectedmysqlDELIMITER/#重新定义命令结束符为/mysqlCREATE PROCEDURE handlertest()-BEGIN -DECLARE CONTINUE handler FOR SQLSTATE 23000 SET x1=1;-SET x=1;-INSERT INTO test VALUES(1);-SET x=2;-INSERT INTO test VALUES(1);-SET x=3;-SELECT x,x1;-END;-/任务任务8-1 掌握掌握SQL编程基础编程
展开阅读全文