GaussDB数据库语法及gsql入门

一、GaussDB数据库语法入门

之前我们讲了如何连接数据库实例,那连接数据库后如何使用数据库呢?那么我们今天就带大家了解一下GaussDB,以下简称GaussDB的基本语法。

关于如何连接数据库,请戳这里。

学习本节课程之后,您将可以完成创建数据库、创建表及向表中插入数据和查询表中数据等操作。

1、前提条件

•   GaussDB实例正常运行。

•   已通过DAS或gsql连接数据库实例。

2、操作步骤

  • 通过DAS或gsql连接数据库实例。
  • 创建数据库用户。

      默认只有创建实例时的管理员用户可以访问初始数据库,您还可以手动创建其他数据库用户帐号。

postgres=# CREATE USER joe WITH PASSWORD "xxxxxxxx";

      xxxxxxxx需要替换为指定的密码,当结果显示为如下信息,则表示创建成功。

CREATE ROLE

      如上创建了一个用户名为joe,密码为xxxxxxxxx的用户。

      如下命令为设置joe用户为系统管理员。

postgres=# GRANT ALL PRIVILEGES TO joe;

      使用GRANT命令进行相关权限设置,具体操作请参考GRANT。

      引申信息:GaussDB对于用户可以进行灵活的权限控制,想要了解请戳管理用户及权限。

  • 创建数据库。
postgres=#  CREATE DATABASE db_tpcds;

      当结果显示为如下信息,则表示创建成功。

CREATE DATABASE

      创建完db_tpcds数据库后,就可以按如下方法退出postgres数据库,使用新用户连接到此数据库执行接下来的创建表等操作。当然,也可以选择继续在默认的postgres数据库下做后续的体验。

postgres=#  \q  
gsql -d db_tpcds -p 8000 -U joe  
Password for user joe:  
gsql  compiled at 2020-05-08 02:59:43 commit 2143 last mr 131)  
Non-SSL connection (SSL connection is recommended when requiring high-security)  
Type "help" for help.  db_tpcds=> 
  • 创建表。

    创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为integer。

db_tpcds=>  CREATE TABLE mytable (firstcol int);

       未使用“DISTRIBUTE BY”指定分布列时,系统默认会指定第一列为哈希分布列,且给出提示。系统返回信息以“CREATE TABLE”结束,表示创建表成功。

NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using 'firstcol' as the distribution column by default. 
HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. 
CREATE TABLE

   向表中插入数据:

db_tpcds=> INSERT INTO mytable values (100);

       当结果显示为如下信息,则表示插入数据成功。

INSERT 0 1

   查看表中数据:

db_tpcds=> SELECT * from mytable; firstcol  
---------- 100 
(1 row)

      引申信息:

  • 默认情况下,新的数据库对象是创建在“$user”模式下的,例如刚刚新建的表。关于模式的更多信息请参考创建和管理schema。
  • 关于创建表的更多信息请参见创建和管理表。
  • 除了创建的表以外,数据库还包含很多系统表。这些系统表包含集群安装信息以及GaussDB上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表。

二、GaussDB数据库gsql入门

gsql是GaussDB提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护,除了具备操作数据库的基本功能,gsql还提供了若干高级特性,便于用户使用。

1、基本功能

  • 连接数据库:可以通过gsql远程连接数据库实例。如何使用gsql连接数据库请参考连接实例。
  • 执行SQL语句:支持交互式地键入并执行SQL语句,也可以执行一个文件中指定的SQL语句。
  • 执行元命令:元命令可以帮助管理员查看数据库对象的信息、查询缓存区信息、格式化SQL输出结果,以及连接到新的数据库等。

2、使用指导

步骤 1 使用gsql连接到GaussDB实例。

gsql工具使用-d参数指定目标数据库名、-U参数指定数据库用户名、-h参数指定主机名、-p参数指定端口号信息。

若未指定数据库名称,则使用初始化时默认生成的数据库名称;若未指定数据库用户名,则默认使用当前操作系统用户作为数据库用户名;当某个值没有前面的参数(-d、-U等)时,若连接的命令中没有指定数据库名(-d)则该参数会被解释成数据库名;如果已经指定数据库名(-d)而没有指定数据库用户名(-U)时,该参数则会被解释成数据库用户名。

示例,使用jack用户连接到远程主机postgres数据库的8000端口。

gsql -h 10.180.123.163 -d postgres -U jack -p 8000

详细的gsql参数请参见命令参考。

步骤 2 执行SQL语句。

以创建数据库human_staff为例。

CREATE DATABASE human_staff;
CREATE DATABASE

通常,输入的命令行在遇到分号的时候结束。如果输入的命令行没有错误,结果就会输出到屏幕上。

步骤 3 执行gsql元命令。

以列出GaussDB中所有的数据库和描述信息为例。

postgres=#  \lList of databasesName      |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
----------------+----------+-----------+---------+-------+-----------------------human_resource | root | SQL_ASCII | C       | C     | postgres       | root | SQL_ASCII | C       | C     | template0      | root | SQL_ASCII | C       | C     | =c/root         +|          |           |         |       | root=CTc/roottemplate1      | root | SQL_ASCII | C       | C     | =c/root          +|          |           |         |       | root=CTc/roothuman_staff    | root | SQL_ASCII | C       | C     | 
(5 rows)

更多gsql元命令请参见元命令参考。

3、示例

以把一个查询分成多行输入为例。注意提示符的变化:

postgres=# CREATE TABLE HR.areaS(
postgres(# area_ID   NUMBER,
postgres(# area_NAME VARCHAR2(25)
postgres-# )tablespace EXAMPLE;
CREATE TABLE

查看表的定义:

postgres=# \d HR.areaSTable "hr.areas"Column   |         Type          | Modifiers 
-----------+-----------------------+-----------area_id   | numeric               | not nullarea_name | character varying(25) |

向HR.areaS表插入四行数据:

postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1, 'Europe');
INSERT 0 1
postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (2, 'Americas');
INSERT 0 1
postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (3, 'Asia');
INSERT 0 1
postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (4, 'Middle East and Africa');
INSERT 0 1

切换提示符:

postgres=# \set PROMPT1 '%n@%m %~%R%#'
root@[local] postgres=#

查看表:

root@[local] postgres=#SELECT * FROM HR.areaS;area_id |       area_name        
---------+------------------------1 | Europe4 | Middle East and Africa2 | Americas3 | Asia
(4 rows)

可以用\pset命令以不同的方法显示表:

root@[local] postgres=#\pset border 2
Border style is 2.
root@[local] postgres=#SELECT * FROM HR.areaS;
+---------+------------------------+
| area_id |       area_name        |
+---------+------------------------+
|       1 | Europe                 |
|       2 | Americas               |
|       3 | Asia                   |
|       4 | Middle East and Africa |
+---------+------------------------+
(4 rows)root@[local] postgres=#\pset border 0
Border style is 0.
root@[local] postgres=#SELECT * FROM HR.areaS;
area_id       area_name        
------- ----------------------1 Europe2 Americas3 Asia4 Middle East and Africa
(4 rows)

使用元命令:

root@[local] postgres=#\a \t \x
Output format is unaligned.
Showing only tuples.
Expanded display is on.root@[local] postgres=#SELECT * FROM HR.areaS;
area_id|2
area_name|Americasarea_id|1
area_name|Europearea_id|4
area_name|Middle East and Africaarea_id|3
area_name|Asia

 三、总结

云数据库 GaussDB各特性版本的功能发布和对应的文档动态,欢迎体验。

GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000+扩展能力,PB级海量存储等企业级数据库特性。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。

今天就为大家介绍到这里啦,欢迎交流~

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

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

相关文章

【开题报告】基于SpringBoot的消防知识科普平台的设计与实现

1.选题背景 消防知识科普平台的设计与实现是为了提高公众对于消防安全的认知和应对能力,促进社会消防文化的普及和发展。在中国,火灾事故时有发生,造成了重大人员伤亡和财产损失。因此,建立一个基于Spring Boot的消防知识科普平台…

docker---网络

docker的网络模式: 1、桥接模式:创建docker时不需要指定网络类型,默认模式。 2、host模式: 容器将不会虚拟出自己的网卡,也没有自己的ip地址,全部使用宿主机的ip和端口。 3、container模式:容器和容器之间…

第五届计算机能力挑战赛国赛C语言组题解(专科组)

前言:   前两天计算机能力挑战赛国赛结束了,拿着题做了一遍,发现难度真的不大,比省赛简单多了,只是有时候可能有的同学拿着题,没认真仔细去读,或者说紧张了导致自己发挥不好吧。以下是个人的题…

【运维】将Linux的硬盘当内存用,Linux内存不够用的时候如何用硬盘提升内存

文章目录 内存不够用,可以用硬盘当内存吗如何取消这种交换空间交换空间是优先使用的还是说原始内存是会被优先使用的 内存不够用,可以用硬盘当内存吗 是的,可以使用硬盘作为虚拟内存来扩展容器中的内存。这个过程被称为“交换”或“交换空间…

Django 模型操作-分页(七)

一、连接MySql数据库 1、先安装MySQL 2、再安装MySQL驱动 使用mysqlclient pip install mysqlclient 如果上面的命令安装失败, 则尝试使用国内豆瓣源安装: pip install -i https://pypi.douban.com/simple mysqlclient 二、在settings.py中配置 三、 book表的数据…

Android系统启动过程-uBoot+Kernel+Android

摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链接我会一一附上…

1009 说反话

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小…

【机器学习实训项目】黑色星期五画像分析

目录 前言 一、项目概述 1.1 项目简介 1.2 项目背景 1.3 项目目标 二、数据分析 2.1 导入库 2.2 数据基本信息 三、画像分析 3.1 画像1:消费金额Top10 3.2 画像2:高频消费Top10 3.3 画像3:人均消费金额Top10 3.4 画像4:男女消费对…

创投课程第四期 | Web3一级市场投资框架的演变及投资人能力框架的构成

协会邀请了来自Zonff Partners的合伙人——Colin,作为VC创投课程第4期的嘉宾,在北京时间12月9日(周六)下午14:00 PM-15:00 PM于蚂蚁链科技产业创新中心进行线下分享,届时将与所有对Web3投资、创业心怀热忱的朋友们共同探讨《WEB3一级市场投资…

双向链表(数据结构与算法)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

程序启动时访问了未初始化的类指针引发内存访问违例导致程序崩溃的问题排查

目录 1、问题说明 2、使用Windbg动态调试去初步分析 3、使用Windbg详细分析 4、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门…

20、XSS——XSS跨站脚本

文章目录 一、XSS漏洞概述1.1 XSS简介 二、XSS漏洞分类2.1 反射型XSS2.2 存储型XSS2.3 DOM型XSS 三、XSS payload构造以及变形3.1 XSS payload构造3.2 XSS payload 变形 一、XSS漏洞概述 1.1 XSS简介 XSS被称为跨站脚本攻击(Cross-site scripting)&…

linux dpdk 介绍

DPDK(Data Plane Development Kit)是一个由英特尔发起的开源项目,旨在提供一个快速、高性能的数据平面开发工具包,使网络应用能够在通用处理器上实现网络功能虚拟化(NFV)和软件定义网络(SDN&…

k8s volumes and data

Overview 传统上,容器引擎(Container Engine)不提供比容器寿命更长的存储。由于容器被认为是瞬态(transient)的,这可能会导致数据丢失或复杂的外部存储选项。Kubernetes卷共享 Pod 生命周期,而不是其中的容器。如果容器终止,数据…

排序的简单理解(上)

1. 排序的概念及引用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作(按照我们的需求能够有序的将数据信息排列起来)。 稳定性:假…

TeeChart.NET 2023.11.17 Crack

.NET 的 TeeChart 图表控件提供了一个出色的通用组件套件,可满足无数的图表需求,也针对重要的垂直领域,例如金融、科学和统计领域。 数据可视化 数十种完全可定制的交互式图表类型、地图和仪表指示器,以及完整的功能集&#xff0c…

医疗设备智慧管理助力医院提质增效,阿基米德amp;健康界实践分享

近日,苏州阿基米德网络科技有限公司与医疗领域头部级媒体健康界,联合举办“数智为擎 提质增效——医学装备智慧管理创新发展论坛”的直播活动。 直播现场,来自上海交通大学医学院附属同仁医院、中华医学会航海医学分会、苏州阿基米德的专家们…

统信UOS_麒麟KYLINOS上使用命令行配置NTP服务器

原文链接:统信UOS/麒麟KYLINOS上使用命令行配置NTP hello,大家好啊,今天我要给大家介绍的是在统信UOS/麒麟KYLINOS操作系统上使用命令行配置NTP(Network Time Protocol)服务器的方法。在内网环境下,许多企业…

13、C++异常处理

13、c异常处理 抛出异常捕获异常未抛出异常时的流程抛出异常时的流程捕获异常匹配顺序异常说明异常处理构造函数中的异常析构函数中的异常标准库异常类 抛出异常 throw 异常对象可以抛出基本类型的对象,如:throw -1;throw "内存分配失败!";也可以抛出类类…

AVP对纵向控制ESP(Ibooster)的需求规范

目录 1. 版本记录... 3 2. 文档范围和控制... 4 2.1 目的/范围... 4 2.2 文档冲突... 4 2.3 文档授权... 4 2.4 文档更改控制... 4 3. 功能概述... 5 4. 系统架构... 6 5. 主要安全目标... 7 5.1 …