首页 > 数据库 >MYSQL学习之视图

MYSQL学习之视图

时间:2022-10-05 14:04:51浏览次数:69  
标签:rows affected 0.00 视图 学习 sec MYSQL OK Query

MYSQL学习之视图_视图

(一)什么是视图??

   视图就是站在不同的角度取看待同一份数据。

(二)基本操作

表复制:

mysql>create table dept2 as select * from dept;

#复制
mysql> create table scholar1 as select * from scholor;
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0

#查看
mysql> select * from scholar1;
+----+------+
| id | name |
+----+------+
| 1 | 小张 |
| 2 | 小李 |
| 3 | 小明 |
+----+------+
3 rows in set (0.00 sec)

I. 创建视图

mysql> create view scholar1_view as select * from scholar1;
Query OK, 0 rows affected (0.01 sec)

II.删除视图

mysql> drop view scholar1_view;
Query OK, 0 rows affected (0.01 sec)

注意:只有DOL语句才能够以view的形式创建

III.视图的作用

       可以面向视图对象进行增删改查,对视图对象的增删改查,会导致原表数据被操作(视图和原表变化一致)

mysql> create view scholar1_view as select * from scholar1;
Query OK, 0 rows affected (0.01 sec)

#面向视图查询
mysql> select * from scholar1_view;
+----+------+
| id | name |
+----+------+
| 1 | 小张 |
| 2 | 小李 |
| 3 | 小明 |
+----+------+
3 rows in set (0.00 sec)
#面向视图插入
mysql> insert into scholar1_view(id,name)values(4,'小红');
Query OK, 1 row affected (0.01 sec)
#面向视图查询
mysql> select * from scholar1_view;
+----+------+
| id | name |
+----+------+
| 1 | 小张 |
| 2 | 小李 |
| 3 | 小明 |
| 4 | 小红 |
+----+------+
4 rows in set (0.00 sec)
#查询原表数据
mysql> select * from scholar1;;
+----+------+
| id | name |
+----+------+
| 1 | 小张 |
| 2 | 小李 |
| 3 | 小明 |
| 4 | 小红 |
+----+------+
4 rows in set (0.00 sec)

#面向视图删除
mysql> delete from scholar1_view;
Query OK, 4 rows affected (0.01 sec)
#面向视图查询
mysql> select * from scholar1_view;
Empty set (0.00 sec)
#查询原表数据
mysql> select * from scholar1;
Empty set (0.00 sec)


mysql> create view emp_dept_view as select e.ename,e.sal,d.dname from emp e join dept d on e.deptno =d.deptno;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from emp_dept_view;
+--------+---------+------------+
| ename | sal | dname |
+--------+---------+------------+
| SMITH | 800.00 | RESEARCH |
| ALLEN | 1600.00 | SALES |
| WARD | 1250.00 | SALES |
| JONES | 2975.00 | RESEARCH |
| MARTIN | 1250.00 | SALES |
| BLAKE | 2850.00 | SALES |
| CLARK | 2450.00 | ACCOUNTING |
| SCOTT | 3000.00 | RESEARCH |
| KING | 5000.00 | ACCOUNTING |
| TURNER | 1500.00 | SALES |
| ADAMS | 1100.00 | RESEARCH |
| JAMES | 950.00 | SALES |
| FORD | 3000.00 | RESEARCH |
| MILLER | 1300.00 | ACCOUNTING |
+--------+---------+------------+
14 rows in set (0.00 sec)

mysql> update emp_dept_view set sal=1000 where dname ='ACCOUNTING';
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> select * from emp_dept_view;
+--------+---------+------------+
| ename | sal | dname |
+--------+---------+------------+
| SMITH | 800.00 | RESEARCH |
| ALLEN | 1600.00 | SALES |
| WARD | 1250.00 | SALES |
| JONES | 2975.00 | RESEARCH |
| MARTIN | 1250.00 | SALES |
| BLAKE | 2850.00 | SALES |
| CLARK | 1000.00 | ACCOUNTING |
| SCOTT | 3000.00 | RESEARCH |
| KING | 1000.00 | ACCOUNTING |
| TURNER | 1500.00 | SALES |
| ADAMS | 1100.00 | RESEARCH |
| JAMES | 950.00 | SALES |
| FORD | 3000.00 | RESEARCH |
| MILLER | 1000.00 | ACCOUNTING |
+--------+---------+------------+
14 rows in set (0.00 sec)

mysql> select * from emp;
+-------+--------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
+-------+--------+-----------+------+------------+---------+---------+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 1000.00 | NULL | 10 |
| 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 1000.00 | NULL | 10 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
| 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1000.00 | NULL | 10 |
+-------+--------+-----------+------+------------+---------+---------+--------+
14 rows in set (0.00 sec)

说明:    

①对于比较复杂且需要被多次反复使用的SQL语句,可以使用视图对象,简化开发,并且非常有利于后期的维护,在修改的时候,只需修改视图对象所映射的SQL语句即可②使用视图和使用表是一样的,同样可以像对表一样对视图对象进行增删改查。

③视图对象存在在硬盘上,不会消失。

④视图对应的语句只能是DQL语句

基本操作:增删改查(CRUD)

增加(Create)、读取数据(Retrieve)、更新(Update)、删除(Delete)  

DBA常用命令:

数据的导出

在windows的dos窗口中

命令:mysqldump 数据库名<指定表> >导出的物理地址 -uroot -p密码

MYSQL学习之视图_视图_02

效果:

MYSQL学习之视图_视图_03

数据的导入?

命令:   source 物理地址

说明:先登录到MYSQL服务器上,然后在使用该命令

步骤如下:

①  登录到MYSQL

②  创建一个新的数据库

③  使用该数据库

④通过source来进行初始化数据

#创建一个空数据库
mysql> create database bjpowernode1;
Query OK, 1 row affected (0.01 sec)

#使用该数据库
mysql> use bjpowernode1;
Database changed

#导入数据进行初始化库
mysql> source F:\test\bjpowernode.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.02 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 220 rows affected (0.00 sec)
Records: 220 Duplicates: 0 Warnings: 0

mysql> show tables;
+------------------------+
| Tables_in_bjpowernode1 |
+------------------------+
| bjpowernode |
| dept |
| emp |
| emp_dept_view |
| flower |
| salgrade |
| scholar1 |
| scholar1_view |
| scholor |
| t_class |
| t_student |
| t_user |
| volunteer |
| volunteer1 |
+------------------------+
14 rows in set (0.00 sec)

标签:rows,affected,0.00,视图,学习,sec,MYSQL,OK,Query
From: https://blog.51cto.com/u_15314328/5732598

相关文章

  • 通过JDBC进行简单的增删改查(以MySQL为例)
    目录前言:什么是JDBC一、准备工作(一):MySQL安装配置和基础学习二、准备工作(二):下载数据库对应的jar包并导入三、JDBC基本操作(1)定义记录的类(可选)(2)连接的获取(3)insert(4)upda......
  • 论文翻译 | LS-Net:单目双目视觉的非线性最小二乘学习算法
    1摘要在本文中,我们提出了最小二乘网络,一种神经非线性最小二乘优化算法,即使在逆境中也能有效地优化这些代价函数.与传统方法不同,所提出的求解器不需要hand-crafted的正则......
  • Rust学习 - Sized trait
    Sizedtrait的作用是什么?编译期用它来识别在编译期确定大小的类型。Sizedtrait是空trait,仅仅作为标签trait供编译期使用。真正起“打标签”作用的是属性#[lang="s......
  • C语言学习记录3
    #每日美图分享##include<stdio.h>intmain(){inti=1;while(i<=10){if(i==5)continue;printf("%d\n",i);i++;}return0;}该代码的运行结果为:1234而......
  • MySQL的字段默认null对唯一索引的影响详解
    这篇文章主要为大家介绍了MySQL的字段默认null对唯一索引的影响详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪在日常业务开发中,会经常遇到需......
  • go学习
    一、接口定义概念:Interface类型可以定义一组方法,不需要实现,并且不能包含任何变量,称之为接口。接口不需要显式的实现,只需要一个变量,含有接口类型中的所有方法,那......
  • STL学习笔记
    目录STL介绍什么是STL泛性编程STL基本组成STL序列式容器什么是STL容器什么是迭代器什么是序列式容器array容器vector容器deque容器list容器STL关联式容器pair容器map容器mu......
  • 学习Python,一路绕来绕去推荐给你的教程!
         说实话,学习一门语言不难。但是,但是能用该语言编写程序做项目,又是另外一回事。一路走来,java,Android,go,c#,c,ASM,c++,pascal,Basic,foxpro,QT,HTML,Rust,Python,Ruby,JS,PHP等......
  • 【学习笔记】数据库用户管理和备份
    数据库用户管理和备份 用户管理可视化管理用navicat可视化管理软件进行用户的添加删除和权限的管理新建用户连接用户  sql命令操作对用户的......
  • 【分享】从Mybatis源码中,学习到的10种设计模式
    作者:小傅哥​沉淀、分享、成长,让自己和他人都能有所收获!......