### DB2常用命令详解 #### 一、建立数据库 **命令:** `CREATE DATABASE DB2_GCB ONG: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32` - **功能描述:** 该命令用于创建一个新的数据库。 - **参数说明:** - `DB2_GCB`: 数据库名称。 - `ONG:`: 指定数据文件所在的文件系统或设备。 - `ALIAS DB2_GCB`: 创建一个数据库别名,便于后续操作。 - `USING CODESET GBK`: 指定字符集为GBK。 - `TERRITORY CN`: 指定地域为中国。 - `COLLATE USING SYSTEM`: 排序规则采用系统默认设置。 - `DFT_EXTENT_SZ 32`: 默认扩展大小设为32页。 #### 二、连接数据库 **命令:** `CONNECT TO sample1 USER db2admin USING 8301206` - **功能描述:** 连接到指定的数据库。 - **参数说明:** - `CONNECT TO sample1`: 指定要连接的数据库名为sample1。 - `USER db2admin`: 使用db2admin用户进行连接。 - `USING 8301206`: 输入密码8301206进行认证。 #### 三、建立别名 **命令示例:** ```sql CREATE ALIAS DB2ADMIN.TABLES FOR SYSSTAT.TABLES; CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS; CREATE ALIAS DB2ADMIN.COLUMNS FOR SYSCAT.COLUMNS; CREATE ALIAS GUEST.COLUMNS FOR SYSCAT.COLUMNS; ``` - **功能描述:** 创建对象别名,简化对数据库对象的引用。 - **参数说明:** - `DB2ADMIN.TABLES`: 别名名称。 - `SYSSTAT.TABLES`: 要引用的实际表名。 #### 四、建立表 **命令示例:** ```sql CREATE TABLE zjt_tables AS (SELECT * FROM tables) DEFINITION ONLY; CREATE TABLE zjt_views AS (SELECT * FROM views) DEFINITION ONLY; ``` - **功能描述:** 创建新表,并指定其结构与现有表相同。 - **参数说明:** - `zjt_tables`: 新建表的名称。 - `tables`: 源表名。 - `DEFINITION ONLY`: 只定义表结构而不实际创建数据。 #### 五、插入记录 **命令示例:** ```sql INSERT INTO zjt_tables SELECT * FROM tables; INSERT INTO zjt_views SELECT * FROM views; ``` - **功能描述:** 将源表中的数据复制到新建的表中。 - **参数说明:** - `zjt_tables`: 目标表名。 - `tables`: 源表名。 #### 六、建立视图 **命令示例:** ```sql CREATE VIEW V_zjt_tables AS SELECT tabschema, tabname FROM zjt_tables; ``` - **功能描述:** 创建视图,以便更灵活地查询数据。 - **参数说明:** - `V_zjt_tables`: 视图名称。 - `tabschema`: 表模式。 - `tabname`: 表名称。 #### 七、建立触发器 **命令示例:** ```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)); ``` - **功能描述:** 在删除操作后触发,将被删除的数据保存到另一个表中。 - **参数说明:** - `zjt_tables_del`: 触发器名称。 - `AFTER DELETE`: 触发条件为删除操作。 - `REFERENCING OLD AS O`: 引用旧数据为O。 - `FOR EACH ROW`: 对每一行都触发。 - `MODE DB2SQL`: 指定处理方式为DB2 SQL语句。 #### 八、建立唯一性索引 **命令示例:** ```sql CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname); ``` - **功能描述:** 建立唯一性索引,确保某一列值的唯一性。 - **参数说明:** - `I_ztables_tabname`: 索引名称。 - `zjt_tables`: 表名称。 - `tabname`: 建立索引的列名。 #### 九、查看表 **命令示例:** ```sql SELECT tabname FROM tables WHERE tabname = 'ZJT_TABLES'; ``` - **功能描述:** 查询特定表的信息。 - **参数说明:** - `tabname`: 表名。 #### 十、查看列 **命令示例:** ```sql SELECT SUBSTR(COLNAME, 1, 20) AS 列名, TYPENAME AS 类型, LENGTH AS 长度 FROM columns WHERE tabname = 'ZJT_TABLES'; ``` - **功能描述:** 显示表中各列的信息。 - **参数说明:** - `COLNAME`: 列名。 - `TYPENAME`: 数据类型。 - `LENGTH`: 列长度。 - `tabname`: 表名。 #### 十一、查看表结构 **命令示例:** ```sql DB2 DESCRIBE TABLE user1.department; DB2 DESCRIBE SELECT * FROM user.tables; ``` - **功能描述:** 查看表的具体结构和定义。 - **参数说明:** - `user1.department`: 要查看的表名。 #### 十二、查看表的索引 **命令示例:** ```sql DB2 DESCRIBE INDEXES FOR TABLE user1.department; ``` - **功能描述:** 获取表上建立的所有索引信息。 - **参数说明:** - `user1.department`: 表名。 #### 十三、查看视图 **命令示例:** ```sql SELECT viewname FROM views WHERE viewname = 'V_ZJT_TABLES'; ``` - **功能描述:** 查找指定视图的信息。 - **参数说明:** - `viewname`: 视图名称。 #### 十四、查看索引 **命令示例:** ```sql SELECT indname FROM indexes WHERE indname = 'I_ZTABLES_TABNAME'; ``` - **功能描述:** 查询特定索引的详细信息。 - **参数说明:** - `indname`: 索引名称。 #### 十五、查看存储过程 **命令示例:** ```sql SELECT SUBSTR(PROCSCHEMA, 1, 15), SUBSTR(PROCNAME, 1, 15) FROM SYSCAT.PROCEDURES; ``` - **功能描述:** 列出存储过程的基本信息。 - **参数说明:** - `PROCSCHEMA`: 存储过程所属模式。 - `PROCNAME`: 存储过程名称。 #### 十六、类型转换 **命令示例:** ```sql IPDATATYPE: VARCHAR SELECT CAST(ip AS INTEGER) + 50 FROM log_comm_failed; ``` - **功能描述:** 对字段进行类型转换。 - **参数说明:** - `ip`: 字段名。 - `VARCHAR`: 原始数据类型。 - `INTEGER`: 转换后的数据类型。 #### 十七、重新连接 **命令示例:** ```sql CONNECT RESET; ``` - **功能描述:** 断开并重新建立与数据库的连接。 #### 十八、中断数据库连接 **命令示例:** ```sql DISCONNECT DB2_GCB; ``` - **功能描述:** 断开当前数据库连接。 #### 十九、查看当前应用列表 **命令示例:** ```sql LIST APPLICATION; ``` - **功能描述:** 列出当前所有正在运行的应用程序。 #### 二十、终止应用 **命令示例:** ```sql FORCE APPLICATION (0); DB2 FORCE APPLICATIONS ALL; ``` - **功能描述:** 强制终止指定的应用程序或所有应用程序。 - **参数说明:** - `(0)`: 应用程序ID。 - `ALL`: 终止所有应用程序。 #### 二十一、锁定表 **命令示例:** ```sql LOCK TABLE test IN EXCLUSIVE MODE; ``` - **功能描述:** 锁定表,阻止其他用户对该表的操作。 - **参数说明:** - `test`: 表名。 - `EXCLUSIVE MODE`: 排他锁。 #### 二十二、共享锁表 **命令示例:** ```sql LOCK TABLE test IN SHARE MODE; ``` - **功能描述:** 以共享方式锁定表。 - **参数说明:** - `test`: 表名。 - `SHARE MODE`: 共享锁。 #### 二十三、显示当前用户所有表 **命令示例:** ```sql LIST TABLES; ``` - **功能描述:** 列出当前用户所拥有的所有表。 #### 二十四、列出所有的系统表 **命令示例:** ```sql LIST TABLES FOR SYSTEM; ``` - **功能描述:** 显示系统表的信息。 #### 二十五、显示当前活动数据库 **命令示例:** ```sql LIST ACTIVE DATABASES; ``` - **功能描述:** 列出所有当前活动的数据库。 #### 二十六、查看命令选项 **命令示例:** ```sql LIST COMMAND OPTIONS; ``` - **功能描述:** 显示可用命令及其选项。 #### 二十七、系统数据库目录 **命令示例:** ```sql LIST DATABASE DIRECTORY; ``` - **功能描述:** 查看系统数据库目录。 #### 二十八、表空间 **命令示例:** ```sql LIST TABLESPACES; ``` - **功能描述:** 显示所有表空间的信息。 #### 二十九、表空间容器 **命令示例:** ```sql LIST TABLESPACE CONTAINERS FOR <表空间名>; ``` - **功能描述:** 查看指定表空间的容器信息。 - **参数说明:** - `<表空间名>`: 要查询的表空间名称。 #### 三十、显示用户数据库的存取权限 **命令示例:** ```sql GET AUTHORIZATIONS; ``` - **功能描述:** 获取用户在数据库中的权限信息。 #### 三十一、启动实例 **命令示例:** ```sql DB2START; ``` - **功能描述:** 启动DB2实例。 #### 三十二、停止实例 **命令示例:** ```sql DB2STOP; ``` - **功能描述:** 停止DB2实例。 #### 三十三、表或视图特权 **命令示例:** ```sql GRANT SELECT, DELETE, INSERT, UPDATE ON TABLES TO USER; ``` - **功能描述:** 授予表或视图的访问权限给用户。 - **参数说明:** - `SELECT, DELETE, INSERT, UPDATE`: 权限类型。 - `TABLES`: 表或视图名称。 - `TO USER`: 接受权限的用户。 以上列举了DB2中常见的管理和操作命令,对于初学者来说是非常有价值的参考资料。通过掌握这些基本命令,可以有效地进行数据库的管理与维护工作。
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助