根据提供的文件信息,我们可以归纳出一系列与Oracle数据库操作语言(SQL)相关的知识点。这些知识点主要围绕着Oracle数据库的基础管理、表的创建与管理、用户管理、权限管理以及基本的查询操作等方面。 ### 1. 基础命令 - **连接数据库**: - `conn [username]/[password]`:用于连接Oracle数据库。 - 示例:`conn scott/tiger`。 - **退出数据库**: - `exit`:退出当前的SQL*Plus会话。 - **清除屏幕**: - `clear`:清除SQL*Plus界面中的内容。 - **解锁用户账户**: - `ALTER USER [username] ACCOUNT UNLOCK;`:解锁指定用户的账户,使其可以登录。 - 示例:`ALTER USER scott ACCOUNT UNLOCK;` ### 2. 序列管理 - **创建序列**: - `CREATE SEQUENCE [sequence_name] [INCREMENT BY [increment_value]] [START WITH [start_value]] [NOMAXVALUE | MAXVALUE [max_value]] [NOCYCLE | CYCLE] [CACHE [cache_value] | NOCACHE];` - `INCREMENT BY`:指定序列每次递增的值。 - `START WITH`:指定序列的初始值。 - `NOMAXVALUE` / `MAXVALUE`:指定序列的最大值。 - `NOCYCLE` / `CYCLE`:指定序列是否循环。 - `CACHE` / `NOCACHE`:指定是否缓存序列值。 - 示例:创建一个名为`seq1`的序列,初始值为1,每次递增100,最大值为1000,并允许循环。 ```sql CREATE SEQUENCE seq1 INCREMENT BY 100 START WITH 1 MAXVALUE 1000 CYCLE NOCACHE; ``` - **修改序列**: - `ALTER SEQUENCE [sequence_name] [INCREMENT BY [increment_value]] [MAXVALUE [max_value]] [CYCLE | NOCYCLE] [CACHE [cache_value] | NOCACHE];` - 示例:修改序列`seq1`的每次递增值为100。 ```sql ALTER SEQUENCE seq1 INCREMENT BY 100; ``` - **获取序列值**: - `seq1.NEXTVAL`:获取序列的下一个值。 - `seq1.CURRVAL`:获取序列的当前值。 - **删除序列**: - `DROP SEQUENCE [sequence_name];` - 示例:删除序列`seq1`。 ```sql DROP SEQUENCE seq1; ``` ### 3. 同义词管理 - **创建同义词**: - `CREATE SYNONYM [synonym_name] FOR [table_name];` - 示例:创建一个名为`emp`的同义词,指向表`emp`。 ```sql CREATE SYNONYM emp FOR emp; ``` - **授权创建同义词**: - `GRANT CREATE SYNONYM TO [username];` - 示例:授予用户`scott`创建同义词的权限。 ```sql GRANT CREATE SYNONYM TO scott; ``` - **删除同义词**: - `DROP SYNONYM [synonym_name];` - 示例:删除同义词`emp`。 ```sql DROP SYNONYM emp; ``` ### 4. 表的创建与管理 - **创建表**: - `CREATE TABLE [table_name] ( [column_name] [data_type] [constraints], ... );` - 示例:创建一个名为`clas`的表,包含两列:`cid`(主键)和`cname`(非空)。 ```sql CREATE TABLE clas ( cid NUMBER(4) PRIMARY KEY, cname VARCHAR2(20) NOT NULL ); ``` - **表的约束**: - `PRIMARY KEY`:定义主键。 - `REFERENCES`:定义外键。 - `UNIQUE`:定义唯一约束。 - `NOT NULL`:定义非空约束。 - `DEFAULT`:定义默认值。 - `CHECK`:定义检查约束。 ### 5. 用户管理 - **创建用户**: - `CREATE USER [username] IDENTIFIED BY [password];` - 示例:创建用户名为`xiaoxiao`,密码为`xiao`的用户。 ```sql CREATE USER xiaoxiao IDENTIFIED BY xiao; ``` - **授权**: - `GRANT [privilege] TO [username];` - 示例:授予用户`scott`创建用户的权限。 ```sql GRANT CREATE USER TO scott; ``` - **修改用户密码**: - `ALTER USER [username] IDENTIFIED BY [new_password];` - 示例:修改用户`xiaoxiao`的密码为`xiaoxiao`。 ```sql ALTER USER xiaoxiao IDENTIFIED BY xiaoxiao; ``` - **删除用户**: - `DROP USER [username] [CASCADE];` - 示例:删除用户`xiaoxiao`及其所有对象。 ```sql DROP USER xiaoxiao CASCADE; ``` ### 6. 权限管理 - **系统权限**: - `SELECT * FROM user_sys_privs;`:查看当前用户的所有系统权限。 - **对象权限**: - `GRANT [object_privilege] ON [object_owner].[object_name] TO [username];` - 示例:授予用户`xiaoxiao`查询`scott.emp`表的权限。 ```sql GRANT SELECT ON scott.emp TO xiaoxiao; ``` - `SELECT * FROM user_tab_privs;`:查看当前用户的所有对象权限。 - **角色管理**: - `CREATE ROLE [role_name];`:创建角色。 - `GRANT [privilege] TO [role_name];`:向角色授予权限。 - 示例:创建一个名为`zhangzhe`的角色,并授予其创建会话和创建表的权限。 ```sql CREATE ROLE zhangzhe; GRANT CREATE SESSION, CREATE TABLE TO zhangzhe; ``` - `GRANT [role_name] TO [username];`:向用户授予角色。 - 示例:授予用户`xiaoxiao`角色`zhangzhe`。 ```sql GRANT zhangzhe TO xiaoxiao; ``` - `DROP ROLE [role_name];`:删除角色。 - 示例:删除角色`zhangzhe`。 ```sql DROP ROLE zhangzhe; ``` ### 7. 数据查询 - **基本查询**: - `SELECT * FROM [table_name];`:查询表中的所有记录。 - 示例:查询`emp`表中的所有记录。 ```sql SELECT * FROM emp; ``` - `SELECT [column_name], ... FROM [table_name];`:查询指定列的数据。 - 示例:查询`emp`表中的`ename`和`sal`两列数据。 ```sql SELECT ename, sal FROM emp; ``` - 使用数学表达式进行计算。 - 示例:计算4+5的结果。 ```sql SELECT 4 + 5 FROM dual; ``` - 使用函数进行数据处理。 - 示例:计算每个员工年薪(假设`comm`列可能为空)。 ```sql SELECT ename, 12 * (sal + NVL(comm, 0)) FROM emp; ``` 通过上述知识点,我们不仅可以了解到Oracle数据库的基本管理和操作方法,还能学习到如何有效地管理和利用数据库资源。这对于数据库管理员和开发人员来说都是非常重要的技能。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助