基础-第5课数据库进阶_第1页
基础-第5课数据库进阶_第2页
基础-第5课数据库进阶_第3页
基础-第5课数据库进阶_第4页
基础-第5课数据库进阶_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库进阶欢迎来到特斯汀学院软件测试VIP课程主讲老师:Will班主任老师:Will老师2011年毕业中南大学软件工程学院迅雷高级测试、测试主管测试开发、管理、运维目录CONTENTPart.2联合查询应用conjunctivequeryPart.3存储过程ProcedurePart.4游标和使用CursorPart.1笛卡尔积Cartesianproduct课程回顾数据库基本操作:安装、连接、建库、建表、增删改查数据库配置:修改项目配置文件:数据库连接,用户名,密码PART1笛卡尔积Cartesianproduct笛卡尔积1笛卡尔积:假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。2Windows安装mysql:参照文档《笛卡尔积.jpg》将表格看做集合,将每一行的数据看做集合中的元素3Mysql笛卡尔积:teacher表和course表的笛卡尔积SELECT*FROMteacher,courseORDERBYteacher.tid;Mysql内连接1笛卡尔积内连接:SELECT*FROMteacher,coursewhereteacher.tid=course.tidORDERBYteacher.tid;只对满足条件的内容求笛卡尔积2Mysql内连接:SELECT*FROMteacherINNERJOINcoursewhereteacher.tid=course.tidORDERBYteacher.tid;INNERJOIN的原理就是笛卡尔积内连接原理where也可以用onMysql扩展连接1左连接:SELECT*FROMteacherLEFTJOINcourseONteacher.tid=course.tidORDERBYteacher.tid;左边存在的都显示,如果右边不存在,用null补充右边存在,左边不存在的记录不显示2右连接:SELECT*FROMteacherRIGHTJOINcourseONteacher.tid=course.tidORDERBYteacher.tid;与左连接相反PART2联合查询应用conjunctivequery笔试题1表结构:学生表(学号,姓名,年龄,性别)教师表(老师号,姓名)课程表(课程号,老师号,课程名)成绩表(学号,课程号,成绩)2试题:查询男女学员的平均成绩查询所有同学的学号,姓名,选课数,总成绩查询每一门课程的任课老师,选课学员数,以及平均成绩(,平均年龄)试题分析1确定查询连接:信息在哪些表里面?多个表这么查询?实际情况应该使用什么连接?2查询实现:连接条件分组数据统计分组与函数1分组:为什么要分组?GROUP的应用2常用函数:计数:COUNT求和:SUM求平均值:AVG最大值:MAX最小值:MIN别名与子查询1别名:字段别名:SELECTtidasid,tnameAS姓名FROMteacher;表别名:SELECT*FROMteacherAStWHEREt.tid=3;2子查询:SELECT*FROM(SELECT*FROMteacherAStWHEREt.tnameLIKE'%老师%')ASttWHEREtt.tnameLIKE'%Will%’;子查询允许把一个查询嵌套在另一个查询当中。内部的查询可以看做一张新表PART3存储过程Procedure存储过程1定义:SQL语句块。这些语句像一个方法一样实现一些功能。可以返回查询结果。2应用:简单的查询存储过程分页查询存储过程应用系统存储过程登录实现存储过程实例1编写分页查询成绩实例:如果存在则删除:DROPPROCEDUREIFEXISTSpageScore;变量定义:DECLAREpageINTDEFAULT1;IFTHEN…ELSEIF…ENDIF;存储过程调用存储过程的优点1编写分页查询成绩实例:执行速度更快–在数据库中保存的存储过程语句都是编译过的类似于煮饭,存储过程是已经煮熟的饭,可以直接吃允许模块化程序设计–类似方法的复用和bat编程类似,我们把一些逻辑封装了起来,只需要调用提高系统安全性–防止SQL注入自动化阶段会讲减少网络流通量–只要传输存储过程的名称普通查询需要传整个语句,存储过程只需要参数PART4游标和使用Cursor一个场景1需求:查询所有学员的学号、姓名和总成绩,并保存下来2分析:我们可以通过查询语句获得结果但是,我们怎么把结果保存到一张表里面呢?游标1游标:有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。先有数据基础:游标是在先从数据表中检索出数据之后才能继续灵活操作的技术。类似于指针:游标类似于指向数据结构堆栈中的指针,用来pop出所指向的数据,并且只能每次取一个。2应用:使用存储过程和游标,实现之前的需求作业

Job1联合查询:使用联合查询,实现三道笔试题2存储过程:使用存储过程实现分页查询3游标:使用游标,实现课程保存结果的实例4项目中bug修复(课外):为本地数据库添加登录和注册的存储过程login(INl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论