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

重庆招聘一般上什么网站/网页制作

重庆招聘一般上什么网站,网页制作,个人网站软件,做国外进口衣服的网站好复合类型 复合类型是一种由其他类型组成的类型。它可以是数组、结构体、联合体或指向这些类型的指针。复合类型允许将多个值组合成单个实体,以便更方便地处理和使用。复合类型在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;

相关文章:

【PostgreSQL】从零开始:(三十一)数据类型-复合类型

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

基于鸿蒙OS开发一个前端应用

创建JS工程:做鸿蒙应用开发到底学习些啥? 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。选择HarmonyOS模板库&#xff0c…...

PIC单片机项目(7)——基于PIC16F877A的智能灯光设计

1.功能设计 使用PIC16F877A单片机,检测环境关照,当光照比阈值低的时候,开灯。光照阈值可以通过按键进行设置,同时阈值可以保存在EEPROM中,断电不丢失。使用LCD1602进行显示,第一行显示测到的实时光照强度&a…...

Mysql For Navicate (老韩)

Navicate创建数据库 先创建一个数据库;然后在数据库中创建一张表;在表格当中填入相应的属性字段;打开表, 然后填入相应的实例字段; – 使用数据库图形化App和使用指令来进行操作各有各的好处和利弊; 数据库的三层结构(破除MySQL神秘) 所谓安装Mysql数据库, 就是在主机安装一…...

设计模式之-建造者模式通俗易懂理解,以及建造者模式的使用场景和示列代码

系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式,5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式,每一种模式的概念、使用…...

Redis分布式锁进阶源码分析

Redis分布式锁进阶源码分析 1、如何写一个商品秒杀代码?2、加上Java锁3、使用redis setnx命令获取锁4、增加try和finally5、给锁设置过期时间6、增长过期时间,并setnx增加唯一value7、使用redisson8、源码分析a、RedissonLock.tryLockInnerAsyncb、Redis…...

lag-llama源码解读(Lag-Llama: Towards Foundation Models for Time Series Forecasting)

Lag-Llama: Towards Foundation Models for Time Series Forecasting 文章内容: 时间序列预测任务,单变量预测单变量,基于Llama大模型,在zero-shot场景下模型表现优异。创新点,引入滞后特征作为协变量来进行预测。 获得…...

Three.js基础入门介绍——Three.js学习三【借助控制器操作相机】

在Three.js基础入门介绍——Three.js学习二【极简入门】中介绍了如何搭建Three.js开发环境并实现一个包含旋转立方体的场景示例,以此为前提,本篇将引进一个控制器的概念并使用”轨道控制器”(OrbitControls)来达到从不同方向展示场…...

【日志系列】什么是分布式日志系统?

✔️什么是分布式日志系统? 现在,很多应用都是集群部署的,一次请求会因为负载均衡而被路由到不同的服务器上面,这就导致一个应用的日志会分散在不同的服务器上面。 当我们要向通过日志做数据分析,问题排查的时候&#…...

[卷积神经网络]FCOS--仅使用卷积的Anchor Free目标检测

项目源码: FCOShttps://github.com/tianzhi0549/FCOS/ 一、概述 作为一种Anchor Free的目标检测网络,FCOS并不依赖锚框,这点类似于YOLOx和CenterNet,但CenterNet的思路是寻找目标的中心点,而FCOS则是寻找每个像素点&…...

Ubuntu fcitx Install

ubuntu经常出现键盘失灵的问题 查询资料得知应该是Ibus框架的问题 于是需要安装fcitx框架和搜狗拼音 sudo apt update sudo apt install fcitx 设置fcitx开机自启动(建议) sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ 然后…...

【Makefile/GNU Make】知识总结

文章目录 1. 总体认识2. 编写Makefile2.1. Makefile的组成2.2. Makefile文件名2.3. 包含其他Makefile 3. 编写规则4. 编写规则中的构建命令5. 如何使用变量6. 条件判断7. 转换文本的函数8. 如何运行make9. 使用模糊规则10. 使用make来更新存档文件11. 扩展GNU make12. 集成GNU …...

腾讯云轻量服务器和云服务器CVM该怎么选?区别一览

腾讯云轻量服务器和云服务器CVM该怎么选?不差钱选云服务器CVM,追求性价比选择轻量应用服务器,轻量真优惠呀,活动 https://curl.qcloud.com/oRMoSucP 轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三…...

MySQL定时备份实现

一、备份数据库 –all-databases 备份所有数据库 /opt/mysqlcopy/all_$(date “%Y-%m-%d %H:%M:%S”).sql 备份地址 docker exec -it 容器名称 sh -c "mysqldump -u root -ppassword --all-databases > /opt/mysqlcopy/all_$(date "%Y-%m-%d %H:%M:%S").sq…...

Nginx 不同源Https请求Http 报strict-origin-when-cross-origin

原因: nginx代理配置url指向只开放了/* 而我/*/*多了一层路径 成功:...

openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作示例

文章目录 openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作示例175.1 相同表的INSERT和DELETE并发175.2 相同表的并发INSERT175.3 相同表的并发UPDATE175.4 数据导入和查询的并发 openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入…...

pnpm、npm、yarn是什么?怎么选择?

pnpm、npm、yarn三者是前端常用的包管理器,那么他们有什么区别呢? 1. npm (Node Package Manager) npm是Node.js的默认包管理器。自Node.js发布以来,npm就一直作为它的一个组成部分存在,因此,安装Node.js时也会自动安…...

MySQL8 一键部署

#!/bin/bash ### 定义变量 mysql_download_urlhttps://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz mysql_package_namemysql-8.0.33-linux-glibc2.12-x86_64.tar.xz mysql_dec_namemysql-8.0.33-linux-glibc2.12-x86_64 mysql_download_…...

12 UVM Driver

目录 12.1 uvm_driver class hierarchy 12.2 How to write driver code? 12.3 UVM Driver example 12.4 How to get sequence items from the sequencer? 12.5 UVM driver methods 12.5.1 Using get_next_item/ try_next_item and item_done methods 12.5.2 Using get…...

“暂存”校验逻辑探讨

1、背景 在业务中可能会遇到这种场景,前端页面元素多且复杂,一次性填完提交耗时很长,中间中断面临着丢失数据的风险。针对这个问题,“暂存”应运而生。 那“暂存”的时候,是否需要对数据校验,如何进行校验…...

探究element-ui 2.15.8中<el-input>的keydown事件无效问题

一、问题描述 今天看到一个问题&#xff0c;在用Vue2element-ui 2.15.8开发时&#xff0c;使用input组件绑定keydown事件没有任何效果。 <template><div id"app"><el-input v-model"content" placeholder"请输入" keydown&quo…...

Unity 代码控制Text自适应文本高度

在使用代码给Text赋值时&#xff0c;且文本有多段&#xff0c;并需要根据实际文本高度适配Text组件的高度时&#xff0c;可以使用以下方法&#xff1a; //Text文本 public TextMeshProUGUI text;void Start() {//代码赋值文本text.text "好!\n很好!\n非常好!";//获…...

TiDB 7.1 多租户在中泰证券中的应用

本文详细介绍了中泰证券在系统国产化改造项目中采用 TiDB 多租户技术的实施过程。文章分析了中泰证券数据库系统现状以及引入 TiDB 资源管控技术的必要性&#xff0c;探讨了 TiDB 多租户的关键特性&#xff0c;并阐述了在实际应用中的具体操作步骤。通过该技术的应用&#xff0…...

嵌入式-stm32-SR04超声波测距介绍及实战

一&#xff1a;超声波传感器介绍 1.1、SR04超声波测距硬件模块 1.2、SR04的四个IO口 vcc:提供电源5V gnd:接地 Trig:是**发送**声波信号的触发器 Echo:是**接收**回波信号的引脚 当TRIG信号被触发时&#xff0c;传感器会发送一定频率的声波信号&#xff0c;该信号被反射后&am…...

智能优化算法应用:基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白鲸算法4.实验参数设定5.算法结果6.参考文献7.MA…...

mac m1芯片 pytorch安装及gpu性能测试

pytorch 使用mac的m1芯片进行模型训练。 #小结&#xff1a;在数据量小和模型参数少&#xff0c;batch_size小时&#xff0c;cpu训练更快&#xff08;原因&#xff1a;每次训练时数据需要放入GPU中&#xff0c;由于batch_size小。数据放入gpu比模型计算时间还长&#xff09; 在…...

go 使用 - sync.WaitGroup

使用 - sync.WaitGroup 简介使用注意点 简介 waitgroup 是等待一组并发操作完成得方法。Goroutines对Go来说是独一无二的&#xff08;尽管其他一些语言有类似的并发原语&#xff09;。它们不是操作系统线程&#xff0c;它们不完全是绿色的线程(由语言运行时管理的线程)&#x…...

Java Web Day07-08_Layui

1. Layui概念介绍 layui&#xff08;谐音&#xff1a;类 UI) 是一套开源的 Web UI 解决方案&#xff0c;采用自身经典的模块化规范&#xff0c;并遵循原生 HTML/CSS/JS 的开发方式&#xff0c;极易上手&#xff0c;拿来即用。其风格简约轻盈&#xff0c;而组件优雅丰盈&#x…...

阿里云华北3(张家口)暂时无法办理经营性ICP许可证

阿里云服务器的华北 3&#xff08;张家口&#xff09;地域暂时无法办理经营性ICP许可证&#xff0c;如有经营性ICP业务请勿选择此地域。如果需要办理经营性ICP业务的用户&#xff0c;不需要选择华北3&#xff08;张家口&#xff09;地域&#xff0c;可以选择华北2&#xff08;北…...

八种常见顺序存储的算法

目录 1、线性枚举 1&#xff09;问题描述 2&#xff09;动图演示 3&#xff09;示例说明 4&#xff09;算法描述 5&#xff09;源码详解 2、前缀和差分 1&#xff09;问题描述 2&#xff09;动图演示 3&#xff09;样例分析 4&#xff09;算法描述 5&#xff09;源码…...