CUBRID学习笔记 25 数据类型2
---恢复内容开始---
6枚举类型
语法
<enum_type>
: ENUM '(' <char_string_literal_list> ')'
<char_string_literal_list>
: <char_string_literal_list> ',' CHAR_STRING
| CHAR_STRING
如
CREATE TABLE tbl (
color ENUM('red', 'yellow', 'blue')
);
结果
Value |
Index Number |
---|---|
NULL |
NULL |
'red' |
1 |
'yellow' |
2 |
'blue' |
3 |
插入 INSERT into tbl values ('yellow'), ('red'), (2), ('blue');
结果
SELECT color FROM tbl;
color
======================
yellow
red
yellow
blue
SELECT color FROM tbl ORDER BY color ASC;
color
======================
red
yellow
yellow
blue
SELECT color FROM tbl ORDER BY cast(color as char) ASC;
color
======================
blue
red
yellow
yellow
使用字符串上下文,则枚举返回字符串 SELECT CONCAT(enum_col, 'color') FROM tbl_name;
CONCAT(color, '_color')
======================
yellow_color
red_color
yellow_color
blue_color
使用数字上下文 返回数字
SELECT color + 0 FROM tb;
color + 0
======================
2
1
2
3
是条件为数字的时候 ,为枚举的索引 SELECT color FROM tbl WHERE color <= 1;
color
======================
red
- 使用字符串条件 枚举为字符串
SELECT color FROM tbl WHERE color <= 'red';
color
注意索引默认从0开始 字符串的值不可以是null
如果枚举值本身就是数字,请用单引号括起来 如'1'
枚举排序是按索引排序的. 所以下面的语句是什么意思,应该明白了吧.先cast转换下
SELECT color FROM tb ORDER BY cast(color as char) ASC;
枚举和普通类型对应关系
*SHORT |
Index Number |
*INTEGER |
Index Number |
*BIGINT |
Index Number |
*FLOAT |
Index Number |
*DOUBLE |
Index Number |
*NUMERIC |
Index Number |
*MONETARY |
Index Number |
*TIME |
String |
*DATE |
String |
*DATETIME |
String |
*TIMESTAMP |
String |
*CHAR |
String |
*VARCHAR |
String |
BIT |
String |
VARBIT |
String |
注意 如果是使用jdbc驱动,使用枚举有些区别
7 集合
有三种
Type |
Description |
Definition |
Input Data |
Stored Data |
---|---|---|---|---|
SET |
A union which does not allow duplicates |
col_name SET VARCHAR(20) |
{'c','c','c','b','b','a'} |
{'a','b','c'} |
MULTISET |
A union which allows duplicates |
col_name MULTISET VARCHAR(20) |
{'c','c','c','b','b','a'} |
{'a','b','b','c','c','c'} |
LIST |
A union which allows duplicates and stores data in the order of input |
col_name LIST VARCHAR(20) |
{'c','c','c','b','b','a'} |
{'c','c','c','b','b','a'} |
集合间的转换
TO |
||||
---|---|---|---|---|
FROM |
SET |
MULTISET |
LIST |
|
SET |
- |
O |
O |
|
MULTISET |
O |
- |
X |
|
LIST |
O |
O |
- |
---恢复内容结束---
最新文章
- connect-flash 中间件
- Hibernate插入数据后获得ID
- CSS书写顺序
- Unity里的Mesh属性
- js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台
- XAML数据绑定(Data Binding)
- 我的AngularJS 学习之旅(二)
- acount
- Tomcat处理HTTP请求源码分析(上)(转)
- VS插件 热
- nyoj 题号12 水厂(两)——南阳oj
- 【ASP.NET】Validation 服务器控件
- style.left offsetLeft offsetwidth clientLeft clientWidth scrollLeft scrollWidth
- if else; while; break;continue ----流程控制系列
- 1092. To Buy or Not to Buy (20)-map
- Log4net的不能产生Log文件的问题
- Java8 lambda表达式10个示例
- Apache Storm内部原理分析
- newcode wyh的吃鸡(优势队列+BFS)题解
- 报警告session_regenerate_id(): Failed to create(read) session ID: files (path: N;/path)