视图和内置函数的理解(很奈斯...)

2023-10-29 03:30

本文主要是介绍视图和内置函数的理解(很奈斯...),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、视图介绍
    • 二、视图作用
    • 三、mysql内置函数
    • 四、自主练习
    • 五、mysql图形界面软件
    • 六、数据备份
    • 七、自主练习

一、视图介绍

视图,就是一张虚拟表/临时表,因为视图中表的结构和内容不是通过建表语句创建的,而是根据查询确定的。
创建视图语法:
create view 视图名称 as select查询语句;
create view goods_view as select goods_id,goods_name,c.cat_name from goods g left join category c on g.cat_id = c.cat_id;
在这里插入图片描述
删除视图的语法:
drop view 视图名称;

视图特点:
1.视图是虚拟表,因为视图中的数据来自于select查询
2.视图中数据的变化会影响到原表(基表),原表数据的变化也会影响到视图
mysql> update myview set comm=200 where empno=7369; //修改视图,对基表都有变化
mysql> update emp set comm=100 where empno=7369; //修改基表,对视图也有变化

二、视图作用

在这里插入图片描述
1、安全。一些数据表有着重要的信息。有些字段是保密的,不能让用户直接看到。这时就可以创建一个视图,在这张视图中只保留一部分字段。这样,用户就可以查询自己需要的字段,不能查看保密的字段。

2、性能。关系数据库的数据常常会分表存储,使用外键建立这些表的之间关系。这时,数据库查询通常会用到连接(JOIN)。这样做不但麻烦,效率相对也比较低。如果建立一个视图,将相关的表和字段组合在一起,就可以避免使用JOIN查询数据。

3、灵活。如果系统中有一张旧的表,这张表由于设计的问题,即将被废弃。然而,很多应用都是基于这张表,不易修改。这时就可以建立一张视图,视图中的数据直接映射到新建的表。这样,就可以少做很多改动,也达到了升级数据表的目的

三、mysql内置函数

这些内置的函数不区分大小写
在这里插入图片描述
current_date、current_time()、current_timestamp()
在这里插入图片描述
date(), year(),month(),day(),hour(),minute(),second()
分别获取当前的日期部分、年份、月份、日期、小时、分钟、秒
在这里插入图片描述
在这里插入图片描述
date_add()、date_sub()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、自主练习

写出sql语句即可
创建一张留言表:
mysql> create table mes(id int , content varchar(256), sendtime datetime);
insert into mes values(3,”今天天气好晴朗”,” 2021-06-04 14:10:00”);
insert into mes values(1,”今天天气好晴朗”,” 2021-06-04 13:55:00”);

1.显示所有留言信息,发布日期只显示 日期,不用显示时间.
2.请查询在10分钟内发布的帖子
当前的时间:
发布帖子的时间:
当前时间 – 发布帖子的时间 < 10
注意:不仅要比较分钟,还要比较小时部分
在这里插入图片描述
where hour(timediff(now(),sendtime)) < 0 and minute(timediff(now(),sendtime))<10
3.请在mysql 的sql语句中求出 2020-11-11 和 1990-1-1 相差多少天
select datediff(“2020-11-11”,” 1990-1-1”);
4.请检索出1980年入职的雇员.(写出sql语句即可)

在这里插入图片描述
5.请检索出1980年2月份入职的雇员(写出sql语句即可)
获取月份:month()函数获取月份
年份是1981,并且月份是2月

在这里插入图片描述

五、mysql图形界面软件

  1. Navicat
  2. SQLyog
    这两个软件称为mysql客户端软件,用来连接mysql数据库服务器的,充当的作用和cmd命令行工具一样
    这里一Navicat为例进行操作:
  3. 先解压,解压之后将目录拷贝到D盘

在这里插入图片描述
2.将Navicat.exe发送到—桌面快捷方式
在这里插入图片描述
3.使用Navicat连接mysql数据库
在这里插入图片描述
4.使用Navicat创建数据库
在这里插入图片描述
5.使用Navicat创建数据表测试一下
双击数据库----新建表
在这里插入图片描述
在这里插入图片描述
打开数据表,向里面添加测试数据
在这里插入图片描述
在这里插入图片描述
要想查询还是得自己写sql语句
在这里插入图片描述
在这里插入图片描述

六、数据备份

右击数据库—转储SQL文件—
在这里插入图片描述
在这里插入图片描述
八、数据库导入
新建一个空的数据库,右击空的数据库----运行SQL文件
在这里插入图片描述
在这里插入图片描述

七、自主练习

1.使用Navicat创建数据库,名称为:ceshi,编码为:utf8,校对规则:utf8_general_ci;
2.使用Navicat在ceshi数据库下创建数据表,名称为:user
在这里插入图片描述
3.添加2条测试数据:
4.将ceshi数据库备份到桌面,文件名为:ceshi.sql
5.删除ceshi数据库
6.使用Navicat将桌面的ceshi.sql文件导入到mysql数据库服务器中

这篇关于视图和内置函数的理解(很奈斯...)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/297959

相关文章

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

pandas使用apply函数给表格同时添加多列

《pandas使用apply函数给表格同时添加多列》本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、Pandas使用apply函数给表格同时添加多列二、应用示例一、Pandas使用apply函

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

Python中Namespace()函数详解

《Python中Namespace()函数详解》Namespace是argparse模块提供的一个类,用于创建命名空间对象,它允许通过点操作符访问数据,比字典更易读,在深度学习项目中常用于加载配置、命... 目录1. 为什么使用 Namespace?2. Namespace 的本质是什么?3. Namesp

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

深入理解MySQL流模式

《深入理解MySQL流模式》MySQL的Binlog流模式是一种实时读取二进制日志的技术,允许下游系统几乎无延迟地获取数据库变更事件,适用于需要极低延迟复制的场景,感兴趣的可以了解一下... 目录核心概念一句话总结1. 背景知识:什么是 Binlog?2. 传统方式 vs. 流模式传统文件方式 (非流式)流

深入理解Go之==的使用

《深入理解Go之==的使用》本文主要介绍了深入理解Go之==的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录概述类型基本类型复合类型引用类型接口类型使用type定义的类型不可比较性谈谈map总结概述相信==判等操作,大