MySQL数据库数据视图

目录
  • 一、 数据视图
  • 二、数据视图操作
    • 创建视图
    • 修改视图数据
    • 修改视图列明
    • 删除视图
  • 三、数据的备份与回复
    • liunx备份
    • mysql备份
  • 四、 MySQL存储过程和函数
    • 概念
  • 五、存储过程操作
    • 初始数据
    • 创建过程
    • 调用存储过程
    • 查找存储过程
    • 删除存储过程
    • 其他语法
  • 六、 存储函数

一、 数据视图

视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。我们可以将视图看成是一个移动的窗口,从这个窗口中可以看到感兴趣的数据。

二、数据视图操作

创建视图

// 标准语法: CREATE VIEW 视图名称 [(列名列表)] AS 查询语句;

// 创建city_country视图,保存城市和国家的信息(使用指定列名)
CREATE VIEW city_country(city_id,city_name,country_name)
AS
SELECT c1.id, c1.name, c2.name FROM city c1, country c2 WHERE c1.cid = c2.id;

修改视图数据

// 标准语法: UPDATE 视图名称 SET 列名=值 WHERE 条件;

// 注意:修改视图数据后,源表中的数据也会随之修改
UPDATE city_country SET city_name="深圳" WHERE city_name="北京";

修改视图列明

// 标准语法: ALTER VIEW 视图名称 (列名列表) AS 查询语句; 

ALTER VIEW city_country (city_id, city_name, NAME) AS
SELECT c1.id, c1.name, c2.name
FROM  city c1, country c2
WHERE c1.cid = c2.id;

删除视图

// 标准语法 DROP VIEW [IF EXISTS] 视图名称;
// 删除city_country视图

DROP VIEW IF EXISTS city_country;

三、数据的备份与回复

liunx备份

备份文件:

mysqldump -u root -p 数据库名称 > 文件保存路径

还原:

source 文件保存路径

mysql备份

备份-> 导出备份数据库 还原-> 导入备份文件

四、 MySQL存储过程和函数

概念

  • 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合

好处:

  • 可以重复使用,减轻开发人员的工作量
  • 减少网络流量,调用只需要传递参数名和参数即可
  • 减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率
  • 将部分逻辑在数据库层进行了处理,减少业务层代码

区别:

  • 函数必须有返回值
  • 存储过程没有返回值

五、存储过程操作

初始数据

-- 创建学生表
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20),
	age INT,
	gender VARCHAR(5),
	score INT
);
-- 添加数据
INSERT INTO student VALUES (NULL,'张三',23,'男',95),(NULL,'李四',24,'男',98),
(NULL,'王五',25,'女',100),(NULL,'赵六',26,'女',90);
-- 按照性别进行分组,查询每组学生的总成绩。按照总成绩的升序排序
SELECT gender, SUM(score) getSum FROM student GROUP BY gender ORDER BY getSum ASC;

创建过程

// 标准语法
//
DELIMITER $
    -- 标准语法
CREATE PROCEDURE 存储过程名称(参数列表)
BEGIN
    SQL 语句列表;
END $

-- 修改分隔符为分号
DELIMITER ;

// 创建stu_group()存储过程,封装 分组查询总成绩,并按照总成绩升序排序的功能
DELIMITER$
CREATE PROCEDURE stu_group()
BEGIN
	SELECT gender, SUM(score) getSum FROM student GROUP BY gender ORDER BY getSum ASC;
END$
DELIMITER ;

调用存储过程

// CALL 存储过程名称(实际参数);
CALL stu_group();

查找存储过程

 // 标准语法: SELECT * FROM mysql.proc WHERE db='数据库名称';
SELECT * FROM mysql.proc WHERE db='demoMysql';

删除存储过程

//标准语法: DROP PROCEDURE [IF EXISTS] 存储过程名称;
DROP PROCEDURE IF EXISTS stu_group;

其他语法

// 定义变量
// 语法:DECLARE 变量名 数据类型 [DEFAULT 默认值];
// 变量赋值
// 语法一:SET 变量名 = 变量值;
// 语法二:SELECT 列名 INTO 变量名 FROM 表名 [WHERE 条件];
// 判断语句
// if语句
// IF 判断条件1 THEN 执行的sql语句1;
// [ELSEIF 判断条件2 THEN 执行的sql语句2;]
// ...
// [ELSE 执行的sql语句n;]
// END IF;
DELIMITER $

CREATE PROCEDURE pro_test2()

BEGIN
	-- 定义变量
	DECLARE NAME VARCHAR(20);
        DECLARE totalScore INT;
        DECLARE info VARCHAR(10);
	-- 为变量赋值
	SET NAME = '赋值方式1';
        SELECT SUM(score) INTO totalScore FROM student;

        IF totalScore > 500 THEN
		SET info='总分超过500';
        END IF;
        -- 使用变量
	SELECT NAME,totalScore,info;
END$
DELIMITER;

// 参数传递
// 标准语法: CREATE PROCEDURE 存储过程名称([IN|OUT|INOUT] 参数名 数据类型)

DELIMITER $
CREATE PROCEDURE pro_test5(IN total INT, OUT info VARCHAR(10))
BEGIN
	-- 对总成绩判断
	IF total > 380 THEN
		SET info = '学习优秀';
	ELSEIF total >= 320 AND total <= 380 THEN
		SET info = '学习不错';
	ELSE
		SET info = '学习一般';
	END IF;
END$
DELIMITER;

// 调用过程
CALL pro_test5(350,@info);
SELECT @info;

六、 存储函数

其实和存储过程区别不大,主要在于定义的时候用FUNCTION,同时有return

DELIMITER $
CREATE FUNCTION fun_test1()
RETURNS INT // 返回值类型
BEGIN
	DECLARE s_count INT;
	SELECT COUNT(*) INTO s_count FROM student WHERE score > 95;// 条件语句
	RETURN s_count;// 返回结果;

END $
DELIMITER ;
// 调用函数
SELECT fun_test1();

// 删除函数
DROP FUNCTION fun_test1();

到此这篇关于MySQL数据库数据视图的文章就介绍到这了,更多相关SQL数据视图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Mysql数据库高级用法之视图、事务、索引、自连接、用户管理实例分析

    本文实例讲述了Mysql数据库高级用法之视图.事务.索引.自连接.用户管理.分享给大家供大家参考,具体如下: 视图 视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变),方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性. 1.----创建视图: create view 视图名称(一般以v_开头) as 查询语句; 2.----查看视图: select * from 视图名称; 3.----删除视图: dro

  • Sql Server 视图数据的增删改查教程

    一.视图的基本概念 视图是用于查询的另外一种方式. 与实际的表不同,它是一个虚表:因此数据库中只存在视图的定义,而不存在视图中相对应的数据,数据仍然存放在原来的基本表中.视图是一种逻辑对象. 二. 视图能做什么 导出数据: 在导出数据时,常常需要多个表联合查询,这个时候就可以使用视图:转换字段,如把status(0/1 Int类型)字段转换成启用/停用(文字) ,然后用视图保存定义. 数据安全,可以给视图加密. 三.视图操作 3.1 查询数据 (一)准备素材: 使用两张表,其中一张是家电表,另外

  • 简析SQL Server数据库用视图来处理复杂的数据查询关系

    SQL Server数据库用视图来处理复杂的数据查询关系是本文我们主要要介绍的内容,该内容是这样想到的:在辅助教务系统那块的时候,我做的一个页面是对单个老师和整个学院老师的工作量查询,这个操作设计到了三个本数据库中的表和一个不同数据库中的一个教师信息表,如果用普通的SQL语句是非常难实现的,由于我刚开始做的视频播放系统,数据库的表相对比较少,没有涉及到这么复杂的处理关系,刚开始感觉很难. 后来想到用视图可以解决多个表的复杂关系,但是另外一张表是不同数据库的,是否依然能进行操作,经过测试之后,居然

  • sql server判断数据库、表、列、视图是否存在

    1 判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] 2 判断表是否存在 if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [表名] 3 判断存储过程是否存在 if exist

  • 解析SQL Server 视图、数据库快照

    简介数据库快照 数据库快照,正如其名称所示那样,是数据库在某一时间点的视图.是SQL Server在2005之后的版本引入的特性.快照的应用场景比较多,但快照设计最开始的目的是为了报表服务.比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点.快照还可以和镜像结合来达到读写分离的目的.下面我们来看什么是快照. 什么是快照 数据库快照是 SQL Server 数据库(源数据库)的只读静态视图.换句话说,快照可以理解为一个只读的数据库.利用快

  • PostgreSQL数据库视图及子查询使用操作

    目录 视图 创建视图 使用视图 视图更新: 删除视图: 子查询 关联子查询 视图 表里面保存的是实际数据,视图里面保存的是SELECT语句(视图本身不存储数据). 从视图中读取数据,此时视图在内部执行SELECT语句,创建一张临时表. 使用视图的好处:其一,视图不保存数据,节省存储设备容量.其二,将频繁使用的SELECT语句保存成视图,每次使用这些语句时候,不用重复书写,只需调用视图.其三,数据保存到表中,要显式的执行SQL更新语句才能更新数据,而视图中的数据会随着原表的变化自动更新. 创建视图

  • SQLite教程(三):数据表和视图简介

    一.创建数据表: 该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方式来演示SQLite中创建表的各种规则.但是对于一些SQLite特有的规则,我们会给予额外的说明.注:以下所有示例均是在sqlite自带命令行工具中完成的. 1). 最简单的数据表:   复制代码 代码如下: sqlite> CREATE TABLE testtable (first_col integer); 这里需要说明的是,对于自定义数据表表名,如testtable,不能以sqlite_开头,因

  • MySQL数据库数据视图

    目录 一. 数据视图 二.数据视图操作 创建视图 修改视图数据 修改视图列明 删除视图 三.数据的备份与回复 liunx备份 mysql备份 四. MySQL存储过程和函数 概念 五.存储过程操作 初始数据 创建过程 调用存储过程 查找存储过程 删除存储过程 其他语法 六. 存储函数 一. 数据视图 视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式.我们可以将视图看成是一个移动的窗口,从这个窗口中可以看到感兴趣的数据. 二.数据视图操作 创建视图 // 标准语法: CREATE VI

  • MySQL中数据视图操作详解

    目录 1.视图概述 1.1创建视图 1.2视图的查询 2.操作视图 2.1通过视图操作数据 2.2修改视图定义 2.3删除视图 1.视图概述 视图是从一个或多个表(或视图)导出的表.视图与表(有时为与视图区别,也称表为基本表)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表. 视图一经定义,就可以像表一样被查询.修改.删除和更新.使用视图有下列优点: 1.为用户集中数据,简化用户的数据查询和处理

  • Linux下修改MySQL数据库数据文件路径的步骤

    使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysql_data/mysql Linux系统版本:centos7.6 MySQL数据库版本:5.7.25 步骤: 1.创建目标路径 mkdir -p /home/mysql_data 2.关闭MySQL systemctl stop mysqld 3.复制数据文件 cp -arp /var/lib/my

  • shell脚本定时备份MySQL数据库数据并保留指定时间

    公司用到的MySQL数据库,经常有同事通过一顿骚操作把一些关键的配置数据误删,每次恢复都要花上不少时间,于是写了个shell脚本,结合corntab每天凌晨备份数据库,并保留7天. 同样的备份脚本也可用于生产环境MySQL数据库定时备份. 环境:CentOS 7.5 / MySQL 5.7 #!/bin/sh # 数据库账号信息 DB_USER="root" DB_PWD="root" DB_HOST="127.0.0.1" DB_PORT=&q

  • 解决mysql数据库数据迁移达梦数据乱码问题

    受到领导的嘱托,接手了一个java项目,要进行重构,同时了项目的整体建设要满足信创的要求. 那么首先就要满足两点: 1,使用国产数据库达梦8替换mysql数据库 2,使用金蝶中间件替换tomcat进行容器部署 在不懈的努力下,我已在本地的搭建和安装完成达梦8(dm8)数据库,也完成了代码框架更改数据库源,替换达梦数据库的demo验证工作. driverClassName: dm.jdbc.driver.DmDriver url: jdbc:dm://10.0.3.132:5236/XC-SERV

  • Vue实现模糊查询-Mysql数据库数据

    目录 1.需求 2.实现 3.结果 1.需求 输入框中输入数据,根据输入的结果模糊搜索数据库对应内容,实现模糊查询. 2.实现 输入框使用v-model双向绑定查询数据keyWord. <el-input v-model="keyWord" placeholder="请输入关键字搜索" clearable></el-input> <el-button type="success" icon="el-icon

  • 使用python连接mysql数据库数据方式

    目录 1.fetchone/fetchmany/fetchall 2.pandas.read_sql() 前言: 使用python连接mysql数据库数据 有以下两种读取数据的方式推荐: 一种是通过游标,及fetch系列方法进行操作,另一种是通过pandas的read_sql()进行读取并操作.各种方法各有优劣,可根据具体情形,择优选择使用. 示例如下: 1.fetchone/fetchmany/fetchall 获取一条.多条.全部条. import pymysql # 数据库相关信息 dbH

  • JavaWeb实现显示mysql数据库数据

    目录 EMS-员工信息管理系统 创建ems库 创建user表 插入表格数据 创建UserListServlets 使用JDBC连接数据库 部署服务器 EMS-员工信息管理系统 MySQL学习之基础操作总结 MySQL学习之基础命令实操总结 创建ems库 show databases; create database ems; use ems; 创建user表 create table user( id int primary key auto_increment, name varchar(50

  • JavaWeb实现mysql数据库数据的添加和删除

    目录 准备操作 1. 配置mysql环境 2. 创建Servlet Project 3. 创建EMS Package 4. 分别创建Servlet 5. 创建addUser.html 6. 配置web.xml文档 7. 打开服务器并重新部署服务器 8. 效果展示 添加员工数据界面 显示员工数据 添加员工数据 删除员工数据 准备操作 1. 配置mysql环境 连接mysql数据库 2. 创建Servlet Project 3. 创建EMS Package 4. 分别创建Servlet UserLi

  • MYSQL数据库数据拆分之分库分表总结

    数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 数据存储演进思路二:单库多表 随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能.如果使用mysql, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能等待. 可以通过某种方式将user进行水平的切分,产生两个表结构完全一样的

随机推荐