"Oracle学习笔记,涵盖了Oracle数据库的用户管理、数据类型以及表的约束等内容。"
Oracle数据库是世界上最广泛使用的数据库管理系统之一,它提供了强大的数据存储和管理能力。这篇学习笔记主要关注了以下几个核心知识点:
1. **用户管理**:
- **创建用户**:使用`CREATE USER`语句可以创建新的数据库用户,如`CREATEUSER tom IDENTIFIED BY tom DEFAULT TABLESPACE inspur TEMPORARY TABLESPACE TEMP`,这会创建一个名为`tom`的用户,设定默认表空间为`inspur`,临时表空间为`TEMP`。
- **指定角色**:`ALTER USER`命令可以用来给用户指定角色,例如`ALTERUSER tom DEFAULT ROLE "CONNECT"`,将`CONNECT`角色赋予用户`tom`,使用户具有连接数据库的基本权限。
2. **权限管理**:
- **直接授权**:可以直接使用`GRANT`语句向用户授予特定的权限,如`GRANT SELECT ON table TO user`。
- **通过角色间接授权**:可以通过创建和分配角色,然后将权限赋予角色,再由角色传递给用户,这样便于权限管理。
3. **Oracle基本数据类型**:
- **Char**:用于存储定长字符串,最大长度为2000字节。
- **Varchar2**:用于存储变长字符串,最大长度为4000字节。
- **Nchar和Nvarchar2**:用于存储Unicode字符,提供对多语言的支持。
- **Number**:用于存储整数或浮点数。
- **Date**:用于存储日期数据。
- **Long, Raw, Longraw**:分别用于存储大容量的变长字符和二进制数据。
- **Rowid**:存储表中列的物理地址,是一个10字节的二进制值。
- **Blob, Clob, Nclob**:用于存储大量二进制和字符数据,Blob最大4GB,Clob和Nclob同样。
- **Bfile**:存储数据库外部的大型二进制文件。
- **Urowid**:存储任何类型列地址的二进制数据,比Rowid更通用。
- **Float**:用于存储浮点数。注意`Varchar`和`Varchar2`的区别,尽管当前两者无本质差异,但Oracle推荐使用`Varchar2`,因为它保证了版本兼容性。
4. **表的约束**:
- **PRIMARY KEY约束**:主键约束确保每条记录的唯一性,不允许为空且不能重复。
- **FOREIGN KEY约束**:外键约束用于维护参照完整性,它引用另一个表的主键,确保数据的一致性和关联性。
在设计数据库时,理解并正确使用这些概念至关重要,它们能帮助构建稳定、安全、高效的数据库结构。对于初学者而言,深入学习和实践这些知识是掌握Oracle数据库管理的基础。