### 数据库使用方法详解
#### 一、数据库启动与停止
在管理数据库的过程中,启动与停止数据库是非常基础但又至关重要的操作。对于Informix数据库来说,`oninit` 和 `onmode` 命令是控制数据库启动和停止的主要工具。
##### 1. 启动数据库
启动数据库可以通过 `oninit` 命令来完成,该命令具有多种参数选项,可以灵活地根据需求进行配置。
- **oninit -i**:初始化磁盘空间和共享内存,保持在线模式。
- **oninit -p**:不回收临时表。
- **oninit -s**:初始化共享内存,保持静默模式。
- **oninit -y**:对所有提示作出肯定回应。
- **oninit –iy**:初始化数据库,执行此操作后,数据库将恢复到初始安装状态。
其中,`oninit –iy` 是一个非常强大的命令,它会将数据库重置为初始状态,因此在使用前必须确保已经备份了所有必要的数据。
##### 2. 停止数据库
停止数据库通常通过 `onmode` 命令实现,同样,这个命令也有多个参数选项。
- **onmode -k**:完全关闭数据库。
- **onmode -u**:停止数据库,并强制终止所有已连接的会话。
- **onmode -z [sessionid]**:杀死指定的数据库进程。
例如,如果需要停止数据库并在停止过程中结束所有正在运行的会话,可以使用 `onmode -u`。
#### 二、Informix数据库管理命令详解
除了基本的启动和停止命令外,`onmode` 还提供了其他丰富的功能用于数据库管理。
- **onmode -a <kbytes>**:增加共享内存段大小。
- **onmode -b <version>**:回滚动态服务器磁盘结构版本。
- **onmode -c [block|unblock]**:执行检查点,阻止或解除阻止服务器。
- **onmode -D <maxPDQpriorityallowed>**:设置最大优先级。
- **onmode -d {standard|{primary|secondary <servername>}}**:设置灾难恢复服务器类型。
- **onmode -F**:释放未使用的内存段。
- **onmode -e {on|off|enable|flush}**:配置或刷新共享语句缓存。
- **onmode -l**:强制进行下一次逻辑日志记录。
- **onmode -M <decisionsupportmemory inkbytes>**:设置决策支持内存大小。
- **onmode -m**:进入多用户在线模式。
- **onmode -n**:设置共享内存缓冲区缓存为非驻留。
- **onmode -O**:覆盖空间下降阻塞检查点。
- **onmode -p <+-#><class>**:启动或移除特定类别的虚拟处理器。
- **onmode -Q <max #decisionsupportqueries>**:设置最大决策支持查询数量。
- **onmode -R**:重建 `/INFORMIXDIR/etc/.infos.DBSERVERNAME` 文件。
- **onmode -r**:设置共享内存缓冲区缓存为驻留。
- **onmode -S <max #decisionsupportscans>**:设置最大决策支持扫描数量。
- **onmode -s**:关闭到单用户模式。
- **onmode -W {STMT_CACHE_NOLIMIT{0|1}|STMT_CACHE_HITS<#>}**:设置 ssc 参数。
- **onmode -y**:不要求确认。
- **onmode -Z <address>**:启发式完成指定的事务。
- **onmode -z <sid>**:杀死指定的会话 ID。
这些命令可以帮助管理员更高效地管理和维护数据库环境,确保其稳定性和性能。
#### 三、SQL语句
Informix数据库支持标准的SQL语句,包括数据操纵语言 (DML)、数据定义语言 (DDL) 等。下面详细介绍一些常用的SQL语句。
##### 1. SELECT 查询
`SELECT` 语句用于从数据库表或视图中检索数据。
```
SELECT select_list FROM tab_name | view_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_list
INTO TEMP table_name
```
- **select_list**:选择表中的列或全部列(*)。
- **tab_name** / **view_name**:表名称或视图名称。
- **condition**:查询条件,支持多种逻辑运算符和比较运算符。
- **column_name**:分组字段名称。
- **column_list**:排序字段列表,默认升序 (ASC),也可以指定降序 (DESC)。
- **table_name**:临时表名称。
##### 2. INSERT 插入数据
`INSERT` 语句用于向表中添加新行。
```
INSERT INTO view_name | table_name [(column_list)] VALUES (value_list)
```
或者
```
INSERT INTO view_name | table_name [(column_list)] select_statement
```
- **view_name | table_name**:视图名或表名称。
- **column_list**:数据项列表。
- **value_list**:值列表。
- **select_statement**:查询语句。
##### 3. DELETE 删除语句
`DELETE` 语句用于从表中删除行。
```
DELETE FROM view_name | table_name
WHERE condition
```
- **view_name | table_name**:视图名或表名称。
- **condition**:删除条件。
以上介绍的是Informix数据库的一些基本操作命令以及常见的SQL语句。掌握这些内容对于有效地管理和操作数据库至关重要。