视图定义、作用、语法及操作

Oracle表/视图/列/存储过程信息查询 最近要写一个对Oracle某用户信息的整理和解析功能,所以顺手整理了一下涉及的Oracle查询sql。 阅读详情

一. 视图的定义

       视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候, 只是重新执行SQL.

       视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

       视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。

       视图看上去非常象数据库的物理表,对它的操作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些Oracle视图可以修改对应的基表,有些则不能(仅仅能查询)。

 

       还有一种视图:物化视图(MATERIALIZED VIEW ),也称实体化视图,快照 (8i 以前的说法) ,它是含有数据的,占用存储空间。 关于物化视图,具体参考

 

       Oracle 物化视图

       http://blog.youkuaiyun.com/tianlesoftware/archive/2009/10/23/4713553.aspx

 

二. 视图的作用

2.1 简单性。

       看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

2.2 安全性。

       通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过Oracle视图,用户可以被限制在数据的不同子集上:

       使用权限可被限制在基表的行的子集上。

       使用权限可被限制在基表的列的子集上。

       使用权限可被限制在基表的行和列的子集上。

       使用权限可被限制在多个基表的连接所限定的行上。

       使用权限可被限制在基表中的数据的统计汇总上。

       使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。

       视图的安全性可以防止未授权用户查看特定的行或列,是用户只能看到表中特定行的方法如下:

       1 在表中增加一个标志用户名的列;

       2 建立Oracle视图,是用户只能看到标有自己用户名的行;

       3 把视图授权给其他用户。

2.3 逻辑数据独立性。

       视图可帮助用户屏蔽真实表结构变化带来的影响。

       视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。视图可以在以下几个方面使程序与数据独立:

       1 如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。

       2 如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。

       3 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。

       4 如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。

 

三. 视图的基本语法:

CREATE[OR REPLACE][FORCE][NOFORCE]VIEW view_name

[(column_name)[,….n]]

AS

Select_statement

[WITH CHECK OPTION[CONSTRAINT constraint_name]]

[WITH READ ONLY]

说明:

view_name :  视图的名字

column_name: 视图中的列名

 

在下列情况下 , 必须指定视图列的名称

* 由算术表达式 , 系统内置函数或者常量得到的列

* 共享同一个表名连接得到的列

* 希望视图中的列名与表中的列名不同的时候

 

REPLACE:  如果创建视图时, 已经存在此视图, 则重新创建此视图, 相当于覆盖

FORCE:  强制创建视图, 无论的视图所依赖的基表否存在或是否有权限创建

NOFORCE:  只有基表存在且具有创建视图权限时, 才可以创建视图

WITH CHECK OPTION  指出在视图上所进行的修改都要符合select_statement 所指定的限制条件

WITH READ ONLY  只允许查看视图

 

视图的定义原则: 
       1. 视图的查询可以使用复杂的 SELECT 语法,包括连接 / 分组查询和子查询; 
       2. 在没有 WITH CHECK OPTION 和 READ ONLY的情况下,查询中不能使用 
          ORDER BY子句; 
       3. 如果没有为 CHECK OPTION 约束命名,系统会自动为之命名,形式为 SYS_Cn;
       4. OR REPLACE 选项可以不删除原视图便可更改其定义并重建,或重新授予对象 
         权限。

 

四. 视图操作

       视图分为简单视图( 基于单个基表,且不包含函数和数据分组操作 ) 和复杂视图( 基于多个基表或视图).

       简单视图可以通过视图修改数据. 这些修改包括插入数据. 更新数据和删除数据. 但是对于复杂视图来说, 通过视图修改数据必须满足一定的规则.

 

在视图定义中没有设定READ ONLY 的前提下, 如果视图包含了下面的内容, 那么不能通过视图删除表中的数据:

* 分组函数, 如SUM,AVG,MIN,MAX 等

*  GROUP BY 子句

* 包含了表达式

* ROWNUM 伪列

 

       插入数据时, 除了满足上面的条件外, 还需要保证那些没有包含在视图定义中的基表的列必须允许空值. 如果在视图定义中还包含了WITH CHECK OPTION 子句, 那么对视图的修改除了前面的那些原则外, 还必须满足指定的约束条件. 个人认为,视图利于查询,不利于修改.

 

1. 查询视图: 可依赖于多个基表.

SELECT  * FROM view_name; /* 类似于查询表数据*/

 

2. 更新视图的前提:

没有使用连接函数, 集合运算和组函数. 创建视图的select 语句中没有集合函数且没有GROUP BY,ONNECT BY ,START WITH 子句及DISTINCT 关键字. 创建视图的SELECT 语句中不包含从基表列通过计算所得的列. 创建视图没有包含只读属性.

 

3. 插入数据

INSERT  INTO  view_name VALUES();

 

4. 修改数据:

UPDATE  view_name SET …

若一个视图依赖于多个基本表, 则一次修改该视图只能修改一个基本表的数据.

 

5. 删除数据:

Delete from view_name where …

同样, 当视图依赖多个基表时, 不能使用此语句来删除基表中的数据. 只能删除依赖一个基表的数据.

 

6. 修改视图定义:

修改视图的好处在于, 所有相关的权限都依然存在. 语法同创建视图相同.

 

7. 删除视图:

DROP VIEW view_name;

  只有视图所有者和具备DROP VIEW 权限的用户可以删除视图。删除视图的定义不影响基表中的数据。视图被删除后,基于被删除视图的其他视图或应用将无效。

 

 

五. 示例

5.1 dba_segments 表里没有视图的信息

SQL> select distinct(segment_type) from dba_segments  group by segment_type;

 

SEGMENT_TYPE

------------------

LOBINDEX

INDEX PARTITION

NESTED TABLE

TABLE PARTITION

ROLLBACK

LOB PARTITION

LOBSEGMENT

TABLE

INDEX

CLUSTER

TYPE2 UNDO

 

已选择11行。

 

5.2 对视图的增删改操作都是在基表上进行的。

SQL> create table v_dave(id number,name varchar2(20));

表已创建。

SQL> insert into v_dave values(1,'dave');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from v_dave;

        ID NAME

---------- --------------------

         1 dave

SQL> create view view_dave as select * from v_dave;

视图已创建。

SQL> select * from view_dave;

        ID NAME

---------- --------------------

         1 dave

 

上面我们创建了一个表和一个视图。 下面我们对视图进行增删改操作。

 

5.2.1 对视图进行insert 操作

SQL> insert into view_dave values(2,'tianlesoftware');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from v_dave;

        ID NAME

---------- --------------------

         1 dave

         2 tianlesoftware

SQL> select * from view_dave;

        ID NAME

---------- --------------------

         1 dave

         2 tianlesoftware

 

最视图添加的记录,写道了对应的基表里。

 

5.2.2 对视图进行delete 操作

SQL> delete from view_dave where id =2;

已删除 1 行。

SQL> commit;

提交完成。

SQL> select * from view_dave;

        ID NAME

---------- --------------------

         1 dave

SQL> select * from v_dave;

        ID NAME

---------- --------------------

         1 dave

 

对视图的delete,同样修改的是基表。

 

5.2.3 对视图进行update

SQL> update view_dave set name='tianlesoftware' where id=1;

已更新 1 行。

SQL> commit;

提交完成。

SQL> select * from v_dave;

        ID NAME

---------- --------------------

         1 tianlesoftware

SQL> select * from view_dave;

        ID NAME

---------- --------------------

         1 tianlesoftware

 

 

5.3 查看视图的信息dba_views

SQL> desc dba_views;

 名称                                      是否为空? 类型

 ----------------------------------------- -------- ----------------

 OWNER                                     NOT NULL VARCHAR2(30)

 VIEW_NAME                                 NOT NULL VARCHAR2(30)

 TEXT_LENGTH                                        NUMBER

 TEXT                                               LONG

 TYPE_TEXT_LENGTH                                   NUMBER

 TYPE_TEXT                                          VARCHAR2(4000)

 OID_TEXT_LENGTH                                    NUMBER

 OID_TEXT                                           VARCHAR2(4000)

 VIEW_TYPE_OWNER                                    VARCHAR2(30)

 VIEW_TYPE                                          VARCHAR2(30)

 SUPERVIEW_NAME                                     VARCHAR2(30)

 EDITIONING_VIEW                                    VARCHAR2(1)

 READ_ONLY                                          VARCHAR2(1)

 

查看视图的定义:

SQL> select text from dba_views where view_name='VIEW_DAVE';

 

TEXT

--------------------------------------------------------------

select "ID","NAME" from v_dave

 

MySQL 视图(1) 当前视图没有 check option 约束时,可以更新当前视图数据,但是在当前视图中不显示该数据(参考情况1)。同时需要保证在该视图的 select_statement 中,如果对象是视图,并且也没有 check option 约束限制(参考情况2),有也没事,但是不能限制,才可以正常插入、更新数据(参考情况3)。本质上,视图是一个存储好的查询,用户通过访问这个视图来获取该视图定义的数据。解释:先把定义视图的语句执行起来,把数据放在一张系统定义的临时表,然后执行用户的sql语句。 阅读详情

相关推荐

Oracle物化视图失效的几种情况及测试(基于MySQL)

为了测试物化视图的失效情况,我们提供了相应的MySQL代码示例。在上述示例中,当我们更新数据源表的年龄时,物化视图将失效,因为物化视图中的数据与数据源表不一致。在上述示例中,当我们向数据源表添加了一个新的地址列时,物化视图将无法正确处理这个变化,从而失效。为了测试这种情况,我们可以在上述示例中修改数据源表的结构,然后再次查询物化视图,观察是否失效。为了测试这种情况,我们可以修改物化视图的定义,并再次查询物化视图,观察是否失效。在上述示例中,当我们修改了物化视图的定义,只选择了部分列,物化视图将失效。

SmufHtml的博客 783

数据库的视图

一、什么是视图 百度百科的解释是: 视图是一个虚拟表,视图并不在数据库中存储数据值,数据库中只在数据字典中存储对视图的定义。 这显然是不能让我们满意的。 数据库中的视图是一个虚拟表,同真实的表一样,视图包含一系列带有名称的行和列数据,行和列数据来自定义视图查询所引用的表,并且在引用视图时动态生成。视图是从一个或者多个表中导出的,视图的行为与表非常相似,但视图是一个虚拟表。在视图中用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE和DELETE修改记录。视图可以使用户操作方便

帝上无天的博客 5万+

eMMC FFU固件更新实战:从协议解析到设备修复

本文详细解析eMMC FFU固件更新技术,从协议原理到实战操作,涵盖EXT_CSD寄存器操作、命令流状态机解析及专业工具使用指南。通过真实维修案例,展示如何利用FFU机制修复设备故障,并提供高级优化技巧与安全注意事项,是硬件工程师和维修技术人员的实用参考。

weixin_29191761的博客 378

视图:定义视图 (建立视图、删除视图格式、查询视图、更新视图、视图的作用)

用途非常广泛:可以用在超市年汇总,年报,月报,季报汇总等,都需要用到视图 视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表,即数据库中只存放视图的定义,即对应的SELECT语句。当用户引用视图时,才根据定义形成虚拟表。视图一经定义,就可以和基本表一样进行一些操作:查询:删除;在视图之上再定义视图;受限更新。 SQL语言使用CREATE VIEW(关键词)命令建立视图,一般格式: 说明: select statement

今天会营业的博客 1万+

大疆sdkV4以及V5webrtc推流

webrtcSDK中要用它的VideoCapturer来初始化推流 ViewdoCapturer是一个接口我们继承它 然后重建创建文件CapturerAircraft.java文件。CameraUtil.java这个是我们用来创建CapturerAircraft的一个工具。除了CapturerAircraft这个文件不一样外其他都是一样的。PlayBodyBean.java这个是我们的配置文件。下面的有个代码块第一个是v4的 第二个是v5的。接着我们来创建几个推流用到的webrtc工具。

weixin_41624865的博客 1188

Sentinel--哨兵系列数据下载地址及流程更新【202310】

哨兵系列数据下载地址及流程更新。哨兵系列卫星作为哥白尼计划的一部分,主要目标便是对地球的观测任务。哥白尼计划由三部分组成:空间部分(哨兵系列太空任务与其他太空机构任务)、测量部分(提供海洋、大陆表面和大气信息的陆基和机载数据收集网络)、数据管理与全球共享。

twg666的博客 3万+

梦幻,MySQL视图,虚实表,完整详细可收藏

文章目录1. 数据库对象2. 视图概述3. 创建视图4. 查看视图5. 更新视图的数据6. 修改、删除视图7. 总结 1. 数据库对象 2. 视图概述 2.1 为什么使用视图? 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。 2.2 视图的理解 视图

叶绿体不忘呼吸 2505

手把手教你用Arduino和开源电路DIY一个手机连接的电化学传感器(附GitHub源码)

本文详细介绍了如何利用Arduino和开源电路DIY一个手机连接的电化学传感器,成本不到300元即可复现价值数千元的专业设备。从硬件选型、电路搭建到固件开发和手机应用实现,手把手教你完成整个项目,特别适合科研人员、环境监测爱好者和理工科学生。附GitHub源码,方便快速上手和扩展功能。

weixin_42561040的博客 336

视图、创建视图的语法、视图的作用

1.1. 视图 1.1.1. 什么是视图 视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。 视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。 创建视图的语法: 01.CREATE [OR REPLACE] VIEW view_name[(alias[, alias…])] 02.AS subquery ; 视图创建后,可以像操作表一样操作视图,主要是查询操作。 语法中的

weixin_51051149的博客 2103

OpenCV 开闭运算

开运算和闭运算是将腐蚀和膨胀按照一定的次序进行处理。 但这两者并不是可逆的,即先开后闭并不能得到原来的图像。 开运算 开运算是先腐蚀后膨胀,其作用是:分离物体,消除小区域。特点:消除噪点,去除小的干扰块,而不影响原来的图像。 闭运算 闭运算与开运算相反,是先膨胀后腐蚀,作用是消除/“闭合”物体里面的孔洞,特点:可以填充闭合区域。 cv.morphologyEx(img, op, kernel) img: 要处理的图像 op: 处理方式:若进行开运算,则设为cv.MORPH_OPEN,若进行闭

꧁༺ʚvv༒catɞ༻꧂的博客 949

Unity类银河恶魔城学习记录1-10 PlayerWallJump源代码 P37

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考

Homura_的博客 1378

数据库视图:定义、语法、特性与作用详解

摘要:数据库视图是一种虚拟表,不存储实际数据,仅保留SQL查询逻辑,实时反映基础表数据变化。视图支持创建、查询、修改和删除操作,语法与物理表类似。视图检查选项(WITH CHECK OPTION)通过CASCADED(级联检查)或LOCAL(局部检查)控制数据修改的合法性校验。视图可更新性取决于与基础表的一对一映射关系,若包含聚合、分组等逻辑则不可更新。视图的核心价值在于简化复杂查询、实现字段级权限控制以及隔离应用与基础表结构变更,提升数据安全性和系统可维护性。

2301_80204744的博客 848

QEMU源码全解析7 —— QEMU主函数

QEMU源码全解析7 —— QEMU主函数

phmatthaus的专栏 1292

MySql数据库之视图(定义视图、查询视图、更新视图、视图的作用)

目录 一、定义视图 1、建立视图 2、删除视图 二、查询视图 三、更新视图 四、视图的作用 一、定义视图 1、建立视图 语法:CREATE VIEW 视图名 【列名】... AS 子查询 【WITH CHECK OPTION】 WITH CHECK OPTION:加上这个语句后即对视图的修改需要符合定义视图时子查询中的条件表达式。 例1:单个表上的视图 CREATE VIE...

地球太危险了吧 3029

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SQL语言之视图

前言 本章我们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的作用,创建和使用视图以及修改视图这些方面讲解视图。 视图是什么 视图View是一种虚拟的表,本身不保存数据,内部封装了一条SELECT语句,数据来源于查询的一张或多张实际数据的表。 视图的结构和真实的表相同,也是有行和列组成,在视图上也可以进行增删改查的操作。 视图的作用 视图主要用于查询,使用视图的优点是...

qf2019的博客 493

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

(转)oracle视图详解

(转)oracle视图详解 Oracle视图详解 转载 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候,只是重新执行SQL。 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。 视图的定义存在数据库中...

yssz001的博客 369

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数据库视图View的使用

一、视图的概念: 概念: 视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 首先明白几个概念: 1.视图是一个虚拟表,其内容由查询定义。 2.视图中的数据是由一张或多张表中的数据组成的。 3...

a7412605567的博客 349

达梦数据库学习之视图

一、视图概述:        视图是从一个或几个基表(或视图)导出的表,它是一个虚表,即数据字典中只存放视图的义(由视图名和查询语句组成),而不存放对应的数据,这些数据仍存放在原来的基表中。当需要使用视图时,则执行其对应的查询语句,所导出的结果即为视图的数据。因此当基表中的数据发生变化时,从视图中查询出的数据也随之改变了,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据和变化。由此可见,视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,体现了

weixin_42356462的博客 3568

Oracle 视图说明

一、视图的定义视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候, 只是重新执行SQL.视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据...

weixin_33828101的博客 157

Oracle视图(View)----------------数据库中虚拟的表

一、什么是视图 1、认识视图 根据官方的文档可以这么理解视图:它是一个基于一个表或多个表的逻辑表,视图本身不包含任何数据。通俗来说,可以把视图看成是虚拟的表,只是一个查询语句的结果,它的数据最终是从表中获取的,这些表通常称为源表或基表。当基表的数据发生变化时,视图里的数据同样发生变化。通常视图的数据源有下面三种情况: 单一表的子集 多表操作的结果集 ...

wang7241的博客 2401

Oracle视图(View)说明

原 Oracle 视图(View) 说明https://blog.youkuaiyun.com/tianlesoftware/article/details/5530618版权声明: https://blog.youkuaiyun.com/tianlesoftware/article/details/5530618 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视...

rede 3152

oracle视图

转自博客   http://blog.youkuaiyun.com/tianlesoftware/article/details/5530618 一. 视图的定义        视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候,只是重新执行SQL.        视图是从一个或多个实际表中获得的,

wxwpxh的专栏 236

Oracle 视图(View) 说明

一. 视图的定义        视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候, 只是重新执行SQL.        视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。        视图的定义存在数据库中,

kandy的专栏 820

MySQL —— 视图

介绍 视图(view)是一个虚拟表、非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需要使用视图名称即可获取结果集,并可以将其当做表来使用 数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据,因此,视图中的数据是依赖于原来的表中的数据的,一旦表中的数据发生改变,显示在视图中的数据也会发生改变 作用 简化代码,可以把重复使用的查询封装成视图重复使用,同时可以使复杂的查询易于理解和使用 安全

weixin_46540606的博客 547

mysql05:mysql的视图、索引

mysql的视图、索引一、视图二、索引 一、视图 1、什么是视图 1):视图是一种虚拟的表,是从数据库中一个或者多个表导出来的的表; 2):数据库中存放了视图的定义,而并没有存放视图的数据,这些数据还是保存在原来的表中,也可以理解为视图保存的是查询的语句 3):使用视图查询数据时,会从原来的表中取出对应的数据 2、视图的作用 1)、使操作简便化; 2)、增加数据的安全性,轻易接触不到表的原数据; 3)、提高表的逻辑独立性。 3、基本语法 create view 视图名 as select 语句; 二、索引

qq_45555170的博客 216
上一篇: 快速上手Spring
下一篇: JAVA Swing.JTable.DefaultTableModel
kejiaming
博客等级 码龄15年 19粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值