`

MySQL视图、存储过程复习

    博客分类:
  • SQL
阅读更多

1、创建一个学生表、教师表

CREATE TABLE `student` (
  `studentID` int(11) NOT NULL AUTO_INCREMENT COMMENT '学生ID',
  `teacherID` int(11) NOT NULL COMMENT '教师ID',
  `studentName` varchar(25) NOT NULL COMMENT '学生姓名',
  `studentAge` int(2) NOT NULL COMMENT '学生年龄',
  PRIMARY KEY (`studentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

CREATE TABLE `teacher` (
  `teacherID` int(11) NOT NULL AUTO_INCREMENT COMMENT '教师ID',
  `teacherName` varchar(25) NOT NULL COMMENT '教师姓名',
  `teacherAge` int(2) NOT NULL COMMENT '教师年龄',
  PRIMARY KEY (`teacherID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

 2、向表中插入数据



 



 

3、创建视图

CREATE VIEW `student_teacher` AS 
SELECT s.studentName, t.teacherName
FROM student s, teacher t
where s.teacherID = t.teacherID

 4、使用视图

select * from student_teacher

 5、创建存储过程——每一次执行该过程,都向s_t表中插入所有的学生、教师信息

首先创建s_t表

CREATE TABLE `s_t` (
  `s_t_ID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `studentID` int(11) NOT NULL COMMENT '学生ID',
  `studentName` varchar(25) NOT NULL COMMENT '学生姓名',
  `studentAge` int(2) NOT NULL COMMENT '学生年龄',
  `teacherID` int(11) NOT NULL COMMENT '教师ID',
  `teacherName` varchar(25) NOT NULL COMMENT '教师姓名',
  `teacherAge` int(2) NOT NULL COMMENT '教师年龄',
  PRIMARY KEY (`s_t_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 创建存储过程

BEGIN

	/*定义变量	开始*/
	DECLARE v_no_more   	INT           DEFAULT 0;
  DECLARE v_error     	INT           DEFAULT 0;

	DECLARE	v_studentID 	INT						DEFAULT 0;
	DECLARE	v_studentName	VARCHAR(25)		DEFAULT "";
	DECLARE	v_studentAge	INT						DEFAULT	0;
	DECLARE	v_teacherID		INT						DEFAULT	0;
	DECLARE	v_teacherName	VARCHAR(25)		DEFAULT	"";
	DECLARE	v_teacherAge	INT						DEFAULT	0;
	/*定义变量	结束*/

	DECLARE cur_s_t	CURSOR FOR
		SELECT 
			s.studentID,
			s.studentName,
			s.studentAge,
			t.teacherID,
			t.teacherName,
			t.teacherAge
		FROM student s
		INNER JOIN teacher t
		WHERE s.teacherID = t.teacherID;
		
	DECLARE CONTINUE HANDLER FOR NOT FOUND      SET v_no_more = 1;
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION   SET v_error = 1;

	-- 开启事务
	OPEN cur_s_t;
	FETCH cur_s_t INTO v_studentID,v_studentName,v_studentAge,v_teacherID,v_teacherName,v_teacherAge;
	WHILE v_no_more != 1 DO
		INSERT INTO s_t (studentID,studentName,studentAge,teacherID,teacherName,teacherAge) VALUES (v_studentID,v_studentName,v_studentAge,v_teacherID,v_teacherName,v_teacherAge);
		FETCH cur_s_t INTO v_studentID,v_studentName,v_studentAge,v_teacherID,v_teacherName,v_teacherAge;
	END WHILE;

	CLOSE cur_s_t;
	-- 结束事务

	-- 事务处理
	IF v_error = 1 THEN  
			ROLLBACK;  
	ELSE  
			COMMIT;  
	END IF;

END

 

  • 大小: 5.4 KB
  • 大小: 4.6 KB
1
5
分享到:
评论

相关推荐

    MySQL期末复习材料。。

    MySQL期末复习资料主要涵盖数据库管理系统MySQL的基础知识,包括数据类型、数据库操作、SQL语句、存储程序、事务处理、锁机制以及引擎特性等方面。以下是这些知识点的详细解释: 1. **数据类型**:MySQL中的数据...

    关于MySQL数据库期末复习资料

    除此之外,还应熟悉数据的插入(INSERT)、查询(SELECT)、更新(UPDATE)和删除(DELETE)操作,以及索引的创建和使用,事务处理,视图,存储过程,触发器等高级特性。理解并熟练掌握这些内容,将为你的MySQL...

    MYSQL复习题及答案.pdf

    - `Create procedure`:创建存储过程的命令,存储过程是为执行特定操作而编写的SQL代码。 6. 用户权限管理 - `GRANT ALL PRIVILEGES ON * TO test@%;`:这是一个SQL命令,用于给用户test授予所有权限,可以对任意...

    mysql计算机二级二轮复习

    MySQL是一种关系型数据库管理系统,广泛应用于Web开发、数据存储和分析等领域。本文总结了MySQL数据库管理系统的相关知识点,包括表管理、视图、索引、外键、触发器等。 表管理 在 MySQL 中,表是存储数据的基本...

    燕十八 刘道成 mysql 复习秘籍.html

    6. **视图与存储过程**:讨论视图的创建与使用,以及存储过程的概念,如何编写和调用存储过程,提高代码复用和安全性。 7. **触发器与事件调度器**:学习如何使用触发器来实现数据的自动更新和验证,以及利用事件...

    mysql复习资料

    以下是对MySQL复习资料中的关键知识点的详细解释: 1. **创建数据库**:使用`CREATE DATABASE`语句来创建数据库,同时需要考虑选择合适的存储引擎,如InnoDB(支持事务处理和外键)或MyISAM(不支持事务,但读取...

    MYSQL基础复习资料(上)

    本资源旨在对mysql的基础知识进行总结和复习,涵盖了mysql的基本概念、数据类型、SQL语句、索引、视图、事务处理、全文本搜索等方面的知识。 一、基本概念 mysql是一个开源的关系型数据库管理系统,支持多种编程...

    MySQL复习.rar

    在本复习资料中,我们将深入探讨MySQL的核心概念、语法、管理和优化等方面,以帮助你全面掌握这一重要的数据库技术。 一、MySQL基础 1. 数据库与表:MySQL中的数据库是数据的集合,而表则是存储数据的结构。创建、...

    MYSQL考试复习资料.zip

    这份"MYSQL考试复习资料.zip"压缩包很可能是为了帮助考生准备MySQL相关的认证考试,如MySQL Certified Developer或MySQL Certified Administrator等。下面我们将深入探讨MySQL的一些核心概念和重要知识点。 1. ...

    mysql练习复习最佳帮手

    ### MySQL练习复习最佳帮手知识点解析 #### 一、数据库概述 **1.1 数据存储方式** - **文件系统**:传统的数据管理方法之一,通过操作系统提供的文件管理功能来保存和检索数据。 - **数据库系统**:现代数据管理的...

    MySQL必知必会复习笔记

    ### MySQL必知必会复习笔记 #### 一、基本概念 在MySQL的学习过程中,了解基本概念是基础中的基础。这包括但不限于数据类型的选择、表结构的设计等。 1. **数据类型**:MySQL提供了多种数据类型,如整型、浮点型...

    MySQL8.0认证 ocp(175题)

    8. **视图与存储过程的安全性**:掌握视图的创建和使用,理解权限系统,包括GRANT和REVOKE命令,以及用户账户管理。 9. **备份与恢复**:熟悉mysqldump、mysqlpump工具进行全量和增量备份,以及如何使用XtraBackup...

    mysql复习资料.zip

    MySQL支持多种存储引擎,如InnoDB(支持事务处理和外键)、MyISAM(读写速度快,不支持事务)、MEMORY(数据存储在内存中)等。选择合适的存储引擎能优化数据库的读写效率和并发性能。 6. **事务处理**: InnoDB...

    mysql数据库笔试题复习(一).doc.pdf

    【MySQL数据库核心知识点】 ...这些知识点涵盖了MySQL数据库的基础和进阶概念,对于准备数据库笔试或面试的人员来说是非常重要的复习内容。理解并掌握这些知识点,能够有效提升在实际工作中处理数据库问题的能力。

    尚硅谷mysql笔记.zip

    这份笔记可能包含了从基础概念到高级特性的全面讲解,包括但不限于SQL语言、数据类型、数据库设计、索引、事务处理、视图、存储过程和触发器等。 1. SQL语言基础:SQL是Structured Query Language的缩写,是用于...

    MySQL试题-测试、复习、查看.pdf

    在本资源中,我们学习了 MySQL 数据库的设计、创建表、插入数据、基本查询、索引和约束、正则查询、视图和存储过程、数据库安全等知识点。这些知识点是 MySQL 数据库开发的基础,对于后续的学习和开发具有重要的意义...

    MySQL+复习笔记+基础部分

    以下是对"MySQL+复习笔记+基础部分"所涵盖的知识点的详细解释: 1. **数据库概述**: - 数据库是一种组织和存储数据的系统,它提供了数据的结构化、安全性和可访问性。MySQL是一个开源、免费的SQL数据库,具有高...

    MYSQL学习.edf

    mysql基础学习的知识点总结大纲edf电子笔记版。包括数据库mysql的简介、DQl语言、DMl语言、DDl语言、TCl语言以及视图、变量、存储过程和函数、流程控制结构一系类的总结

    MySQL从基础到精通视频教程.zip

    09-存储关系 10-建立关系表 11-连接查询 12-总结 3.MySQL高级 视频 01-复习_recv 02-关联查询_recv 03-自关联_recv 04-视图_recv 05-自关联查询_recv 06-事务_recv 07-索引_recv 08-总结_recv 4.MySQL与Python交互 ...

Global site tag (gtag.js) - Google Analytics