GaussDB数据库语法及gsql入门

打印 上一主题 下一主题

主题 913|帖子 913|积分 2739

一、GaussDB数据库语法入门

之前我们讲了怎样连接数据库实例,那连接数据库后怎样利用数据库呢?那么我们今天就带各人了解一下GaussDB,以下简称GaussDB的基本语法。
关于怎样连接数据库,请戳这里。
学习本节课程之后,您将可以完成创建数据库、创建表及向表中插入数据和查询表中数据等操作。
1、前提条件

•   GaussDB实例正常运行。
•   已通过DAS或gsql连接数据库实例。
2、操作步骤



  • 通过DAS或gsql连接数据库实例。
  • 创建数据库用户。
      默认只有创建实例时的管理员用户可以访问初始数据库,您还可以手动创建其他数据库用户帐号。
  1. postgres=# CREATE USER joe WITH PASSWORD "xxxxxxxx";
复制代码
      xxxxxxxx需要替换为指定的暗码,当结果表现为如下信息,则表示创建乐成。
  1. CREATE ROLE
复制代码
      如上创建了一个用户名为joe,暗码为xxxxxxxxx的用户。
      如下下令为设置joe用户为系统管理员。
  1. postgres=# GRANT ALL PRIVILEGES TO joe;
复制代码
      利用GRANT下令进行相干权限设置,具体操作请参考GRANT。
      引申信息:GaussDB对于用户可以进行灵活的权限控制,想要了解请戳管理用户及权限。


  • 创建数据库。
  1. postgres=#  CREATE DATABASE db_tpcds;
复制代码
      当结果表现为如下信息,则表示创建乐成。
  1. CREATE DATABASE
复制代码
      创建完db_tpcds数据库后,就可以按如下方法退出postgres数据库,利用新用户连接到此数据库执行接下来的创建表等操作。当然,也可以选择继承在默认的postgres数据库下做后续的体验。
  1. postgres=#  \q  
  2. gsql -d db_tpcds -p 8000 -U joe  
  3. Password for user joe:  
  4. gsql  compiled at 2020-05-08 02:59:43 commit 2143 last mr 131)  
  5. Non-SSL connection (SSL connection is recommended when requiring high-security)  
  6. Type "help" for help.  
  7.    
  8. db_tpcds=>
复制代码


  • 创建表。
    创建一个名称为mytable,只有一列的表。字段名为firstcol,字段范例为integer。
  1. db_tpcds=>  CREATE TABLE mytable (firstcol int);
复制代码
       未利用“DISTRIBUTE BY”指定分布列时,系统默认会指定第一列为哈希分布列,且给出提示。系统返回信息以“CREATE TABLE”结束,表示创建表乐成。
  1. NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using 'firstcol' as the distribution column by default.
  2. HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
  3. CREATE TABLE
复制代码
   向表中插入数据:
  1. db_tpcds=> INSERT INTO mytable values (100);
复制代码
       当结果表现为如下信息,则表示插入数据乐成。
  1. INSERT 0 1
复制代码
   查看表中数据:
  1. db_tpcds=> SELECT * from mytable;
  2. firstcol  
  3. ----------
  4.       100
  5. (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端口。
  1. gsql -h 10.180.123.163 -d postgres -U jack -p 8000
复制代码
具体的gsql参数请拜见下令参考。
步骤 2 执行SQL语句。
以创建数据库human_staff为例。
  1. CREATE DATABASE human_staff;
  2. CREATE DATABASE
复制代码
通常,输入的下令行在遇到分号的时间结束。如果输入的下令行没有错误,结果就会输出到屏幕上。
步骤 3 执行gsql元下令。
以列出GaussDB中所有的数据库和描述信息为例。
  1. postgres=#  \l
  2.                                 List of databases
  3.       Name      |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
  4. ----------------+----------+-----------+---------+-------+-----------------------
  5. human_resource | root | SQL_ASCII | C       | C     |
  6. postgres       | root | SQL_ASCII | C       | C     |
  7. template0      | root | SQL_ASCII | C       | C     | =c/root         +
  8.                 |          |           |         |       | root=CTc/root
  9. template1      | root | SQL_ASCII | C       | C     | =c/root          +
  10.                 |          |           |         |       | root=CTc/root
  11. human_staff    | root | SQL_ASCII | C       | C     |
  12. (5 rows)
复制代码
更多gsql元下令请拜见元下令参考。
3、示例

以把一个查询分成多行输入为例。注意提示符的变化:
  1. postgres=# CREATE TABLE HR.areaS(
  2. postgres(# area_ID   NUMBER,
  3. postgres(# area_NAME VARCHAR2(25)
  4. postgres-# )tablespace EXAMPLE;
  5. CREATE TABLE
复制代码
查看表的定义:
  1. postgres=# \d HR.areaS
  2.                Table "hr.areas"
  3.   Column   |         Type          | Modifiers
  4. -----------+-----------------------+-----------
  5. area_id   | numeric               | not null
  6. area_name | character varying(25) |
复制代码
向HR.areaS表插入四行数据:
  1. postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1, 'Europe');
  2. INSERT 0 1
  3. postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (2, 'Americas');
  4. INSERT 0 1
  5. postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (3, 'Asia');
  6. INSERT 0 1
  7. postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (4, 'Middle East and Africa');
  8. INSERT 0 1
复制代码
切换提示符:
  1. postgres=# \set PROMPT1 '%n@%m %~%R%#'
  2. root@[local] postgres=#
复制代码
查看表:
  1. root@[local] postgres=#SELECT * FROM HR.areaS;
  2. area_id |       area_name        
  3. ---------+------------------------
  4.        1 | Europe
  5.        4 | Middle East and Africa
  6.        2 | Americas
  7.        3 | Asia
  8. (4 rows)
复制代码
可以用\pset下令以差异的方法表现表:
  1. root@[local] postgres=#\pset border 2
  2. Border style is 2.
  3. root@[local] postgres=#SELECT * FROM HR.areaS;
  4. +---------+------------------------+
  5. | area_id |       area_name        |
  6. +---------+------------------------+
  7. |       1 | Europe                 |
  8. |       2 | Americas               |
  9. |       3 | Asia                   |
  10. |       4 | Middle East and Africa |
  11. +---------+------------------------+
  12. (4 rows)
  13. root@[local] postgres=#\pset border 0
  14. Border style is 0.
  15. root@[local] postgres=#SELECT * FROM HR.areaS;
  16. area_id       area_name        
  17. ------- ----------------------
  18.       1 Europe
  19.       2 Americas
  20.       3 Asia
  21.       4 Middle East and Africa
  22. (4 rows)
复制代码
利用元下令:
  1. root@[local] postgres=#\a \t \x
  2. Output format is unaligned.
  3. Showing only tuples.
  4. Expanded display is on.
  5. root@[local] postgres=#SELECT * FROM HR.areaS;
  6. area_id|2
  7. area_name|Americas
  8. area_id|1
  9. area_name|Europe
  10. area_id|4
  11. area_name|Middle East and Africa
  12. area_id|3
  13. area_name|Asia
复制代码
 三、总结

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

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


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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表