达梦数据库DM8 SQL语言指南

需积分: 9 1 下载量 73 浏览量 更新于2024-07-09 收藏 10.91MB PDF 举报
"这是一份关于国产数据库达梦(DM8)的SQL语言使用手册,涵盖了DM8 SQL语言的特点、保留字与标识符、数据类型、表达式、数据库模式,以及数据定义语句如数据库、用户、模式、表空间、表、索引的管理等。" 在DM8数据库系统中,SQL语言是用于数据管理和查询的主要工具。DM8 SQL语言具有独特的特点,包括对复杂查询的支持、高效的数据处理能力以及良好的兼容性。它遵循标准SQL规范,并且针对国产数据库环境进行了优化。 1.1 DM_SQL语言的特点 DM_SQL提供了丰富的数据操作功能,包括数据的增、删、改、查,支持事务处理,保证数据的一致性和完整性。此外,它还支持视图、存储过程、触发器等高级特性,以满足复杂的应用需求。 1.2 保留字与标识符 保留字是SQL语言中具有特殊含义的词汇,不能用作表名、列名等标识符。标识符则用来命名数据库对象,遵循特定的命名规则,例如大小写敏感性、长度限制等。 1.3 数据类型 DM8 SQL支持多种数据类型,包括: - 常规数据类型:如整数、实数、字符、二进制等。 - 位串数据类型:用于存储二进制数据,如BINARY、VARBINARY。 - 日期时间数据类型:如DATE、TIME、TIMESTAMP,用于存储日期和时间信息。 - 多媒体数据类型:如BLOB、CLOB,用于存储大容量的二进制和字符数据。 1.5 表达式 DM_SQL支持数值、字符串、时间和间隔值表达式,以及各种运算符,包括算术运算符、比较运算符、逻辑运算符等。运算符的优先级规则确保了表达式的正确解析。 1.6 数据库模式 数据库模式是逻辑上的数据组织方式,DM8 SQL允许用户定义、修改和删除模式,以实现数据库对象的分类和管理。 手册的后续章节深入讲解了如何使用DM8 SQL进行数据定义,如创建、修改和删除数据库、用户、模式、表空间、表、索引等。此外,还有示例库说明和参考脚本来帮助理解这些语句的实际应用。 例如,第3章详细介绍了数据定义语句: - 数据库修改语句:用于改变数据库的属性。 - 用户管理:包括定义、修改和删除用户,以及权限的授予和回收。 - 模式管理:定义、切换和删除模式,以控制数据库对象的访问。 - 表空间管理:涉及表空间的创建、修改、删除以及失效文件的检查和恢复,这是存储管理的关键部分。 - 表的管理:包括创建、修改、删除基表以及数据的插入和删除。 - 索引管理:创建、修改和删除索引以优化查询性能。 - 位图连接索引:适用于大数据量下的高效检索。 手册还包含了创建示例库的脚本,以及创建模式、表、插入数据的具体步骤,为实际操作提供了实践指导。通过这份手册,用户可以全面了解和掌握DM8数据库的SQL语言,从而有效地设计和管理数据库系统。

set hive.exec.dynamic.partition.mode=nonstrict; set hive.exec.parallel=true; set hive.exec.parallel.thread.number=30; --drop table if exists dm_finrisk.dm_event_walletSettleSuccessEvent_di; create table if not exists dm_finrisk.dm_event_cashLoanEvent_di( event_uuid string ,event_code string ,dt string ,event_time string ,rawSnapshot string ) COMMENT 'cashLoanEvent' PARTITIONED BY ( day bigint)stored as parquet; drop table if exists tmp.tmp_dm_event_cashLoanEvent_di_01_${zdt.addDay(-1).format("yyyyMMdd")}; create table if not exists tmp.tmp_dm_event_cashLoanEvent_di_01_${zdt.addDay(-1).format("yyyyMMdd")} as select uuid as event_uuid ,event as event_code ,from_unixtime(unix_timestamp(cast(day as string),'yyyymmdd'),'yyyy-mm-dd') as dt ,from_unixtime(cast(cast(`time` AS BIGINT)/1000 AS BIGINT),'yyyy-MM-dd HH:mm:ss') as event_time ,get_json_object(data,'$.hotPublish.rawSnapshot') as rawSnapshot from dm_finrisk.ods_event_hdfs_snapshot_di where code = 'shield@cashLoanEvent' and day=${zdt.addDay(-1).format("yyyyMMdd")} drop table if exists tmp.tmp_dm_event_cashLoanEvent_di_02_${zdt.addDay(-1).format("yyyyMMdd")}; create table if not exists tmp.tmp_dm_event_cashLoanEvent_di_02_${zdt.addDay(-1).format("yyyyMMdd")} as select event_uuid ,event_code ,dt ,event_time ,rawSnapshot from tmp.tmp_dm_event_cashLoanEvent_di_01_${zdt.addDay(-1).format("yyyyMMdd")}; alter table dm_finrisk.dm_event_cashLoanEvent_di drop if exists partition (day = ${zdt.addDay(-1).format("yyyyMMdd")}); insert overwrite table dm_finrisk.dm_event_cashLoanEvent_di partition (day = ${zdt.addDay(-1).format("yyyyMMdd")}) select event_uuid ,event_code ,dt ,event_time ,rawSnapshot from tmp.tmp_dm_event_cashLoanEvent_di_02_${zdt.addDay(-1).format("yyyyMMdd")}分析下上面代码

2023-06-08 上传