GaussDB数据库语法及gsql入门

news2024/12/24 3:13:04

一、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=#  \l
                                List of databases
      Name      |  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/root
 template1      | root | SQL_ASCII | C       | C     | =c/root          +
                |          |           |         |       | root=CTc/root
 human_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.areaS
               Table "hr.areas"
  Column   |         Type          | Modifiers 
-----------+-----------------------+-----------
 area_id   | numeric               | not null
 area_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 | Europe
       4 | Middle East and Africa
       2 | Americas
       3 | 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 Europe
      2 Americas
      3 Asia
      4 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|Americas
 
area_id|1
area_name|Europe
 
area_id|4
area_name|Middle East and Africa
 
area_id|3
area_name|Asia

 三、总结

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

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

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

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

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

相关文章

C语言——输出菱形

法一&#xff1a; #include<stdio.h> #define N 7 //假设输出7层菱形 int main(){int i;//i控制第几行 int j;//j控制每一行空格的循环个数 int k;//k控制每一行*的循环次数 for(i1;i<4;i){//将图形分为两部分,前四行(第一部分) for(j1;j<4-i;j){//输出第i行的…

【带头学C++】----- 九、类和对象 ---- 9.11 面向对象模型

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️麻烦您点个关注&#xff0c;不迷路❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目 录 9.11 面向对象的框架模型 9.11.1 成员变量与函数的存储架构 代码举例说明&#xff1a; 9.11.2 this指针 9.11.4 this指针的应用…

线程互斥与同步

用户级线程 内核的LWP Linux线程 OS概念中经常说的 用户级线程 和 内核级线程 也就是线程实现真的是在OS内部实现&#xff0c;还是应用层或用户层实现 很明显Linux是属于用户级线程 用户级执行流&#xff08;用户级线程&#xff09; &#xff1a;内核lwp 1 : 1 也有1&…

Anaconda+Pytorch(GPU版)深度学习环境配置笔记

主要参考以下文章进行配置&#xff1a; https://blog.csdn.net/qq_43757976/article/details/131173301 配置版本略有更新&#xff0c;最新版本时间为2023.12.11 一、准备工作 个人电脑配置&#xff1a;laptop RTX4060 win11 个人配置版本&#xff1a;cuda&#xff08;12.1&…

虹科Pico汽车示波器 | 汽车免拆检修 | 2019款别克GL8豪华商务车前照灯水平调节故障

一、故障现象 一辆2019款别克GL8豪华商务车&#xff0c;搭载LTG发动机&#xff0c;累计行驶里程约为10.7万km。车主反映&#xff0c;车辆行驶过程中组合仪表提示前照灯水平调节故障。 二、故障诊断 接车后试车&#xff0c;起动发动机&#xff0c;组合仪表上提示“前照灯水平调节…

OWASP ESAPI 预防XSS跨站脚本攻击

跨站脚本攻击XSS案例&#xff1a;跨站脚本攻击XSS案例及其解决方案_xss攻击案例-CSDN博客 Java集成&#xff1a; 1、引入maven <!--OWASP ESAPI&#xff0c;防御 XSS跨站攻击--><dependency><groupId>org.owasp.esapi</groupId><artifactId>esa…

90%的人都值得学习微信商城的准备工作,7个关键步骤

如何做一个小程序卖东西&#xff1f;90%的人都不知道微信商城的准备工作 近几年&#xff0c;随着疫情的影响和电商的崛起&#xff0c;实体生意大家都变得越来越难做&#xff0c;越来越多的企业老板开始把矛头转向成本费用比实体门店更加低的微商城小程序&#xff0c;通过小程序…

微信小程序 bindtap 事件多参数传递

在微信小程序中&#xff0c;我们无法直接通过 bindtap"handleClick(1,2,3)" 的方式传递参数&#xff0c;而是需要通过自定义属性 data- 的方式进行传递&#xff0c;并在事件回调函数中通过 event.currentTarget.dataset 来获取这些参数。然而&#xff0c;这种传参方式…

【FPGA】数字电路设计基础

数字电路基础 1 什么是数字电路 在学习数字电路之前&#xff0c;我们先要了解下什么是数字电路。想要搞明白数字电路&#xff0c;就要搞明白生活中有 两种概念&#xff0c; 数字信号和模拟信号&#xff0c;模拟信号一般包括压力、气温、速度等信号&#xff0c;模拟量的值是可…

4s店3D虚拟云展厅让看车变得更加便捷和高效

汽车企业7203D虚拟全景展示的特点和优势主要体现在以下几个方面&#xff1a; 逼真的观赏和试乘体验&#xff1a;7203D虚拟全景展示利用虚拟现实技术&#xff0c;提供了高度逼真的汽车观赏和试乘体验。消费者可以在虚拟环境中更加深入地了解汽车的外观、内饰和功能特点&#xff…

【mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar安装】linux安装mysql5.7

之前安装的时候遇到了很多问题&#xff0c;浪费了一些时间。整理出这份教程&#xff0c;照着做基本一遍过。 这是安装包: 链接&#xff1a;https://pan.baidu.com/s/1gBuQBjA4R5qRYZKPKN3uXw?pwd1nuz 1.下载安装包&#xff0c;上传到linux。我这里就放到downloads目录下面…

阻抗控制下机器人接触刚性环境振荡不稳定进行阻抗调节

在阻抗控制下&#xff0c;当机器人接触刚性环境时&#xff0c;可能会出现振荡不稳定的情况。这可以通过调整机器人的阻抗参数来进行调节。 阻抗接触 阻抗参数中的质量、阻尼和刚度都会对机器人控制系统的性能和稳定性产生重要影响。质量主要影响系统的惯性&#xff0c;从而影响…

【网络安全】CTF入门教程(非常详细)从零基础入门到进阶,看这一篇就够了!

一、CTF简介 CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。…

ELK综合案例

综合案例 ELKfilebeatnginxjson nginx配置 1,在nginx服务器上安装nginx # yum install epel-release # yum install nginx 2,将nginx日志改成json格式,这样各个字段就方便最终在kibana进行画图统计了 # vim /etc/nginx/nginx.conf ​ http {log_format main $remote_ad…

Rust 学习

Rust 官网&#xff1a;https://www.rust-lang.org/zh-CN/ 1、Rust 简介 Rust 是一门注重安全&#xff08;safety&#xff09;、速度&#xff08;speed&#xff09;和并发&#xff08;concurrency&#xff09;的现代系统编程语言。Rust 通过内存安全来实现以上目标&#xff0c;但…

Faster R-CNN pytorch源码血细胞检测实战(二)数据增强

Faster R-CNN pytorch源码血细胞检测实战&#xff08;二&#xff09;数据增强 文章目录 Faster R-CNN pytorch源码血细胞检测实战&#xff08;二&#xff09;数据增强1. 资源&参考2. 数据增强2.1 代码运行2.2 文件存放 3 数据集划分4. 训练&测试5. 总结 1. 资源&参…

kafka windows版本的下载安装,并且本地使用(亲测有效)

目录 1 问题2 下载 1 问题 本地启动一个kafka &#xff0c;然后可以实现生产者 消费者 2 下载 https://downloads.apache.org/kafka/ 选择一个版本下载 下载之后解压 修改配置 修改好之后&#xff0c;就保存&#xff0c;之后先启动zookper &#xff0c;之后再启动 ka…

Mybatis-Plus 3.3.2 发布,新增优雅的数据安全保护姿势[MyBatis-Plus系列]

Hi,大家好,我是悟纤。过着爱谁谁的生活,活出不设限的人生。 存在数据库中的数据对于普通用户而言是不可见的,好像是藏起来了一样,但对于开发者,只要知道数据库的连接地址、用户名、密码,则数据不再安全;这也意味着,一旦连接数据库的配置文件暴露出去,则数据不再安全…

聚焦中国—东盟大健康产业峰会 点靓广西“长寿福地”品牌

12月8-10日2023中国—东盟大健康产业峰会暨大健康产业博览会在南宁国际会展中心成功举办&#xff0c;本次峰会由国家中医药管理局、广西壮族自治区人民政府联合主办&#xff0c;中国老年学和老年医学学会、自治区党委宣传部、自治区民政厅、广西壮族自治区外事办公室、广西壮族…

SQL窗口函数OVER用法整理

文章目录 SQL窗口函数OVER用法整理 SQL窗口函数OVER用法整理 OVER的定义 OVER用于为行定义一个窗口&#xff0c;它对一组值进行操作&#xff0c;不需要使用GROUP BY子句对数据进行分组&#xff0c;能够在同一行中同时返回基础行的列和聚合列。 语法 OVER ( [ PARTITION BY c…