多数据库学习之GBase8s查询数据库表元信息常用SQL

news2024/11/26 20:41:35

多数据库学习之GBase8s查询数据库表元信息常用SQL

  • 简介
  • 常用SQL
    • 创建用户
    • 创建数据库及模式
    • 获取表元数据
  • 其他
  • 参考链接

简介

  • 背景介绍

    GBase 8t是基于IBM informix源代码、编译和测试体系自主研发的交易型数据库产品。

    南大通用安全数据库管理系统(简称 GBase 8s),该产品符合 SQL92/99、ODBC、OLEDB、JDBC、ADO.NET 等国际 数据库规范和开发接口。

    8a是国内首个基于列存的新型分析型数据库,8a Cluster是国内首个分布式并行数据库集群,8t是国内首个与世界先进技术接轨的国产事务型通用数据库系统。

  • 数据库服务架构

    一个实例由多个数据库(Databases)组成,一个数据库可以有多个模式(Schema),经过验证理解模式(Schema)和用户(user)是一对一的概念。

    GBase8s数据库服务架构

    支持跨数据库查询表元数据信息,如果查询的表信息不在当前数据库(系统表systables),需要指定查sysmaster数据库下的相关系统表获取,如获取表名信息sysmaster:systables

常用SQL

创建用户

  • 注意

    需要在服务端连接数据库执行

    1. 切换到用户gbasedbt后使用onmode开启创建用户参数
    
        onmode -wf USERMAPPING=ADMIN
    
    
    1. 切换为root用户创建希望创建的数据库用户名并且设置密码
    
        [root@localhost ~]# groupadd  nbsp
        [root@localhost ~]# useradd -g nbsp -d /home/nbsp -s /bin/bash -m nbsp
        [root@localhost ~]# passwd nbsp
    
    
    
    1. 切换到gbasedbt使用管理员权限创建用户
    
        [gbasedbt@localhost ~]$ dbaccess - -
        Your evaluation license will expire on 2023-08-27 00:00:00
        
        # 创建用户并设置密码
        > create user nbsp with pass word "xxxx";
    
    
    1. 给用户赋权
    
        > grant dba to nbsp;
    
        Permission granted.
        
        > grant connect to nbsp;
        
        Permission granted.
        
        > grant resource to nbsp;
        
        Permission granted.
        
        > database nbsp;
    
    
    

创建数据库及模式

  • 创建数据库

    
        -- 创建数据库
        CREATE DATABASE dbtest;
    
        -- 语法
        CREATE DATABASE databasename [in dbspace] [with log|buffered log|log mode ansi] [nlscase sensitive|nlscase insensitive];
    
    
    
    
  • 创建表并赋予权限

    须先创建用户,否则无法指定表所属用户

    
        CREATE SCHEMA AUTHORIZATION gbasedbttest
        CREATE TABLE customer
        (
            customer_num SERIAL(101),
            fname        CHAR(15),
            lname        CHAR(15),
            company      CHAR(20),
            address1     CHAR(20),
            address2     CHAR(20),
            city         CHAR(15),
            state        CHAR(2),
            zipcode      CHAR(5),
            phone        CHAR(18)
        )
        GRANT ALTER, ALL ON customer TO gbasedbttest WITH GRANT OPTION;
    
    
    
  • 修改表结构

    
        alter table "表名" add "列名" "数据类型" | modify "列名" "数据类型" | drop column "列名";
    
    
    
  • 创建存储过程

    
    
        --  创建存储过程
        create procedure insertdata()
            define i int;
        for i in (1 to 100)
        insert into test values(i,'GBase 8s');
        end for;
        end procedure;
    
        -- 执行存储过程
        execute procedure insertdata();
    
    
    

获取表元数据

  • 常用SQL汇总

    
        -- 查询数据库空间
        select * from sysmaster:sysdbspaces;
    
        -- 查询用户信息
        select * from sysusers;
    
    
        -- 查询数据库字符集
        select * from sysmaster:sysdbslocale;
    
        -- 查询所有数据库
        select name, is_logging, is_case_insens from sysmaster:sysdatabases;
    
        -- 查看实例名,数据库名,用户名
        select a.cf_original, DBINFO('dbname') dbname, user from sysmaster:sysconfig a where cf_name = 'dbtest';
    
        -- 查看所有数据库名
        select name from sysmaster:sysdatabases;
    
        -- 查看数据库中所有表名
        select dbsname, tabname
        from sysmaster:systabnames
        where dbsname='dbtest';
    
        -- 查询用户自定义表名信息
        database sysadmin;
        select tabid, tabname, tabtype from systables where tabid >= 100 and tabtype = 'T';
    
        -- 查询表列信息
        select colname, coltype, coltypename from syscolumnsext where tabid = '100' order by colno;
    
        -- 查询视图
        select tabname,tabtype from systables where tabid >= 100 and tabtype = 'V';
    
        -- 查询表索引信息
        select tabid, idxname,tabid,idxtype from sysindexes where tabid = '100';
    
        -- 查询存储过程
        select procname, procid from sysprocedures where procname like '<key_word>%';
    
        -- 查询唯一索引
        select * from sysconstraints where constrtype = 'U';
    
        -- 查询主键信息
        select * from sysconstraints where constrtype = 'P';
    
        -- 查询外键信息
        select * from sysconstraints where constrtype = 'R';
    
                
        -- 查询外键明细信息
        SELECT fc.constrname fk_name,
            ft.tabname fk_tabname,
            fcol.colname fk_colname,
            pc.constrname pk_name,
            pt.tabname pt_tabname,
            pcol.colname
        FROM sysreferences r, sysconstraints fc, sysconstraints pc, systables ft, systables pt, sysindexes fi, sysindexes pi, syscolumns fcol, syscolumns pcol
        WHERE fc.constrtype = 'R'
        AND fc.tabid = ft.tabid
        AND fc.constrid = r.constrid
        AND r.ptabid = pt.tabid
        AND ft.tabid = fi.tabid
        AND pt.tabid = pi.tabid
        AND r.primary = pc.constrid
        AND fc.idxname = fi.idxname
        AND pc.idxname = pi.idxname
        AND ft.tabid = fcol.tabid
        AND pt.tabid = pcol.tabid
        AND fi.part1 = fcol.colno
        AND pi.part1 = pcol.colno
        AND ft.tabname = 't12';
    
    
        -- 查询库下所有字段的主键信息
        select unique t.tabname
            , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part1) as pk_1
            , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part2) as pk_2
            , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part3) as pk_3
            , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part4) as pk_4
            , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part5) as pk_5
            , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part6) as pk_6
        from sysindexes i,
            systables t
        where i.tabid = t.tabid
        and i.idxtype = "U"
        and i.idxname in (select c.idxname
                            from sysconstraints c,
                                systables t, outer(sysreferences r, systables t2, sysconstraints c2)
                            where t.tabid = c.tabid
                            and r.constrid = c.constrid
                            and t2.tabid = r.ptabid
                            and c2.constrid = r.constrid
                            and c.constrtype = "P");
    
    

其他

  • systables

    systables 系统目录表中记录的每个表都指定一个 tabid(一个系统指定的顺序号,它唯一地标识数据中的每个表)。系统目录表接收 2 位的 tabid 号,而用户创建的表接收以 100 开头的顺序 tabid 号

  • information_schema(信息模式视图)

    “信息模式”视图是在您作为 DBA 运行以下 DB-Access 命令时自动生成的:

    
        dbaccess database-name $GBASEDBTDIR/etc/xpg4_is.sql
    
    

    因此默认情况下,无法执行查询information_schema视图下的相关信息SQL

参考链接

  • GBase8s 创建用户

  • GBase 8s数据库常用操作指南

  • GBase 8s 存储过程

  • GBase 8s 元数据查询

  • GBase官网手册

  • informix数据库大全(持续更新)

  • Informix.Database

  • GBase 8s 学习笔记 001 —— GBase 8s 数据库产品介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/332980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础命令2(常见的文件相关命令)

目录 查找文件命令 pwd 显示当前所在的工作目录&#xff08;Print working directory&#xff09; cd 切换命令&#xff08;change directory&#xff09; ls 查看目录下的文件&#xff08;list&#xff09; tree 查看目录下的子目录&#xff08;查看目录结构&#…

Grafana 系列文章(十二):如何使用Loki创建一个用于搜索日志的Grafana仪表板

概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标签搜索的仪表板&#xff0c;以帮助一些团队在排除故障时快速找到他们正在寻找的东西。虽然 Expl…

云仓仓储的运行模式是什么?

仓库能够简单地定义为一个规划空间&#xff0c;通常是一个用于处置和贮存货物的大型商业建筑。因而&#xff0c;仓储是指在这样一个规划空间中存储和处置货物所触及的一切过程。仓库中常见的货物包括&#xff1a;;机械零配件、建筑资料、废品农产品、家具和电子产品。仓库中的一…

【面试题】经典面试题:让 a == 1 a == 2 a == 3 成立?

一、问题解析 if (a == 1 && a == 2 && a == 3) {console.log(Win) } 复制代码 如何打印除Win? 看到题目的第一眼,我是蒙蔽的.怎么可能会有如此矛盾的情况发生呢?就相当于一个人怎么可能即是小孩,又是成年人,还是老年人呢? 冷静下来,发现一些端倪。

VHDL语言基础-组合逻辑电路-概述

目录 概述&#xff1a; 组合逻辑电路&#xff1a;——电路无记忆功能 组合逻辑电路的设计方法&#xff1a; 传统的设计方法&#xff1a;采用标准组件进行设计 组合逻辑电路的设计方法&#xff1a; 两种设计方法的比较&#xff1a; 概述&#xff1a; 数字电路按其完成逻辑…

[Android]图片加载库Glide

目录 Glide的介绍 Glide的基本使用 指定图片的格式 Glide占位符 指定图片的大小 过渡动画 图片变换 Generated API Glide的介绍 Glide是一个快速高效的Android图片加载库&#xff0c;可以自动加载网络&#xff0c;本地文件&#xff0c;app资源中的文件&#xff0c;注重于平…

数据存储技术复习(二)未完

module3存储是数据中心内的核心元素。请说明常用的存储选项及其特点。磁盘驱动器&#xff1a;具有很大的存储容量&#xff0c;随机读/写访问闪存驱动器&#xff1a;使用半导体介质&#xff0c;提供高性能&#xff0c;低功耗2&#xff0e;若某磁盘驱动器显示每个磁道有八个扇区&…

标准舆情监测平台解决方案及流程,TOOM舆情监测工作计划有哪些?

舆情监测流程一般包括&#xff1a;数据收集、数据分析、信息汇报三个部分。首先&#xff0c;通过多种途径收集舆情数据&#xff0c;如网络媒体、社交媒体、博客、论坛等;其次&#xff0c;对收集的数据进行分析&#xff0c;统计舆情趋势、舆情类型等;最后&#xff0c;根据舆情分…

【Java】TCP的三次握手和四次挥手

三次握手 TCP三次握手是一个经典的面试题&#xff0c;它指的是TCP在传递数据之前需要进行三次交互才能正式建立连接&#xff0c;并进行数据传递。&#xff08;客户端主动发起的&#xff09;TCP之所以需要三次握手是因为TCP双方都是全双工的。 什么是全双工&#xff1f; TCP任何…

Print: Entry, “:CFBundleIdentifier“, Does Not Exist解决办法

首先执行react-native info查看我的电脑环境是&#xff1a; React Native Environment Info: System: OS: macOS 10.15.5 CPU: (8) x64 Intel(R) Core(TM) i7-4870HQ CPU 2.50GHz Memory: 103.91 MB / 16.00 GB Shell: 5.7.1 - /bin/zsh Binaries: Node: 12.22.12 - ~/.nvm/ve…

vulnhub靶机试验DC-1

按照大佬的文章学习了一 遍&#xff1a;https://blog.csdn.net/ierciyuan/article/details/127282461 前言 参考大佬的blog进行一次实践&#xff0c;入门级的学习&#xff0c;写得不好请见谅&#xff01; 本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密…

MySQL进阶篇之视图(view)

04、视图/存储过程/触发器 4.1、视图(view) 4.1.1、简介及基本语法 1、介绍 视图&#xff08;View&#xff09;是一种虚拟存在的表。视图中的数据并不在数据库中实际存在&#xff0c;行和列数据来自定义视图的查询中使用的表&#xff0c;并且是在使用视图时动态生成的。 通…

源码级别的讲解JAVA 中的CAS

没有CAS之前实现线程安全 多线程环境不使用原子类保证线程安全&#xff08;基本数据类型&#xff09; public class T3 {volatile int number 0;//读取public int getNumber(){return number;}//写入加锁保证原子性public synchronized void setNumber(){number;} }多线程环…

代码随想录【Day09】|28. 找出字符串中第一个匹配项的下标、459. 重复的子字符串、《字符串总结》

28. 找出字符串中第一个匹配项的下标 题目链接 题目描述&#xff1a; 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串&#xff0c;在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在&#xff0c;则返回 -1。 示例 1: 输…

计算机图形学:改进的中点BH算法

作者&#xff1a;非妃是公主 专栏&#xff1a;《计算机图形学》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、改进缘由二、…

qt连接mysql,自编译生成驱动文件

CMakeninja编译qt所需的mysql驱动文件 想用qt连接mysql数据库&#xff0c;但是在qt6.0版本之后都不自带驱动需要自己编译&#xff0c;过程中由于不熟悉cmake以及ninja&#xff0c;踩了一百个坑&#xff0c;简单记录一下。 写在前面 csdn上也有很多大佬写得用cmake-gui来编译…

代码随想录算法训练营第43天DP动态规划62不同路径63 不同路径2

文章目录LeetCode 62不同路径题目讲解思路LeetCode 63 不同路径ii题目讲解思路小结LeetCode 62不同路径 题目讲解 思路 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 根据题意来看机器人只能进行向右…

单链表的基本操作

此代码不可运行&#xff0c;含伪代码。一、 定义数据域typedef struct{ char num[8];char name[8];int score;}ElemType;二、 定义一个链表typedef struct LNode{ElemType data; //链表中结点的数据域 struct Lnode *next; //为指向下一个结点的指针域&#xff0c;并且所指向的…

物理师知识大杂烩|CT模拟机质量控制指南

引言 放射治疗 CT 模拟机&#xff08;computed tomography simulators, CT-Sim&#xff09;由带有平板床面的 CT 扫描仪、用于患者定位与体表标记的外部激光系统、CT 模拟软件以及各种硬拷贝输出设备组成。CT 模拟机为放射治疗计划设计提供了患者肿瘤、正常组织与危及器官的影…

TMDSEVM6657LS评估板恢复出厂默认状态

TMDSEVM6657LS评估板恢复出厂默认状态 前言 TMDSEVM6657LS评估板特别适用于DSP开发的初学者&#xff0c;但有时候拿到手的开发板几经流转&#xff0c;被别人修改过&#xff0c;也可能自己烧录过程出错&#xff0c;导致开发板的状态未知等原因&#xff0c;需要恢复到出厂默认状…