### Oracle常用命令详解
在日常的数据库管理与开发过程中,Oracle数据库因其稳定性和高效性而被广泛使用。本文将深入解析一系列常用的Oracle命令,旨在帮助DBA、开发人员及数据库爱好者更好地理解和掌握Oracle数据库的管理和操作技巧。
#### 1. Sqlplus登录与退出
Sqlplus是Oracle提供的一种命令行工具,用于执行SQL语句、PL/SQL脚本等。通过以下命令可以启动Sqlplus:
```
sqlplusw/nolog
```
接着,你可以连接到指定的数据库实例:
```
connsys/change_on_install@oracle90assysdba
```
这里的`sys`是数据库管理员用户名,`change_on_install`是初始密码,`oracle90`是服务名,`as sysdba`表示以管理员身份登录。
#### 2. 数据库启动与关闭
- `startup open`:启动数据库并打开它,这是最常见的启动方式。
- `startup nomount`:只启动实例,不装载数据库。在这种状态下,可以进行实例级别的管理操作,如修改参数文件。
- `startup mount`:启动实例并装载数据库,但不打开数据库。此状态可用于数据恢复或进行数据库结构的修改。
- `startup pfile='路径' open`:使用参数文件启动数据库并打开。
要关闭数据库,可使用`shutdown`命令,具体有:
- `shutdown normal`:正常关闭,等待所有用户断开连接后关闭。
- `shutdown immediate`:立即关闭,强制断开所有用户的连接。
- `shutdown abort`:强行关闭,未提交的事务将回滚。
#### 3. 显示当前用户
使用`show user`命令可以显示当前登录的数据库用户。
#### 4. 创建与修改约束
- 创建表时添加约束:`create table ... constraint pk ... primary key ...`
- 修改约束:`alter table ... modify ... constraint ...`
- 删除约束:`alter table ... drop constraint ... cascade`
其中,`cascade`选项用于级联删除依赖于该约束的其他对象。
#### 5. 描述表结构
使用`describe`或`desc`命令可以查看表的结构,包括列名、数据类型等信息。
#### 6. 删除表
`drop table 表名;`用于删除表。注意,这将永久删除表及其所有数据,操作前需谨慎。
#### 7. 更新表结构
- 添加列:`alter table 表名 add 列名 类型 [默认值];`
- 修改列:`alter table 表名 modify 列名 类型 [默认值];`
- 删除列:`alter table 表名 drop column 列名;`
- 删除约束:`alter table 表名 drop constraint 约束名 cascade;`
#### 8. 插入数据
`insert into 表名 (列名列表) values (值列表);`用于向表中插入一行数据。
#### 9. 提交事务
`commit;`命令用于提交事务,使对数据的更改成为永久性的。
#### 10. 批量插入数据
`insert into 目标表 select ... from 源表 where ...;`用于从一个表复制数据到另一个表。
#### 11. 清空表
- `truncate table 表名;`快速清空表数据,不记录事务日志,速度快但不可回滚。
- `delete from 表名 where 条件;`按条件删除数据,记录事务日志,可回滚但速度慢。
#### 12. 更新数据
`update 表名 set 列名 = 值 [where 条件];`用于更新表中的数据。
以上命令涵盖了Oracle数据库的常规管理和操作,熟练掌握这些命令将极大地提高数据库管理效率和安全性。