greenplum sql使用实例【未完待续】

CREATE DATABASE

CREATE DATABASE name [ [WITH] [OWNER [=] dbowner]
                     [TEMPLATE [=] template]
                     [ENCODING [=] encoding]
                     [TABLESPACE [=] tablespace]
                     [CONNECTION LIMIT [=] connlimit ] ]

通过gp工具:

createdb -h 192.168.181.225 -p 5432 -U gpadmin db_t

sql方式:

CREATE DATABASE test_db1;`
CREATE DATABASE test_db2 with ENCODING 'UNICODE';`
CREATE DATABASE test_db3 CONNECTION LIMIT 30 ENCODING='UTF8';

问题,encoding修改成unicode感觉未生效,查看结果还是:

db_t=# \l
                  List of databases
   Name    |  Owner  | Encoding |  Access privileges  
-----------+---------+----------+---------------------
 db_t      | gpadmin | UTF8     | 
 test_db1  | gpadmin | UTF8     | 
 test_db2  | gpadmin | UTF8     | 
 test_db3  | gpadmin | UTF8     | 

CREATE SCHEMA

CREATE SCHEMA schema_name [AUTHORIZATION username] 
   [schema_element [ ... ]]
CREATE SCHEMA AUTHORIZATION rolename [schema_element [ ... ]]

保留字pg_开头

CREATE SCHEMA sch_01;

查看结果:

db_t=# \dn
       List of schemas
        Name        |  Owner  
--------------------+---------
 sch_01             | gpadmin

CREATE TABLE

CREATE [[GLOBAL | LOCAL] {TEMPORARY | TEMP}] TABLE table_name ( 
[ { column_name data_type [ DEFAULT default_expr ] 
   [column_constraint [ ... ]
[ ENCODING ( storage_directive [,...] ) ]
] 
   | table_constraint
   | LIKE other_table [{INCLUDING | EXCLUDING} 
                      {DEFAULTS | CONSTRAINTS}] ...}
   [, ... ] ]
   )
   [ INHERITS ( parent_table [, ... ] ) ]
   [ WITH ( storage_parameter=value [, ... ] )
   [ ON COMMIT {PRESERVE ROWS | DELETE ROWS | DROP} ]
   [ TABLESPACE tablespace ]
   [ DISTRIBUTED BY (column, [ ... ] ) | DISTRIBUTED RANDOMLY ]
   [ PARTITION BY partition_type (column)
       [ SUBPARTITION BY partition_type (column) ] 
          [ SUBPARTITION TEMPLATE ( template_spec ) ]
       [...]
    ( partition_spec ) 
        | [ SUBPARTITION BY partition_type (column) ]
          [...]
    ( partition_spec
      [ ( subpartition_spec
           [(...)] 
         ) ] 
    )

连接数据库

psql -h192.168.181.225 -d db_t -p5432 -Ugpadmin

### Greenplum SQL 中获取当前日期的函数 在 Greenplum SQL 中,可以通过多种方式来获取当前日期。以下是几种常用方法及其具体实现: #### 方法一:`NOW()` 函数 `NOW()` 是一种常用的内置函数,用于返回当前的时间戳(包括日期和时间)。如果只需要提取日期部分,则可以结合 `::date` 类型转换器或者字符串截取函数完成。 ```sql SELECT NOW()::DATE; -- 返回当前日期 ``` 这种方法利用了 PostgreSQL 的继承特性[^2],因为 Greenplum 基于 PostgreSQL 开发,因此支持类似的语法。 --- #### 方法二:`CURRENT_DATE` `CURRENT_DATE` 是专门用来获取当前日期的一个标准 SQL 函数,它会自动忽略时间部分并仅返回日期。 ```sql SELECT CURRENT_DATE; ``` 此函数简单直观,适用于大多数场景下只需关注日期的情况[^1]。 --- #### 方法三:`EXTRACT` 或 `TO_CHAR` 结合使用 当需要更灵活地控制日期格式时,可以借助 `EXTRACT` 和 `TO_CHAR` 这两个强大的工具。例如: - 提取年份: ```sql SELECT EXTRACT(YEAR FROM CURRENT_DATE); -- 使用 EXTRACT ``` - 格式化为特定样式: ```sql SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD'); -- 使用 TO_CHAR 定义输出格式 ``` 这些功能不仅限于获取完整的日期值,还可以进一步分解成具体的组成部分(如月份、星期等),满足复杂需求。 --- #### 示例代码综合展示 下面提供一段包含上述三种方法的实际应用例子: ```sql -- 当前日期的不同表示形式 WITH date_example AS ( SELECT NOW()::DATE AS current_date_now, CURRENT_DATE AS current_date_func, TO_CHAR(NOW(), 'YYYY-MM-DD') AS formatted_current_date ) SELECT * FROM date_example; ``` 运行以上脚本后,将会得到如下列名及对应的结果字段: | **current_date_now** | **current_date_func** | **formatted_current_date** | |----------------------|-----------------------|----------------------------| | YYYY-MM-DD | YYYY-MM-DD | YYYY-MM-DD | 每种表达均指向同一时刻服务器上的实际日期信息。 --- ### 注意事项 尽管 Greenplum 支持丰富的日期操作手段,但在跨平台开发过程中需要注意不同数据库间的行为差异。比如 MySQL 默认周数计算起点可能不同于 Greenplum 设置,这要求开发者额外调整逻辑以达成一致性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值