数据类型看起来非常简单,但用起来会发现有许多知识点。以下以GBase 8s v8.8 3.0.0_1版本为例介绍日期时间数据类型。
1、常见的日期时间数据类型
1.1、date
最常用的日期类型,它可以保存日期。可以表示公元0001-01-01至9999-12-31之间的日期值,可接受输入值为0000-00-00,等效于null值。
date类型在数据库中的存储固定为4字节,与int类型一致。
数据类型看起来非常简单,但用起来会发现有许多知识点。以下以GBase 8s v8.8 3.0.0_1版本为例介绍日期时间数据类型。
最常用的日期类型,它可以保存日期。可以表示公元0001-01-01至9999-12-31之间的日期值,可接受输入值为0000-00-00,等效于null值。
date类型在数据库中的存储固定为4字节,与int类型一致。
数据传输加密是指在网络中传输的数据需要加密传输,从而确保数据的机密性和完整性。
针对网络中传输的数据进行加密,焦点就在连接上。对于GBase 8s体系下,总共有如下连接场景需要进行数据传输加密:
1) 客户端连接数据库服务端,包含:csdk或jdbc连接GBase 8s。
2) 客户端连接到连接管理器,包含:csdk或jdbc连接连接管理器。无论连接管理器选择代理,还是重定向,客户端都会建立到连接管理器的连接。
3) 连接管理器连接数据库服务端。
4) 数据库服务端连接数据库服务端。对于高可用环境,数据库服务端之间是存在连接的。
对于连接而言,数据库服务端和连接管理器都存在组的概念。客户端可以选择连接数据库服务端的组或者连接管理器的组。经过调研,真正的连接不是建立在组上的。客户端代码,会根据sqlhosts的配置,在连接前选择合适数据库服务端或连接管理器进行连接。根据这个情况,对于组的连接不需要专门讨论。
本文基于数据库版本为GBase 8s V8.8 3.0.0_1,操作系统为CentOS 7.8编写。
裸表(raw table)是非日志记录的永久表,类似于非日志记录数据库中的表。支持但不记录裸表中行内的更新、插入和删除操作。可在裸表中定义索引,但是不能在裸表中定义唯一约束、主键约束或引用约束。
1,表DML操作不记录日志;
1,不支持(主键、唯一、引用)约束,但支持非空约束;
2,在集群主节点上可用;
3,在集群备节点上不可访问;
4,将裸表改成标准表,需要0级备份;
麒麟10SP2操作系统(Sword) AMD64 版本安装GBase 8s V8.8 3.0.0_1版数据库问题记录如下:
解决方法及步骤:
安装libnsl
yum install libnsl -y
1、配置yum源,使用阿里镜像
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
2、安装Linux图形桌面
yum -y groups install "GNOME Desktop"
3、设置服务器启动到图形界面并重启
mv /etc/systemd/system/default.target /etc/systemd/system/default.target.bak
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键,一个表上仅只能有一个主键;
2) 不建议更新主键;
3) 主键列上没有任何两行具有相同值(即重复值),且不允许空(NULL);
4) 主健可作外健,唯一索引不可;
1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束;
2) 只要唯一就可以更新;
3) 表中任意两行在指定列上都不允许有相同的值,但允许空(NULL);
首先要弄清楚 count() 的语义。count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值。
所以,count(*)、count(1)和count(主键) 都表示返回满足条件的结果集的总行数;而 count(字段),则表示返回满足条件的数据行里面,参数 "字段" 不为 NULL 的总个数。
以测试表为例,表内加载了10万行记录,其中允许null值的字段name存在3个null值;
create table tabcount
(
id integer,
name varchar(40),
age integer not null ,
primary key (id)
);
统信UOS20操作系统(1021a) AMD64 版本安装GBase 8s V8.8 3.0.0_1版数据库问题记录如下:
解决方法及步骤:
安装libnsl
yum install libnsl -y
解决方法及步骤:
1) 安装ncurses-devel
yum install ncurses-devel
2) 在/usr/lib64目录下创建链接文件,执行
cd /usr/lib64
ln -s libncurses.so.6.1 libncurses.so.5
ln -s libtinfo.so.6.1 libtinfo.so.5
测试使用Delphi连接到GBase 8s数据库,使用的是ODBC连接方式。
通过地址https://gbasedbt.com/dl/odbc/GBase8s_3.0.0_1-Win32-ODBC-Driver.zip 下截ODBC绿色安装包,解压,使用管理员权限运行00注册ODBC_管理员权限运行.cmd,注册ODBC驱动
GBase 8s数据库中,两个日期时间的值相减,得到的是interval类型的值(interval day to second),而oracle中直接就是数值了。我们可以通过自定义函数的方式,把interval类型转换成数值型(decimal(20,8))。