当前位置: 首页 > news >正文

网络销售怎么聊客户南京seo优化公司

网络销售怎么聊客户,南京seo优化公司,网站建设功能解说,蚌埠网站制作哪家好复合类型 复合类型是一种由其他类型组成的类型。它可以是数组、结构体、联合体或指向这些类型的指针。复合类型允许将多个值组合成单个实体,以便更方便地处理和使用。复合类型在C语言中非常常见,用于表示复杂的数据结构和组织数据的方式。 数组是一种由…

复合类型

复合类型是一种由其他类型组成的类型。它可以是数组、结构体、联合体或指向这些类型的指针。复合类型允许将多个值组合成单个实体,以便更方便地处理和使用。复合类型在C语言中非常常见,用于表示复杂的数据结构和组织数据的方式。

数组是一种由相同类型的元素组成的复合类型。它有固定大小,并且可以通过索引访问其中的元素。数组在C语言中非常常用,用于存储和处理一组相同类型的数据。

结构体是一种由多个不同类型的成员组成的复合类型。结构体可以用于表示一个实体的多个属性或数据项。每个成员都可以具有不同的数据类型,结构体中的成员可以通过点运算符来访问。

联合体是一种特殊的结构体,它的所有成员共享同一块内存空间。只能同时存储一个成员的值,而且根据存储的数据类型来确定如何解释这块内存。

指针是一种特殊的复合类型,它保存了一个变量的内存地址。指针可以指向任何其他类型的数据,包括数组、结构体和函数。通过指针,可以间接访问指向的数据,并进行对数据的操作。

复合类型在C语言中提供了更多的灵活性和功能,使得程序员可以更好地组织和处理数据。

postgresql中的复合类型

PostgreSQL支持复合类型,也称为复合数据类型。复合类型是一种创建用户自定义数据类型的方式,它可以包含多个字段,每个字段可以有不同的数据类型。

CREATE TYPE complex AS (r       double precision,i       double precision
);CREATE TYPE inventory_item AS (name            text,supplier_id     integer,price           numeric
);

语法与 类似,只是只能指定字段名称和类型;目前不能包含任何约束(例如 )。请注意,关键字是必不可少的;没有它,系统会认为是另一种命令,你会得到奇怪的语法错误。CREATE TABLENOT NULLASCREATE TYPE

定义类型后,我们可以使用它们来创建表:

CREATE TABLE on_hand (item      inventory_item,count     integer
);INSERT INTO on_hand VALUES (ROW('fuzzy dice', 42, 1.99), 1000);

或功能:

CREATE TABLE inventory_item (name            text,supplier_id     integer REFERENCES suppliers,price           numeric CHECK (price > 0)
);

然后,上面所示的相同复合类型将作为副产品出现,并且可以像上面一样使用。但请注意当前实现的一个重要限制:由于没有约束与复合类型关联,因此表定义中显示的约束不适用于表外部的复合类型的值。若要解决此问题,请在复合类型上创建一个域,并将所需约束应用为域的约束。

构造复合值

若要将复合值写为文本常量,请将字段值括在括号内,并用逗号分隔。您可以在任何字段值两边加上双引号,如果它包含逗号或括号,则必须这样做。因此,复合常量的一般格式如下:

'( val1 , val2 , ... )'

例如:

'("fuzzy dice",42,1.99)'

这将是上面定义的类型的有效值。若要使字段为 NULL,请在列表中的位置完全不写入任何字符。例如,此常量指定 NULL 第三个字段:

'("fuzzy dice",42,)'

如果需要空字符串而不是 NULL,请写双引号:

'("",42,)'

这里第一个字段是非 NULL 空字符串,第三个字段是 NULL。
表达式语法还可用于构造复合值。在大多数情况下,这比字符串文字语法使用起来要简单得多,因为您不必担心多层引用。我们已经在上面使用了这种方法:ROW

ROW('fuzzy dice', 42, 1.99)
ROW('', 42, NULL)

只要表达式中有多个字段,ROW 关键字实际上是可选的,因此可以将其简化为:

ROW('fuzzy dice', 42, 1.99)
ROW('', 42, NULL)

只要表达式中有多个字段,ROW 关键字实际上是可选的,因此可以将其简化为:

('fuzzy dice', 42, 1.99)
('', 42, NULL)

访问复合类型

要访问复合列的字段,需要写入一个点和字段名称,就像从表名中选择字段一样。事实上,这很像从表名中进行选择,因此您经常必须使用括号来防止混淆解析器。例如on_hand,您可以尝试从示例表中选择一些子字段,如下所示:

SELECT item.name FROM on_hand WHERE item.price > 9.99;

这是行不通的,因为根据 SQL 语法规则,该名称是表名,而不是on_hand的列名。你必须这样写:

SELECT (item).name FROM on_hand WHERE (item).price > 9.99;

或者,如果您还需要使用表名(例如在多表查询中),如下所示:

SELECT (on_hand.item).name FROM on_hand WHERE (on_hand.item).price > 9.99;

现在,括号中的对象被正确地解释为对列的引用,然后可以从中选择子字段。
每当从复合值中选择字段时,类似的语法问题都会适用。例如,要从返回复合值的函数的结果中只选择一个字段,您需要编写如下内容:

SELECT (my_func(...)).field FROM ...

如果没有额外的括号,这将生成语法错误。

修改复合类型

下面是插入和更新复合列的正确语法的一些示例。首先,插入或更新整个列:

INSERT INTO mytab (complex_col) VALUES((1.1,2.2));UPDATE mytab SET complex_col = ROW(1.1,2.2) WHERE ...;

第一个示例省略 ,第二个示例使用它;我们本可以以任何一种方式做到这一点。ROW

我们可以更新复合列的单个子字段:

UPDATE mytab SET complex_col.r = (complex_col).r + 1 WHERE ...;

请注意,这里我们不需要SET(实际上也不能)在紧接着出现的列名周围加上括号,但是在等号右侧的表达式中引用同一列时,我们确实需要括号。

我们也可以将子字段指定为INSERT的目标:

INSERT INTO mytab (complex_col.r, complex_col.i) VALUES(1.1, 2.2);

如果我们没有为列的所有子字段提供值,则其余子字段将填充 null 值。

查询复合类型

查询中存在与复合类型关联的各种特殊语法规则和行为。这些规则提供了有用的快捷方式,但如果您不知道它们背后的逻辑,可能会造成混淆。

在 PostgreSQL 中,查询中对表名(或别名)的引用实际上是对表当前行的复合值的引用。例如inventory_item,如果我们有一个如上所示的表,我们可以这样写:

SELECT c FROM inventory_item c;

此查询生成单个复合值列,因此我们可能会得到如下输出:

           c
------------------------("fuzzy dice",42,1.99)
(1 row)

但请注意,简单名称与表名之前的列名匹配,因此此示例之所以有效,是因为查询的表中没有命名的列。c

普通的限定列名语法table_name column_name可以理解为将字段选择应用于表当前行的复合值。(出于效率原因,它实际上不是以这种方式实现的。.

当我们写

SELECT c.* FROM inventory_item c;

然后,根据 SQL 标准,我们应该将表的内容扩展为单独的列:

    name    | supplier_id | price
------------+-------------+-------fuzzy dice |          42 |  1.99
(1 row)

就好像查询是

ELECT c.name, c.supplier_id, c.price FROM inventory_item c;

PostgreSQL 会将此扩展行为应用于任何复合值表达式,尽管如上所示,只要它不是简单的表名,您就需要在应用的值周围写括号。例如,如果是一个函数返回包含列. 、* 和myfunc()的复合类型,则这两个查询具有相同的结果:abc

SELECT (myfunc(x)).* FROM some_table;
SELECT (myfunc(x)).a, (myfunc(x)).b, (myfunc(x)).c FROM some_table;
http://www.dinnco.com/news/61498.html

相关文章:

  • 网站开发php还是jsp如何点击优化神马关键词排名
  • 怎样利用网站做自己的链接网站seo优化价格
  • 聊城专业网站建设佛山百度seo代理
  • 湖北免费相亲网站魔方优化大师官网下载
  • php动态网站开发是干嘛的新浪体育nba
  • 人气最旺的传奇手游app优化建议
  • 龙岗地区做网站公司起名最好的网站排名
  • 宫廷计有哪些网站开发的湖南做网站的公司
  • 深圳价格实惠的网站建设公司app营销推广方案
  • 宁波市住房和城乡建设培训中心网站推推蛙品牌策划
  • 如何查找网站备案可以直接进入网站的正能量
  • 邹城市网站建设小说推广关键词怎么弄
  • 复旦学霸张立勇做的网站广东网约车涨价
  • 政府门户网站 平安建设指数函数图像
  • SEO案例网站建设河北seo技术交流
  • 图书馆网站开发策划书网络推广公司简介模板
  • 北海网站开发百度账户托管运营
  • 专题网站开发报价铜川网站seo
  • 建设方案包括哪些内容seo管理系统创作
  • 手机网站左右滑动效果适合35岁女人的培训班
  • 中国住房和城乡建设部查询网站深圳网站开发
  • 昆明做网站建设万网app下载
  • wordpress 文章内容不显示在线观看的seo综合查询
  • 广州物流网站建设百度识别图片找图
  • 我和椅子做游戏小精灵网站百度客户端电脑版下载
  • 房地产公司网站下载苏州百度搜索排名优化
  • 百度网站建设是什么微信朋友圈营销方案
  • ibm公司做网站网站统计工具有哪些
  • wordpress hashone汕头网站优化
  • wordpress错误500百度网站优化培训