CUBRID数据类型之集合类型SET,MULTISET,LIST or SEQUENCE
来源:互联网 发布:mac电脑怎么打@符号 编辑:程序博客网 时间:2024/06/15 18:57
作者:黄军敬
1.下面先以对比方式介绍一下三种集合类型特征(其中LIST和SEQUENCE指的是同一种类型,只是名称不同)
TYPE
DESCRIPTION
DEFINITION
INPUT DATA
STORED DATA
SET
不允许重复
数据先按照定义的类型顺序
再按照从小到大的顺序存储
col_name SET VARCHAR(20)
{'c','c','c','b','b', 'a'}
{'a','b','c'}
col_name SET (int,VARCHAR(20))
{3,3,3,2,2,1,0,'c','c','c','b','b', 'a'}
{3,3,2,'d',2,1,0,'c','c', 3,5,'b','b','a'}
{0,1,2,3,'a','b','c'}
{0, 1, 2, 3, 5, 'a', 'b', 'c', 'd'}
MULTISET
允许重复
数据先按照定义的类型顺序
再按照从小到大的顺序存储
col_name MULTISET VARCHAR(20)
{'c','c','c','b','b', 'a'}
{'a','b','b','c','c','c'}
col_name MULTISET (int, VARCHAR(20))
{3,3,3,2,2,1,0,'c','c','c','b','b', 'a'}
{3,3,2,'d',2,1,0,'c','c', 3,5,'b','b','a'}
{0,1,2,2,3,3,3,'a','b','b', 'c','c','c'}
{0, 1, 2, 2, 3, 3, 3, 5, 'a', 'b', 'b', 'c', 'c', 'd'}
LIST
SEQUENCE
允许重复
数据按输入顺序存储
col_name LIST VARCHAR(20)
{'c','c','c','b','b', 'a'}
{'c','c','c','b','b','a'}
col_name LIST (int, VARCHAR(20))
{3,3,3,2,2,1,0,'c','c','c','b','b', 'a'}
{3,3,2,'d',2,1,0,'c','c', 3,5,'b','b','a'}
{3,3,3,2,2,1,0,'c','c','c','b','b', 'a'}
{3, 3, 2, 'd', 2, 1, 0, 'c', 'c', 3, 5, 'b', 'b', 'a'}
集合类型数据具有如下特点
1) 以一对大括号”{}”作为起始标志,元素与元素之间用逗号”,”分割.
2) 集合内部支持多种数据类型,例如set(int, char(1),date)
3) 集合内部也支持用户自定义类型,如以已存在的表作为数据类型
例如
Create table t1 (t int)
Create table t2 (t set t1)
2. 集合类型之间是支持类型转换的,具体参考下表 TO FROM SET MULTISET LIST SET - O O MULTISET O - O LIST O O -
3 举例
1) SET
csql> CREATE TABLE set_tbl ( col_1 set(int, CHAR(1)));
csql> INSERT INTO set_tbl VALUES ({3,3,3,2,2,1,0,'c','c','c','b','b','a'});
csql> INSERT INTO set_tbl VALUES ({NULL});
csql> INSERT INTO set_tbl VALUES ({''});
csql> SELECT * FROM set_tbl;
csql> ;xr
=== <Result of SELECT Command in Line 1> ===
col_1
======================
{0, 1, 2, 3, 'a', 'b', 'c'}
{NULL}
{' '}
csql> SELECT CAST(col_1 AS MULTISET), CAST(col_1 AS LIST) FROM set_tbl;
csql> ;xr
=== <Result of SELECT Command in Line 1> ===
cast(col_1 as multiset) cast(col_1 as sequence)
============================================
{0, 1, 2, 3, 'a', 'b', 'c'} {0, 1, 2, 3, 'a', 'b', 'c'}
{NULL} {NULL}
{' '} {' '}
csql> INSERT INTO set_tbl VALUES ('');
ERROR: Cannot coerce '' to type set.
ERROR: Incompatible data type on attribute col_1.
2) MULTISET
csql> CREATE TABLE multiset_tbl ( col_1 multiset(int, CHAR(1)));
csql> INSERT INTO multiset_tbl VALUES ({3,3,3,2,2,1,0,'c','c','c','b','b', 'a'});
csql> SELECT * FROM multiset_tbl;
csql> ;xr
=== <Result of SELECT Command> ===
col_1
======================
{0, 1, 2, 2, 3, 3, 3, 'a', 'b', 'b', 'c', 'c', 'c'}
csql> SELECT CAST(col_1 AS SET), CAST(col_1 AS LIST) FROM multiset_tbl;
csql> ;xr
=== <Result of SELECT Command in Line 1> ===
cast(col_1 as set) cast(col_1 as sequence)
============================================
{0, 1, 2, 3, 'a', 'b', 'c'} {0, 1, 2, 2, 3, 3, 3, 'a', 'b', 'b', 'c', 'c', 'c'}
3) LIST or SEQUENCE
csql> CREATE TABLE list_tbl ( col_1 list(int, CHAR(1)));
csql> INSERT INTO list_tbl VALUES ({3,3,3,2,2,1,0,'c','c','c','b','b', 'a'});
csql> SELECT * FROM list_tbl;
csql> ;xr
=== <Result of SELECT Command in Line 1> ===
col_1
======================
{3, 3, 3, 2, 2, 1, 0, 'c', 'c', 'c', 'b', 'b', 'a'}
csql> SELECT CAST(col_1 AS SET), CAST(col_1 AS MULTISET) FROM list_tbl;
csql> ;xr
=== <Result of SELECT Command in Line 1> ===
cast(col_1 as set) cast(col_1 as multiset)
============================================
{0, 1, 2, 3, 'a', 'b', 'c'} {0, 1, 2, 2, 3, 3, 3, 'a', 'b', 'b', 'c', 'c', 'c'}
- CUBRID数据类型之集合类型SET,MULTISET,LIST or SEQUENCE
- set,multiset容器类型
- set,multiset容器类型
- java之List,Set集合
- Redis数据类型之SET类型
- 集合 list set 常用类型说明
- java基础:集合类型set,list,map
- Redis之Set 集合类型
- Redis数据类型之LIST类型
- Redis 数据类型之List类型
- Redis基础之数据类型(Set无序集合)
- Redis笔记5:数据类型之集合(Set)
- python数据类型之初识Set(集合)
- Hibernate之映射集合(值类型的set,bag,idbag,list和map)
- stl库之set、multiset
- STL之set和multiset
- STL容器之Set,MultiSet
- STL容器之set/multiset
- ME, HMM, MEMM, CRF
- 《Velocity 模板使用指南》中文版[转]
- js string 转其他类型收集
- 巧使用Windows XP中网桥功能
- PB框架
- CUBRID数据类型之集合类型SET,MULTISET,LIST or SEQUENCE
- li浮动后增加图片时多出4px问题
- CListCtrl 使用技巧
- poj3295——水题(stack、位运算)
- 创业如恋爱
- Html网页导入Word文档和Excel文档
- 九型人格心灵密码学
- Linux 命令的一些记录(五):在安装ubuntu的一些操作
- Adobe Photoshop 鲜为人知的75个技巧