# DWS数据库对象开发操作
本章节指导您对**数据库、模式和普通表** 执行相关操作：[新增数据库]、[新增模式]、[新增普通表]和[编辑普通表]。
 #### 新增数据库
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"数据 \> SQL编辑器"**。
3. 切换至**"数据源"** 面板，[数据源连接](https://support.huaweicloud.com/mgtg-dws/dws_01_0803.html)成功后，右键单击**"数据库"** ，再单击**"创建数据库"** 。
   
   图1创建数据库   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002640437494.png "点击放大")
   
   
4. 页面右边弹出**"创建数据库"** 页面，可根据需求填写。
   
   表1创建数据库参数说明 
   | 参数名称 | 描述                                                                |
   |:---|:---|
   | 数据库名称 | 设置数据库名称。以字母或下划线开头，由字母、数字或下划线组成，长度不超过63个字符。                         |
   | 所有者    | 下拉框选择新增数据库所有者，即拥有该数据库最高管理权限的用户。                                     |
   | 兼容模式  | 下拉框选择数据库兼容模式，包含Oracle、MySQL和Teradata三种，默认为Oracle。兼容模式决定SQL语法和数据类型的行为差异，创建后**不可修改**，请根据业务需求谨慎选择。 |
   | 编码     | 下拉框选择新增数据库编码方式，推荐SQL_ASCII。编码选择需与业务数据字符集一致，创建后**不可修改**。                                           |
   | 连接限制  | 设置该数据库允许的最大并发连接数。输入值不能小于-1，-1表示无限制。                                |
   | 描述     | 输入新增数据库的备注描述信息，便于后续维护识别。                                           |
   | SQL预览 | 可单击**"点击预览"**显示创建数据库SQL语法。                                         |
      
   
   
5. 确认无误后，单击**"确定"**，创建成功后可刷新数据库列表查看。
 
 #### 新增模式
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"数据 \> SQL编辑器"**。
3. 切换至**"数据源"** 面板，[新增数据库]后，数据库包含用户模式、系统模式、外部服务器。其中系统模式仅支持查看，不可编辑或删除。
4. 右键单击**"用户模式"** ，再单击**"新建模式"**。
5. 弹出**"新建模式"** 页面，用户可根据需求填写。
   
   表2新建模式参数说明 
   | 参数名称  | 描述                                                  |
   |:---|:---|
   | 模式名   | 设置模式名称。以字母或下划线开头，由字母、数字或下划线组成，长度不超过63个字符，且不能与已有模式重名。 |
   | 所有者    | 下拉框选择新增模式所有者，即拥有该模式最高管理权限的用户。                       |
   | 描述    | 输入新增模式的备注描述信息，便于后续维护识别。                             |
   | SQL预览 | 单击**"点击预览"**显示创建模式SQL语法。                          |
      
   
   
6. 确认无误后，单击**"确定"**。
 
 #### 新增普通表
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"数据 \> SQL编辑器"**。
3. 切换至**"数据源"** 面板，[新增模式]后，模式包含普通表、外表、视图、函数、序列和同义词等结构。
4. 右键单击**"普通表"** ，再单击**"新建普通表"** 可新增一个表，新增普通表的弹窗包含属性、列、数据分布、分区、索引和约束等选项，其中属性和列为必填项。可单击**"SQL预览"** ，查询创建表的SQL语句。
   
   表3新增数据表参数 
   | 面板    | 面板说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   |:---|:---|
   | 属性      | - **数据表名**：设置数据表名。  - **表存储方式**：可选择ROW（行存储）和COLUMN（列存储）。行存储适合频繁的增删改操作，列存储适合大数据量聚合分析查询。  - **是否分区表**：选择该表是否为分区表。分区表将大表按规则拆分为多个物理分区，可提升查询性能。  - **描述**：输入新增数据表的备注描述信息。                                                                                                                                                                                                                                                                                                                                                                                     |
   | 列      | 单击**"添加列"**，设置如下参数： - **列名**：设置列名称。  - **数据类型**：下拉框选择新增列对应的数据类型，如INTEGER、VARCHAR、DATE等。  - **长度**：设置数据总位数。置灰表示固定长度，不可修改。  - **精度**：设置小数位数。置灰表示无精度设置。  - **非空**：勾选后该列不允许插入NULL值。  - **唯一**：勾选后该列的值必须唯一，不允许重复。   |
   | 数据分布 | 有以下三种选择： - **ROUNDROBIN（轮询分布）**：表的每一行数据被依次地发送给各个DN，数据均匀分布，适用于无明确分布键的场景。  - **REPLICATION（复制分布）**：表的每一行数据存在所有DN中，即每个数据节点都有完整的表数据，适用于小表（如维度表）的关联查询优化。  - **HASH（哈希分布）**：对指定的列进行Hash，通过映射将数据分布到指定DN。为最常用的分布方式，建议选择关联键或过滤条件列作为分布列。                                                                                                                                                                                                                                                                                                                                                                   |
   | 分区    | 可在**"分区"** 面板具体选择**"分区类型"** （范围分区和列表分区）和**"可选列"** （对应选择表字段）。单击**"新增分区"**，设置如下参数： - **分区名称**：设置分区名称。  - **分区值** ：根据上述**"可选列"**的字段值设置分区边界值。范围分区需指定起止值，列表分区需指定枚举值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 索引     | 单击**"新增索引"**，设置如下参数： - **索引名称**：设置索引名称，可勾选是否为唯一索引。  - **访问方式**：下拉框选择索引访问方式，推荐btree（B-tree索引，适用于等值查询和范围查询）。  - **索引类型** ：可选**"列"** （基于单列或多列创建索引）和**"表达式"**（基于表达式创建索引）。  - **条件索引**：增加where条件约束，仅对满足条件的行创建索引（部分索引）。                                                                                                                                                                                                                            |
   | 表约束     | 单击**"新增约束"**，设置如下参数： - **约束类型**：可选check（检查约束）、unique（唯一约束）或primary（主键约束）。  - **表达式（check参数）**：可设置字段约束条件，如：age \> 0。  - **约束名称**：设置约束名称。  - **可选列（unique\\primary参数）**：下拉框选择参与约束的列。                                                                                                                                                                                                                                                                                      |
   | SQL预览   | 单击**"点击预览"**显示创建普通表SQL语法。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
      
   图2新建普通表   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002670437477.png "点击放大")
   
   
5. 确认无误后，单击**"确定"**。
 
 #### 编辑普通表
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"数据 \> SQL编辑器"**。
3. 切换至**"数据源"** 面板，[新增数据普通表]后，可对普通表进行编辑操作。
   
   图3编辑普通表   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002670597331.png "点击放大")
   
   
4. 右键单击**指定** **普通表名称** ，修改操作如下表所示：
   
   表4编辑数据表操作 
   | 操作              | 操作说明                                                                    |
   |:---|:---|
   | 修改普通表            | 单击**"修改"**可修改表名、模式和选择是否为分区表。                                            |
   | 删除普通表           | 单击**"删除"**可删除该普通表。删除后数据不可恢复，请谨慎操作。                                      |
   | 操作列              | 单击**"操作列"**可批量新增列、编辑列（列名、数据类型、长度、是否非空）和删除列。                              |
   | 操作索引           | 单击**"操作索引"** 可批量新增索引、编辑索引（索引名称）和删除索引。右键单击指定索引名称，单击**"编辑索引"**也可修改相应属性。   |
   | 操作约束           | 单击**"操作约束"** 可批量新增约束、编辑约束（约束名称、可选列）和删除约束。右键单击指定约束名称，单击**"编辑约束"**也可修改相应属性。 |
   | 操作分区（非分区表该按钮置灰） | 单击**"操作分区"** 可批量新增分区、编辑分区名称和删除分区。右键单击指定分区名称，单击**"编辑分区"**也可修改相应属性。      |
      
   
   
5. 修改确认无误后，单击**"确认"**。
 
