mysql 视图

2023-11-04

目录

1 、视图简介

1.1 视图的含义

1.2 视图的作用

2、创建视图

2.1 创建视图的语法形式

2.2 在单表上创建视图

2.3 在多表上创建视图

3、查看视图

3.1 DESCRIBE语句查看视图基本信息

3.2 SHOW TABLE STATUS语句查看视图基本信息

3.3 SHOW CREATE VIEW语句查看视图详细信息

3.4 在views表中查看视图详细信息

4、修改视图

4.1 CREATE OR REPLACE VIEW语句修改视图

4.2 ALTER语句修改视图

5、更新视图

6、删除视图

7、MySQL中视图和表的区别及联系是什么?


视图是从一个或多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以不用看到整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。

1 、视图简介

视图由数据库中的一个表或多个表导出的虚拟表。其作用是方便用户对数据的操作。

1.1 视图的含义

视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表。视图还可以从已经存在的视图的基础上定义。数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。
下面用一个例子来具体讲解视图的含义。

下面一个公司的数据库中有一张公司部门表department。表中包括部门号(d_id)、部门名称(d_name)、功能(function)和办公地址( address)。department表结构如下:

 还有一张员工表worker。表中包含了员工的工作号(num)、部门号(d_id)、姓名(name)、性别(sex)、出生日期(birthday)和家庭住址( homeaddress)。worker表结构如下:

由于各部门的领导的权力范围不同。因此,各部门的领导只能看到该部门的员工的信息。而且,领导可能不关心员工的生日和家庭住址。为了达到这个目的,可以为各部门的领导建立一个视图。通过该视图,领导只能看到本部门的员工的指定信息。

例如,为生产部门建立一个名为product_view 的视图。通过视图product_view,生产部门的领导只能看到生产部门员工的工作号、姓名和性别等信息。这些department 表的信息和worker表的信息依然存在于各自的表中,而视图product_view中不保存任何数据信息。当department表和 worker表的信息发生改变时,视图product_view展示的信息也发生相应的变化。

如果经常需要从多个表查询指定字段的数据,可以在这些表上建立一个视图。通过这个视图显示这些字段的数据。如果表中修改了与视图相关的字段的名称,可以通过修改视图来解决可能引起的问题。

MySQL的视图不支持输入参数的功能,因此交互性上还有欠缺。但对于变化不是很大的操作,使用视图可以很大程度上简化用户的操作。

1.2 视图的作用

视图是在原有的表或者视图的基础上重新定义的虚拟表,这可以从原有的表上选取对用户有用的信息。那些对用户没有用,或者用户没有权限了解的信息,都可以直接屏蔽掉。这样做既使应用简单化,也保证了系统的安全。视图起着类似于筛选的作用。视图的作用归纳为如下几点:

1.使操作简单化

视图需要达到的目的就是所见即所需。也就是说,从视图看到的信息就是所需要了解的信息。视图可以简化对数据的操作。例如,可以为经常使用的查询定义一个视图,使用户不必为同样的查询操作指定条件。这样可以很大程度上方便用户的操作。

2.增加数据的安全性

通过视图,用户只能查询和修改指定的数据。指定数据以外的信息,用户根本接触不到。数据库授权命令可以限制用户的操作权限,但不能限制到特定行和列上。使用视图后,可以简单方便地将用户的权限限制到特定的行和列上。这样可以保证敏感信息不会被没有权限的人看到,可以保证一些机密信息的安全。

3.提高表的逻辑独立性

视图可以屏蔽原有表结构变化带来的影响。例如,原有表增加列和删除未被引用的列,对视图不会造成影响。同样,如果修改了表中的某些列,可以使用修改视图来解决这些列带来的影响。

2、创建视图

创建视图是指在已存在的数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。

2.1 创建视图的语法形式

MySQL中,创建视图是通过SQL语句CREATE VIEW实现的。其语法形式如下:

create [algorithm = {undefined | merge | temptable}]
        view 视图名 [(属性清单)]
        as select 语句
        [with [cascaded | local] check option];

其中,ALGORITHM是可选参数,表示视图选择的算法;“视图名”参数表示要创建的视图的名称;“属性清单”是可选参数,其指定了视图中各个属性的名词,默认情况下与SELECT语句中查询的属性相同;SELECT语句参数是一个完整的查询语句,表示从某个表中查出某些满足条件的记录,将这些记录导入视图中;WITH CHECK OPTION是可选参数,表示更新视图时要保证在该视图的权限范围之内。

ALGORITHM包括3个选项UNDEFINED、MERGE和 TEMPTABLE。其中,UNDEFINED选项表示 MySQL将自动选择所要使用的算法;MERGE选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;TEMPTABLE选项表示将视图的结果存入临时表,然后使用临时表执行语句。

CASCADED是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL表示更新视图时,要满足该视图本身的定义的条件即可。

使用CREATE VIEW语句创建视图时,最好加上 WITH CHECK OPTION参数。而且,最好加上CASCADED参数。这样,从视图上派生出来的新视图后,更新新视图需要考虑其父视图的约束条件。这种方式比较严格,可以保证数据的安全性。

创建视图时,需要有CREATE VIEW的权限。同时,应该具有查询涉及的列的SELECT权限。在 MySQL 数据库下面的user表中保存这些权限信息,可以使用SELECT 语句查询。

SELECT语句查询的方式如下:

其中,Select _priv属性表示用户是否具有SELECT权限,Y表示拥有SELECT权限,N表示没有;Create_view_priv属性表示用户是否具有CREATE VIEW权限;mysql.user表示 MySQL数据库下面的user表;“用户名”参数表示要查询哪个用户是否拥有 DROP权限,该参数需要单引号引起来。因为该数据库系统中只有root用户,所以查询出来的结果只有root用户的权限。

2.2 在单表上创建视图

MySQL中可以在单个表上创建视图。

下面在 department表上创建一个简单的视图,视图名称为department_view1。创建视图的代码如下:

执行结果显示Query OK,表示代码执行成功;0 rows affected表示创建视图并不影响以前的数据,因为视图只是一个虚拟表。使用DESC语句查询表的结构,结果显示如下:

下面在 department表上创建一个名为 department_view2的视图。创建视图的代码如下:

结果显示,视图department_view2的属性分别为name、fuction和 location。因为,在创建视图时指定了属性列表。视图的属性名与属性列表中的属性名相同。该示例中的SELECT语句查询出了department 表的d_name、function和 address 这3列。那么,视图department_view2中的列就分别对应着这3列。使用视图时,用户接触不到实际操作的表和字段。这样可以保证数据库的安全。

2.3 在多表上创建视图

MySQL中也可以在两个或两个以上的表上创建视图,也是使用CREATE VIEW语句实现的。

下面在 department表和worker表上创建一个名为 worker_view1 的视图。创建视图的代码如下:

结果显示,视图 worker_view1 的属性分别为name、department、sex、age和 location。视图指定的属性列表对应着两个不同的表的属性列。视图的属性名与属性列表中的属性名相同。该示例中的SELECT 语句查询出了department 表的d_name字段,还有worker表的name、sex、birthday和 address。其中,department表的d_name字段对应视图的department字段; worker表的 birthday 字段进行减法操作后,对应视图的age字段。而且,视图worker_view1的ALGORITHM的值指定为MERGE。还增加了WITH LOCAL CHECKOPTION约束。本实例说明,视图可以将多个表上的操作简洁的表示出来。

同时在多个表上创建视图是非常有用的。比如,系统中有student表、department表、score表和grade表,分别存储学生的信息、院系信息、课程信息和成绩信息。可以在这4个表上创建一个视图,用来显示学生姓名、学号、班级、院系、所选课程和课程成绩。

3、查看视图

查看视图是指查看数据库中已存在的视图的定义。查看视图必须要有SHOW VIEW的权限。MySQL 数据库下的user表中保存着这个信息。查看视图的方法包括DESCRIBE 语句、SHOW TABLE STATUS语句、SHOW CREATE VIEW语句和查询information_schema数据库下的views表等。

3.1 DESCRIBE语句查看视图基本信息

因为,视图也是一张表。只是这张表比较特殊,是一张虚拟的表。因此,同样可以使用DESCRIBE语句可以用来查看视图的基本定义。DESCRIBE 语句查看视图的基本形式与查看表的形式是一样的。基本形式如下:

describe  视图名

下面是用DESCRIBE语句查看视图worker_view1的定义,代码如下:

结果中显示了字段的名称(Field)、数据类型(Type)、是否为空(Null)、是否为主外键(Key)、默认值(Default)和额外信息(Extra) 。

DESCRIBE可以缩写成DESC。可以直接使用DESC查看worker_view1表的结构。

如果只需要了解视图中的各个字段的简单信息,可以使用 DESCRIBE语句。DESCRIBE语句查看视图的方式与查看普通表的方式是一样的,结果显示的方式也是一样的。通常情况下,都是使用DESC代替DESCRIBE。

3.2 SHOW TABLE STATUS语句查看视图基本信息

在MySQL 中,可以使用SHOW TABLE STATUS语句来查看视图的信息。其语法形式如下:

show table status like '视图名'

下面是用SHOW TABLE STATUS语句查看视图'worker_view1"的信息,代码如下:

执行结果显示,表的说明(Comment〉项的值为VIEW,说明该表为视图。存储引擎、数据长度等信息都显示为NULL,说明视图是虚拟表,与普通表是有差异的。同样使用SHOW TABLE STATUS语句来查看department表的信息。查询结果如下:

从结果可以看出,department表的基本信息都显示出来,包括存储引擎、创建时间等。但是Comment项没有信息。这就是视图和普通表最直接的区别。

!!!SHOW TABLE STATUS语句虽然也可以查看视图的基本信息,但是通常很少使用。因为,使用SHOW TABLE STATUS语句查询视图信息时,各个属性显示的值都是NULL。只有Comment属性显示值为VIEW。

3.3 SHOW CREATE VIEW语句查看视图详细信息

在 MySQL中,SHOW CREATE VIEW语句可以查看视图的详细定义。其语法形式如下:

show create view 视图名

下面是用SHOW CREATE VIEW语句查看视图worker_view1的信息,代码如下:

执行结果显示了详细的信息。包括视图的各个属性、WITH LOCAL CHECK OPTION条件和字符编码(character_set_client)等信息。通过SHOW CREATE VIEW语句,可以查看视图的所有信息。

3.4 在views表中查看视图详细信息

在MySQL中,所有视图的定义都存在information_schema数据库下的views表中。查询views表,可以查看到数据库中所有视图的详细信息。查询的语句如下:

SHOW CREATE VIEW语句可以查看视图的详细信息,如果读者希望了解详细信息可以使用这个语句。所有视图的定义都是存储在information_schema数据库下的views表中,也可以在这个表中查看视图的定义。不过,通常情况下都是使用SHOW CREATE VIEW语句。

4、修改视图

修改视图是指修改数据库中已存在的表的定义。当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间一致。MySQL中通过CREATE OR REPLACEVIEW语句和ALTER语句来修改视图。

4.1 CREATE OR REPLACE VIEW语句修改视图

在MySQL 中,CREATE OR REPLACE VIEW语句可以用来修改视图。该语句的使用非常灵活。在视图已经存在的情况下,对视图进行修改;视图不存在时,可以创建视图。CREATE OR REPLACE VIEW语句的语法形式如下:

create or replace [algorithm = { undefine | merge | temptable }]
        view 视图名 [(属性清单)]
        as select 语句
        [with [cascaded | local] check option];

下面是用CREATE OR REPLACE VIEW语句修改视图 department_view1。代码如下:

CREATE OR REPLACE VIEW语句不仅可以修改已经存在的视图,也可以创建新的视图。不过ALTER语句只能修改已经存在的视图。通常情况下,最好选择CREATE OR REPLACE VIEW语句修改视图。

4.2 ALTER语句修改视图

在 MySQL中,ALTER 语句可以修改表的定义,可以创建索引。不仅如此,ALTER语句还可以用来修改视图。ALTER语句修改视图的语法格式如下:

alter [algorithm = { undefine | merge | temptable }]
        view 视图名 [(属性清单)]
        as select 语句
        [with [cascaded | local] check option];

下面是用ALTER语句修改视图 department_view2。代码如下:

5、更新视图

更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚拟表,其中没有数据。通过视图更新时,都是转换到基本表来更新。更新视图时,只能更新权限范围内的数据。超出了范围,就不能更新。

下面在视图 department_view3中对视图进行更新。department_view3是department表的视图。department表的记录如下:

在更新之前,先创建视图 department_view3。代码如下:

向视图department_view3中更新一条记录。新记录的name的值为“人事部”,function的值为“管理公司人事变动”,address 的值为“2号楼3层”。更新语句执行如下:

结果显示,视图已经更新成功。再查询department表的记录。记录显示如下:

结果显示,d_id为1001的记录已经更新。虽然,UPDATE语句更新的是视图department_view3。但实际上更新的是department表。上面的UPDATE语句可以等价为:

update department set d_name='人事部',function='管理公司人事变动',address=‘2号楼3层’

where d_id = 1001;

由上面可以看出,对视图的更新最后都是实现在基本表上的。更新视图时,实际上更新的是基本表上的记录。但是,并不是所有的视图都可以更新的。

以下这几种情况是不能更新视图的:

(1) 视图中包含 SUM()、COUNT()、MAX()和MIN()等函数。

下面视图 worker_view4创建视图的代码如下:

因为该视图包含COUNT(),所以该视图是不能更新的。

(2) 视图中包含UNION、UNION ALL、DISTINCT、GROUP BY和HAVIG等关键字。

下面视图 worker_view5创建视图的代码如下:

因为该视图包含GROUP BY,所以该视图也是不能更新的。

(3) 常量视图。

下面视图 worker_view6创建视图的代码如下:

 

因为该视图的name字段是个字符串常量“Aric”,所以该视图也是不能更新的。使用UPDATE语句更新时,会出现系统报错。

(4) 视图中的SELECT中包含子查询。

下面视图worker_view7创建视图的代码如下:

该视图包含了子查询,因此也是不能更新的。

(5) 由不可更新的视图导出的视图。

下面视图 worker_view8创建视图的代码如下:

因为 worker_view7是不可更新的视图,所以 worker_view8也是不可以更新的视图。使用UPDATE语句更新时,会出现系统报错.

(6) 创建视图时,ALGORITHM为TEMPTABLE类型。

下面视图worker_view9创建视图的代码如下:

因为该视图的ALGORITHM为TEMPTABLE类型,所以worker_view9为不可以更新的视图。TEMPTABLE类型就是临时表类型。系统默认临时表是不能更新的。

(7)视图对应的表上存在没有默认值的列,而且该列没有包含在视图里。

例如,表中包含的 name字段没有默认值,但是视图中不包括该字段。那么这个视图是不能更新的。因为,在更新视图时,这个没有默认值的记录将没有值插入,也没有NULL值插入。数据库系统是不会允许这样的情况出现的,其会阻止这个视图更新。

!!!视图中虽然可以更新数据,但是有很多的限制。一般情况下,最好将视图作为查询数据的虚拟表,而不要通过视图更新数据。因为,使用视图更新数据时,如果没有全面考虑在视图中更新数据的限制,可能会造成数据更新失败。

除了上述条件不能更新视图以外,WITH [ CASCADED| LOCAL]CHECK OPTION也将决定视图能否更新。LOCAL参数表示更新视图时要满足该视图本身的定义的条件即可;CASCADED 参数表示更新视图时要满足所有相关视图和表的条件。没有指明时,默认为CASCADED。

6、删除视图

删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据。MySQL 中,使用DROP VIEW语句来删除视图。但是,用户必须拥有DROP权限。

对需要删除的视图,使用DROP VIEW语句进行删除。基本形式如下:

drop view if exists worker_view1;

其中,IF EXISTS参数指判断视图存在,如果存在则执行,不存在则不执行;“视图名列表”参数表示要删除的视图的名称的列表,各个视图名称之间用逗号隔开。

下面将删除视图worker_view1。代码如下:

下面将同时删除 department_view1和 department_view2这两个视图。代码如下:

结果显示,department_view1 和 department_view2这两个视图已经不存在了。该示例说明,DROP语句可以同时删除多个视图。

用户必须拥有DROP权限才可以删除视图。MySQL 中,MySQL数据库下的user表中可以查询到是否存在 DROP权限。查看DROP权限的语句如下:

SELECT Drop_priv FROM mysql.user WHERE user='用户名;

其中,“Drop_priv”属性表示用户是否具有DROP权限,Y表示拥有DROP权限,N表示没有;“用户名”参数表示要查询哪个用户是否拥有DROP权限,该参数需要单引号引起来。因为该数据库系统中只有root用户,所以查询出来的结果只有root用户的权限。

该语句的执行结果如下:

结果显示,“Drop_priv”属性的值为Y,表示具有DROP权限。

7、MySQL中视图和表的区别及联系是什么?

两者的区别:

  • 视图是按照SQL语句生成的一个虚拟的表。
  • 视图不占实际的物理空间。而表中的记录需要占物理空间。
  • 建立和删除视图只影响视图本身,不会影响实际的记录。而建立和删除表会影响实际的记录。

两者的联系:

  • 视图是在基本表之上建立的表,其字段和记录都来自基本表,其依赖基本表而存在。
  • 一个视图可以对应一个基本表,也可以对应多个基本表。
  • 视图是基本表的抽象,在逻辑意义上建立的新关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 视图 的相关文章

  • HTML5 数据库存储(SQL lite) - 几个问题

    你好 我在网上找不到足够的关于 HTML5 数据库存储使用示例 CRUD 的初学者资源 我正在像这样打开 创建 我的数据库 var db document ready function try if window openDatabase
  • 如何停止在 mongodb 集合中插入重复文档

    让我们有一个MongoDB包含三个文档的集合 db collection find id user A title Physics Bank Bank A id user A title Chemistry Bank Bank B id u
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • mysql转储到derby

    我正在使用 derby 在 eclipse 中进行开发 是否可以从 MySQL 转储表并以某种方式将其用于 derby 我知道 ddl 和 dml 对于两个 dbms 来说是不同的 但我正在寻找一种除了转储 导出之外的合适方法 我可以找到两
  • PHP MYSQL文件内容转义问题

    我正在尝试使用 php 将 pdf 文件上传到 mysql 数据库中 除了文件内容之外 一切都很好 无论我如何尝试转义特殊字符 查询总是失败 主要是 未知命令 n 我使用过addslashes mysql real escape strin
  • PostgreSQL 中“-”处或附近的语法错误

    我正在尝试运行查询来更新用户密码 alter user dell sys with password Pass 133 但因为 它给了我这样的错误 ERROR syntax error at or near LINE 1 alter use
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 数据库表设计

    我在选择数据库表的变量类型时遇到问题 有人可以给我一些关于如何选择类型的一般准则吗 以下是我的一些问题 用户 ID 应该是什么 INT 看起来很小 因为设计时应该考虑到大量用户 那么如果不是 INT 还有什么呢 大整数 VARCHAR 难道
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 错误代码:1305。函数或过程不存在

    因此 我在 MySQL 中创建一个函数 然后尝试向用户授予使用该函数的权限 但我无法这样做 这就是我正在做的 DELIMITER USE rxhelp36 scbn DROP FUNCTION IF EXISTS businessDayDi
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • 将庞大数据库从亚马逊RDS导出到本地mysql

    我在 Amazon RDS 上有一个 mysql 数据库 大约 600GB 数据 我需要将其移回本地专用服务器 但我不知道从哪里开始 每次我尝试初始化 sqldump 时它都会冻结 有没有办法将其移至 S3 甚至可能在开始下载之前将其分成更
  • Mysql用in语句限制

    我正在写一个查询 SELECT user bookmarks id as user bookmark id bookmark id user bookmarks user id bookmark url bookmark website b
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • Flutter 中有预填充数据库使用的示例吗?

    Flutter 中有预填充数据库使用的示例吗 我不需要 CRUD 示例 此时我只需要从数据库读取数据即可 我是 Flutter 新手 所以一步一步的教程会很好 您可以将您的应用程序与预填充的 sqlite 数据库捆绑在一起assets文件夹
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主

随机推荐

  • Ubuntu20.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“ 问题

    问题描述 python调用matplotlib pyplot库进行图形绘制时弹出错误提示 qt qpa plugin Could not load the Qt platform plugin xcb in even though it w
  • (个人)AR电子书系统创新实训第五周(1)

    服务器上传大文件的问题 在搭建并使用了云服务器后 我遇到了一个奇怪的问题 如果上传的文件中包含了视屏的话 上传就会失败 同时返回一个402error页面 一开始 我以为是文件类型的问题 通过网上查找后 我发现问题依然在于服务器本身的设置上
  • linux学习lesson14

    目录 1 df命令 2 du命令 3 磁盘分区 1 df命令 命令df disk filesystem的简写 用于查看已挂载磁盘的总容量 使用容量 剩余容量等 可以不加任何参数 默认以KB为单位显 i 表示查看inodes的使用状况 如已使
  • zookeeper环境构建

    关于zookeeper的作用这里不再作详述 相信很多开发人员在很多场景都使用zookeeper作为任务协调 1 安装jdk 这里不述详述 下载jdk压缩包 并在 etc profile中增加相关的环境变量配置 export JAVA HOM
  • python各个版本区别_Python 的各个版本

    Python 现在用的最多的就是两个版本 Python 2 x 系列 以及一个较新的 Python 3 x 系列 Python 3 x 系列是开始于2008年的十二月的 3 0 版本 从这个版本发布开始 Python 2 7 之后就只有小版
  • 解决Jetbrains旗下产品的插件下载失败问题(IntelliJ IDEA、RubyMine、WebStorm、PhpStorm、PyCharm、AppCode、Android Studio等)

    博主主要关注IntelliJ IDEA插件 使用时安装超时 解决办法其实很简单 进入Jetbrains官方插件仓库地址 https plugins jetbrains com 选择你所用的开发工具 然后在左上角搜索框搜索你需要的插件 搜索后
  • JDK1.8 之Stream API总结

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Stream是 Java 8新增加的类 用来补充集合类 Stream代表数据流 流中的数据元素的数量可能是有限的 也可能是无限的 Stream和其它集合类的区别在于 其它集
  • mysql insert into多条_MySql中使用INSERT INTO语句更新多条数据的例子

    我们知道当插入多条数据的时候insert支持多条语句 复制代码 代码如下 INSERT INTO t member id name email VALUES 1 nick nick 126 com 4 angel angel 163 com
  • 如何解决:FileNotFoundError: 以及[Errno 2]No such file or directory

    出错原因 因为种种问题系统无法找到对应路径的文件 案例如下 我在pycharm的目录下新建了一个apple txt文件 想通过open 获取到对应文件里面的内容 结果提示 Errno 2 No such file or directory
  • Spark环境搭建部署全流程(Linux),看这一篇就够了

    前言 本篇文章将给各位展示如何快速地在linux上搭建spark 本文搭建的环境为Vmware 16 pro 下的CentOS 7 linux hadoop版本为3 x以上 Jdk1 8 以下是我总结出的spark几种模式的部署流程 如果是
  • 原来游戏技术行业最大的秘密竟然是...

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由腾讯游戏云发表于云 社区专栏 本篇文章主要是分享游戏业务面临的安全风险场景 以及基于这些场景的特点 我们应该如何做好对应的防护 一 背景 游戏行业DDoS攻击愈演愈烈 2017
  • Python模块multiprocessing & 实现多进程并发

    简介 multiprocessing模块是Python标准库中提供的一个用于实现多进程编程的模块 它基于进程而不是线程 可以利用多核CPU的优势 提高程序的执行效率 同时也可以实现进程间通信和数据共享 目录 1 参数说明 1 1 Proce
  • FastAPI从入门到实战(12)——错误处理

    错误提示是非常重要的 比如权限控制 资源控制等场景 需要服务器返回给用户错误提示 包括状态码和提示等内容 所以本文就主要记录FastAPI里的错误处理相关的内容 抛出一个HTTPException app08 get stu08 id de
  • UE 5 实现骨骼物理模拟 乳摇

    打开角色的物理资产 如果是下载的或者官方的模型 都会内带物理资产 模拟 可以根据分块模拟当前物体的物理效果 点击右上角的模拟 可以模拟布娃娃系统 Ctrl 鼠标右键可以实现对布娃娃施加力的效果 模拟选中项 模拟选中项可以只模拟一部分物体 选
  • 性能监控工具-Grafana安装和使用方法

    Grafana是一款开源的数据可视化和监控平台 它提供了丰富的可视化方式 如图表 仪表盘 警报等 支持多种数据源 包括Prometheus InfluxDB Graphite等 适用于各种规模的系统监控和数据分析 Grafana还有一个强大
  • ef框架 动态切换数据源信息(切换连接字符串)

    在一些特殊的场景 我可能会更换访问的数据库 猜想 玩游戏的时候 选择不同的区登录 选区就是更换数据库 比如你用qq登录王者 可登录1区或者2区 两个区中 你的英雄 皮肤 和段位是不一样的 上下文的调整 1 在上下文中加入一个静态的字段 pr
  • mysql重置数据库主键_重置Mysql主键的方法

    方法一 如果曾经的数据都不需要的话 可以直接清空所有数据 并将自增字段恢复从1开始计数 truncate table 表名 方法二 dbcc checkident table name reseed new reseed value 当前值
  • 数据库:关系模型基本介绍

    关系模型研究什么 关系模型就是处理Table的 它由三个部分组成 1 描述DB各种数据的基本结构形式 2 描述Table与Table之间所可能发生的各种操作 关系运算 3 描述这些操作所应遵循的约束条件 完整性约束 就是要学习 Table如
  • 深度学习工程实践 6. 使用pytorch训练自己的眼球分割模型

    深度学习工程实践 6 使用pytorch训练自己的眼球分割模型 1 概述 2 目标 3 工程实践 3 1 数据寻找 数据标注 3 2 训练 3 3 部署应用到桌面程序 4 总结 1 概述 眼球分割 如果是在特定的眼球拍摄场景下 实际上直接用
  • mysql 视图

    目录 1 视图简介 1 1 视图的含义 1 2 视图的作用 2 创建视图 2 1 创建视图的语法形式 2 2 在单表上创建视图 2 3 在多表上创建视图 3 查看视图 3 1 DESCRIBE语句查看视图基本信息 3 2 SHOW TABL