### DB2常用命令详解 #### 一、数据库创建与管理 **1. 创建数据库** 使用`CREATEDATABASE`命令可以创建一个新的数据库实例。在给定的示例中,通过以下命令创建了一个名为`DB2_GCB`的数据库: ```sql CREATE DATABASE DB2_GCB ON: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 ``` 这里指定了字符集为GBK,地区为中国(CN),并设定了默认的extent大小。 **2. 连接数据库** 要访问一个已存在的数据库,可以使用`CONNECT TO`命令,后跟数据库名、用户名和密码。例如: ```sql CONNECT TO sample1 USER db2admin USING 8301206 ``` #### 二、用户权限与表别名 **3. 用户与权限管理** 在DB2中,可以创建用户并授予其不同的权限。例如,创建用户`GUEST`并赋予`DBADM`, `CREATETAB`, `BINDADD`, `CONNECT`, `CREATE_NOT_FENCED_ROUTINE`等权限: ```sql GRANT DBADM, CREATETAB, BINDADD, CONNECT, CREATE_NOT_FENCED_ROUTINE ON DATABASE TO USER GUEST; ``` 同时,可以对模式(schema)进行权限管理,如: ```sql GRANT CREATEIN, DROPIN, ALTERIN ON SCHEMA DB2ADMIN TO USER GUEST WITH GRANT OPTION; ``` **4. 表别名** 创建表别名可以使SQL语句更简洁,易于理解和维护。例如: ```sql CREATE ALIAS DB2ADMIN.TABLES FOR SYSTAT.TABLES; ``` 这里将`SYSTAT.TABLES`的引用简化为`DB2ADMIN.TABLES`。 #### 三、表操作 **5. 表结构管理** 可以使用`CREATE TABLE`、`ALTER TABLE`和`DROP TABLE`来创建、修改或删除表结构: - 创建表:`CREATE TABLE table_name (column1 DATATYPE NOT NULL PRIMARY KEY, column2 DATATYPE NOT NULL);` - 修改表添加列:`ALTER TABLE table_name ADD COLUMN column_name DATATYPE` - 修改表添加主键:`ALTER TABLE table_name ADD PRIMARY KEY (column_name)` - 删除主键:`ALTER TABLE table_name DROP PRIMARY KEY (column_name)` - 删除表:`DROP TABLE table_name` #### 四、数据操作 **6. 数据插入、更新与删除** 对表中的数据进行操作是常见的需求: - 插入数据:`INSERT INTO zjt_tables SELECT * FROM tables;` - 更新数据:`UPDATE test SET phone = '65356675' WHERE id = 1;` - 删除数据:`DELETE FROM test WHERE id = 1;` #### 五、视图与触发器 **7. 视图创建** 视图可以提供数据的抽象层,简化查询复杂度。例如: ```sql CREATE VIEW V_zjt_tables AS SELECT tabschema, tabname FROM zjt_tables; ``` **8. 触发器创建** 触发器可以在特定的数据库事件发生时自动执行SQL语句,例如: ```sql CREATE TRIGGER zjt_tables_del AFTER DELETE ON zjt_tables REFERENCING OLD AS O FOR EACH ROW MODE DB2SQL Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) ``` #### 六、索引管理 **9. 索引创建与删除** 索引用于加速数据检索速度。例如,创建唯一索引: ```sql CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname); ``` 删除索引: ```sql DROP INDEX I_ztables_tabname; ``` #### 七、元数据查询 **10. 查看表、列、结构、索引、视图与存储过程** DB2提供了多种方式来查询数据库的元数据: - 查看表:`SELECT tabname FROM tables WHERE tabname = 'ZJT_TABLES';` - 查看列:`SELECT SUBSTR(COLNAME,1,20) as 列名, TYPENAME as 类型, LENGTH as 长度 FROM columns WHERE tabname = 'ZJT_TABLES';` - 查看表结构:`DB2 DESCRIBE TABLE user1.department` - 查看表的索引:`DB2 DESCRIBE INDEXES FOR TABLE user1.department` - 查看视图:`SELECT viewname FROM views WHERE viewname = 'V_ZJT_TABLES';` - 查看索引:`SELECT indname FROM indexes WHERE indname = 'I_ZTABLES_TABNAME';` - 查看存储过程:`SELECT SUBSTR(PROCSCHEMA,1,15), SUBSTR(PROCNAME,1,15) FROM SYSCAT.PROCEDURES;` #### 八、数据类型转换 **11. 类型转换** 在查询或计算过程中,可能需要将一种数据类型转换为另一种数据类型。例如,将`VARCHAR`类型的字段转换为`INTEGER`: ```sql SELECT CAST(ip AS INTEGER) + 50 FROM log_comm_failed; ``` 以上命令涵盖了DB2数据库中常见的管理和数据操作需求,从数据库创建到数据查询和维护,提供了全面的指导。熟练掌握这些命令,对于DB2数据库的日常管理和开发工作至关重要。
- 粉丝: 3
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助