千家信息网

Mysql数据库VIEW视图的详细介绍

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文主要给大家介绍Mysql数据库VIEW视图的详细介绍,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下Mysql数据库VIEW视图的详细介绍吧
千家信息网最后更新 2026年11月01日Mysql数据库VIEW视图的详细介绍

本文主要给大家介绍Mysql数据库VIEW视图的详细介绍,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下Mysql数据库VIEW视图的详细介绍吧。

一、简介

由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:

  • 1、是一种数据库管理系统

  • 2、是一种关联数据库管理系统

  • 3、是一种开放源码软件,且有大量可用的共享MySQL软件

  • 4、MySQL数据库云服务器具有快速、可靠和易于使用的特点

  • 5、MySQL云服务器工作在客户端/云服务器模式下,或嵌入式系统中


  • InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。


二、VIEW视图 (虛表)

2.1.视图VIEW命令简介:

VIEW视图就是存储下来的SELECT语句数据

1.创建视图命令格式:

CREATE

[OR REPLACE]

[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

[DEFINER = { user | CURRENT_USER }]

[SQL SECURITY { DEFINER | INVOKER }]

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]

格式:CREATE VIEW view_name AS select_statement 创建一个名为view_name

视图,视图的内容,是select语句查询出来的内容。

Usage: CREATE VIEW sct AS SELECT Name,Cname,Tname FROM students,courses,teachers WHERE

students.CID1=courses.CID AND courses.CID=teachers.TID;

把查询students,courses,teachers表中CID相等的数据存储在sct视图中。


2.命令功能:

对数据库的SELECT数据进行存储为视图,视图也是相当于一个虚表,视图存储的SELECT语句中的表叫基表,视图不能修改,只能基于基表进行修改。所以一般不建议MySQL创建视图。


3.命令参数:

DISTING 独特的,不重复的

SELECT [DISTINCT] * FROM tb_name WHERE qualification;

从tb_name表中选择符合条件的独特的不重复 的条目。


4. 实例

1.查看所创建的表是如何创建的;

mysql> SHOW CREATE TABLE class \G;

*************************** 1. row ***************************

Table: class

Create Table: CREATE TABLE `class` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`Name` char(20) NOT NULL,

`Age` tinyint(4) NOT NULL,

`Gender` varchar(10) NOT NULL,

PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gbk

1 row in set (0.00 sec)


ERROR:

No query specified


三、直接不登录mysql客户端,实现修改mysql数据库中的数据

[root@lamp ~]# mysql -e 'CREATE DATABASE edb;' 直接建立数据库edb

[root@lamp ~]# mysql -e 'SHOW DATABASES;'

+--------------------+

| Database |

+--------------------+

| information_schema |

| edb |

| hellodb |

| mydb |

| mysql |

+--------------------+

[root@lamp ~]# mysql -e 'DROP DATABASE edb;' #直接删除edb数据库

[root@lamp ~]# mysql -e 'SHOW DATABASES;'

+--------------------+

| Database |

+--------------------+

| information_schema |

| hellodb |

| mydb |

| mysql |

| performance_schema |

| students |

| test |

| testdb |

+--------------------+


[root@lamp ~]# mysql -e 'SELECT * FROM students.class;'

#不登录mysql客户端,直接查询students数据库中class表中的数据。

+----+-------------+-----+--------+

| ID | Name | Age | Gender |

+----+-------------+-----+--------+

| 1 | Yang Guo | 22 | |

| 2 | Guo Jing | 46 | |

| 3 | Xiao Longnv | 18 | |

| 4 | Huang Rong | 40 | |

+----+-------------+-----+--------+


三、自动生成随机数据值,用于测试

[root@lamp ~]# cat autoinsert.sh

#!/bin/bash

function rand(){

min=$1

max=$(($2-$min+1))

num=$(date +%s%N)

echo $(($num%$max+$min))

}

Name="stu"

for i in {1..11000}

do

Agernd=$(rand 1 10)

Genderrnd=$(rand 1 2)

CID1rnd=$(rand 1 10)

CID2rnd=$(rand 1 20)

TIDrnd=$(rand 1 10)

CTime=$(date "+%Y-%m-%d %H:%M:%S")

mysql -e "INSERT INTO jiaowu.students (Name,Age,Gender,CID1,CID2,TID,CreateTime) VALUES ('$Name$i','$Agernd','$Genderrnd','$CID1rnd','$CID2rnd','$TIDrnd','$CTime' )"

done

exit 0


[root@lamp ~]# mysql -e "select COUNT(*) from jiaowu.students;"

+----------+

| COUNT(*) |

+----------+

| 11034 |

+----------+


附1:shell 生成指定范围随机数与随机字符串


1.使用系统的 $RANDOM 变量


[plain] view plain copy

  1. fdipzone@ubuntu:~$ echo $RANDOM

  2. 17617

$RANDOM 的范围是 [0, 32767]


如需要生成超过32767的随机数,可以用以下方法实现。

例:生成400000~500000的随机数


[plain] view plain copy

  1. #!/bin/bash

  2. function rand(){

  3. min=$1

  4. max=$(($2-$min+1))

  5. num=$(($RANDOM+1000000000)) #增加一个10位的数再求余

  6. echo $(($num%$max+$min))

  7. }

  8. rnd=$(rand 400000 500000)

  9. echo $rnd

  10. exit 0


#!/bin/bashecho $(($RANDOM%50+1))


2.使用date +%s%N

例:生成1~50的随机数


[plain] view plain copy

  1. #!/bin/bash

  2. function rand(){

  3. min=$1

  4. max=$(($2-$min+1))

  5. num=$(date +%s%N)

  6. echo $(($num%$max+$min))

  7. }

  8. rnd=$(rand 1 50)

  9. echo $rnd

  10. exit 0


3.使用/dev/random 和 /dev/urandom


/dev/random 存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待。

/dev/urandom 非阻塞随机数发生器,读取操作不会产生阻塞。

例:使用/dev/urandom生成100~500的随机数,使用urandom避免阻塞。


[plain] view plain copy

  1. #!/bin/bash

  2. function rand(){

  3. min=$1

  4. max=$(($2-$min+1))

  5. num=$(cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}')

  6. echo $(($num%$max+$min))

  7. }

  8. rnd=$(rand 100 500)

  9. echo $rnd

  10. exit 0


4.使用linux uuid


uuid 全称是通用唯一识别码,格式包含32个16进制数字,以'-'连接号分为5段。形式为8-4-4-4-12 的32个字符。


[plain] view plain copy

  1. fdipzone@ubuntu:~/shell$ cat /proc/sys/kernel/random/uuid

  2. fd496199-372a-403e-8ec9-bf4c52cbd9cd

例:使用linux uuid 生成100~500随机数


[plain] view plain copy

  1. #!/bin/bash

  2. function rand(){

  3. min=$1

  4. max=$(($2-$min+1))

  5. num=$(cat /proc/sys/kernel/random/uuid | cksum | awk -F ' ' '{print $1}')

  6. echo $(($num%$max+$min))

  7. }

  8. rnd=$(rand 100 500)

  9. echo $rnd

  10. exit 0


5.生成随机字符串


例:生成10位随机字符串


[plain] view plain copy

  1. #使用date 生成随机字符串

  2. date +%s%N | md5sum | head -c 10

  3. #使用 /dev/urandom 生成随机字符串

  4. cat /dev/urandom | head -n 10 | md5sum | head -c 10

看完以上关于Mysql数据库VIEW视图的详细介绍,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

数据 视图 数据库 生成 随机数 字符 系统 存储 字符串 命令 空间 阻塞 内容 客户 客户端 服务器 格式 管理系统 语句 服务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司排名 科技企业和互联网企业 互联网科技视频 艾特科技互联网 无线互联网科技 深圳国际航运科技和互联网 福建科技产业互联网发展 浙江互联网科技研学营 亳州好赞互联网科技有限公司 天津腾达互联网科技有限公司 长沙茂晟互联网科技有限公司 无锡工业互联网科技有限公司 美国互联网科技实力 黑科技 体验场景 互联网大会 广东工业互联网大赛深圳学泰科技 互联网相关科技技术 广东鹅鹅鹅互联网科技有限公司 版纳互联网科技选哪家 现代互联网科技公司 杭州科技互联网公司有哪些 中智农互联网科技 深圳市人人互联网科技有限公司 重庆互联网络科技 迪庆互联网科技招生 广州有谷有贝互联网科技有限公司 济南小医互联网科技有限公司招聘 互联网科技职业技能培训学校 平安好医生打造互联网科技医疗 恒生互联网科技趋势 颐高云石互联网科技
0