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.rhkb.cn/news/212582.html

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

相关文章

python画立体玫瑰图

1.源代码 from matplotlib import cm import matplotlib.pyplot as plt import numpy as npfig plt.figure()#显示绘图窗口 ax fig.add_subplot(projection 3d)#绘图窗口设置 [x, t] np.meshgrid(np.array(range(25))/24.0, np.arange(0, 575.5, 0.5)/575*17*np.pi-2*np.pi…

玩转代码|组件封装之Slots、Emit和Props穿透

目录 背景 准备工作 Slots穿透方案-单子组件 Slots穿透方案-多子组件 Props和Emit穿透方案-单子组件 Props和Emit穿透方案-多子组件 最后 背景 组内多人共同开发时免不了基于某UI库二次封装组件来适应项目业务场景的情况,但不知道大家有没有遇到过需要兼容部…

伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证

深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…

DevOps搭建(一)-之swappiness安装详细步骤

1、安装swappiness yum install procps 修改配置 vim /etc/sysctl.conf 在配置文件中添加参数 vm.swappiness10 使生效 sysctl -p 如何确认swap分区是否开启 # free -mtotal used free shared buff/cache available Mem: 971 …

【React + Typescript】使用WebPack包管理、各种扩展插件组成的初始模板,开源协议:CC-BY-4.0

React Typescript Webpack 模板 模板展示项目结构使用的部分扩展包页面配置代码Layout 公共容器组件路由Jspackage.json 开源模板下载TIP 模板展示 项目结构 使用的部分扩展包 📂 System ├── 📂 Plugin │ ├── 📄 file-loader | 在处…

为什么SSL证书要设置有效期?如何避免SSL证书过期?

作为企业网站安全防护的基础设施之一,SSL证书对于验证网站真实性和保障网站数据传输安全具有重要作用。然而,当SSL证书过期时,用户与网站之间的传输过程就会处于暴露状态,很容易造成数据被监听、篡改和泄露。那么为什么SSL证书要设…

vue 前端实现login页登陆 验证码

实现效果 // template <el-form :model"loginForm" :rules"fieldRules" ref"loginForm" label-position"left" label-width"0px" class"login-container"><span class"tool-bar"></sp…

Docker本地部署Drupal内容管理框架并实现公网远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址7. 结语 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。它…

AtCoder ABC周赛2023 11/4 (Sat) D题题解

目录 原题截图&#xff1a; 题目大意&#xff1a; 主要思路&#xff1a; 注意事项&#xff08;很多人再这个地方掉坑&#xff09;&#xff1a; 代码&#xff1a; 原题截图&#xff1a; 题目大意&#xff1a; 给你两个数组&#xff08;A和B)长度都为n&#xff0c;然你求出一…

C语言——指针(五)

&#x1f4dd;前言&#xff1a; 上篇文章C语言——指针&#xff08;四&#xff09;更加深入的介绍了不同类型指针的特点&#xff0c;这篇文章主要想记录一下函数与指针的结合运用以及const和assert关于指针的用法&#xff1a; 1&#xff0c;函数与指针 2&#xff0c;const 3&am…

域名与SSL证书

域名是互联网上的地址标识符&#xff0c;它通过DNS&#xff08;Domain Name System&#xff09;将易于记忆的人类可读的网址转换为计算机可以理解的IP地址。当用户在浏览器中输入一个网址时&#xff0c;实际上是通过DNS解析到对应的服务器IP地址&#xff0c;从而访问到相应的网…

【DBeaver】驱动添加-Hive和星环

驱动 Hive驱动 hive驱动可以直接去官网下载官网地址&#xff0c;填一下个人信息。 如果想直接下载可以去我上次的资源下地址&#xff0c;需要用zip解压。 星环驱动 星环驱动是我第一次接触&#xff0c;是国产的基于开源Hive驱动自研的产品&#xff0c;我看到官网上有很多类…

SL1581降压恒压 耐压4V-30V降压5V 2A电流 外围简单,四个元器件

SL1581是一款专为降压恒压应用而设计的芯片&#xff0c;具有耐压4V-30V、降压5V、2A电流输出等特点&#xff0c;外围电路简单&#xff0c;仅需四个元器件。 一、芯片介绍 SL1581是一款专为降压恒压应用而设计的芯片&#xff0c;它采用先进的PWM控制技术&#xff0c;具有高效率、…

【PTA-C语言】编程练习4 - 数组Ⅰ

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习4 - 数组Ⅰ&#xff08;1~7&#xff09; 7-1 评委打分&#xff08;分数 10&#xff09;7-2 组合数的和&#xff08;分数 10&#xff09;7-3 找不同&#xff08;分数 15&#xff09;7-4 利用二分查找…

【Flink系列四】Window及Watermark

3.1、window 在 Flink 中 Window 可以将无限流切分成有限流&#xff0c;是处理有限流的核心组件&#xff0c;现在 Flink 中 Window 可以是时间驱动的&#xff08;Time Window&#xff09;&#xff0c;也可以是数据驱动的&#xff08;Count Window&#xff09;。 Flink中的窗口…

ELK(四)—els基本操作

目录 elasticsearch基本概念RESTful API创建非结构化索引&#xff08;增&#xff09;创建空索引&#xff08;删&#xff09;删除索引&#xff08;改&#xff09;插入数据&#xff08;改&#xff09;数据更新&#xff08;查&#xff09;搜索数据&#xff08;id&#xff09;&…

倚天屠龙:Github Copilot vs Cursor

武林至尊&#xff0c;宝刀屠龙。号令天下&#xff0c;莫敢不从。倚天不出&#xff0c;谁与争锋&#xff01; 作为开发人员吃饭的家伙&#xff0c;一款好的开发工具对开发人员的帮助是无法估量的。还记得在学校读书的时候&#xff0c;当时流行CS架构的RAD&#xff0c;Delphi和V…

xcode swiftui项目添加依赖

打开项目targets——Build Phases 点击“” 属于Apple SDKs的依赖可以直接添加 其他依赖需要在 Add Other中添加&#xff0c;在右上角用名字搜索或者URL地址(如GitHub上插件的地址)搜索,然后添加&#xff0c;也可添加本地文件

USB Type-C一拖二线缆制作方法

1 实现方法 Figure 1-1 Type-C Socket(母口) Figure 1-2 Type-C Plug(公头) Table 1-1 Type-C Socket Pin连接描述 Type-C Plug连接&#xff0c; 需要做一个一拖二的线&#xff0c;一根的一端是USB&#xff0c; 另外一根的一端是USB转UART&#xff0c; 参考Table 1-2。 Table 1…

css 修改滚动条样式,解决Windows浏览器中滚动条不美观问题

Windows环境中的浏览器中滚动条默认是直接显示了&#xff0c;不管光标是否进入该区域&#xff0c;这样就很不美观&#xff0c;如下图&#xff1a; 之前样式为 .well {display: block;background-color: #f2f2f2;border: 1px solid #ccc;margin: 5px;width: calc(100% - 12px);h…