Oracle数据库基础操作:建表与约束
需积分: 1 6 浏览量
更新于2024-09-14
收藏 56KB DOC 举报
"Oracle数据库的基本建表语句和相关操作"
在Oracle数据库中,建表是数据管理的基础操作。以下是一些关于Oracle基本建表语句及其相关操作的知识点:
1. 创建用户:
创建用户是设置数据库权限的第一步。`CREATE USER`语句用于创建新的数据库用户。例如:
```sql
CREATE USER han IDENTIFIED BY hand DEFAULT TABLESPACE users Temporary TABLESPACE Temp;
```
这里创建了一个名为"han"的用户,密码为"hand",默认表空间为"users",临时表空间为"Temp"。
2. 授权:
使用`GRANT`语句向用户授予权限。例如:
```sql
GRANT connect, resource, dba TO han; // 授予han连接、资源和DBA权限
```
这将给予用户han连接数据库、使用资源以及数据库管理员的权限。
3. 创建表:
`CREATE TABLE`语句用于创建新的表。例如:
```sql
CREATE TABLE T_STU (
STU_ID CHAR(5) NOT NULL,
STU_NAME VARCHAR2(8) NOT NULL
);
```
这将创建一个名为"T_STU"的表,包含两个字段:STU_ID(5个字符长,不允许为空)和STU_NAME(8个字符长,也不允许为空)。
4. 添加主键:
主键用于唯一标识表中的每一行。可以使用`ALTER TABLE`和`ADD CONSTRAINT`来添加主键,如:
```sql
ALTER TABLE T_STU ADD CONSTRAINT PK_T_STU PRIMARY KEY (STU_ID);
```
这将为"T_STU"表的STU_ID字段添加一个名为"PK_T_STU"的主键约束。
5. 添加外键:
外键用于建立表之间的关联。同样通过`ALTER TABLE`和`ADD CONSTRAINT`添加,如:
```sql
ALTER TABLE T_SCORE
ADD CONSTRAINT FK_T_SCORE_REFE FOREIGN KEY (STU_ID) REFERENCES T_STU(STU_ID);
```
这会创建一个外键约束"FK_T_SCORE_REFE",使得"T_SCORE"表中的STU_ID字段引用"T_STU"表的STU_ID字段。
6. 同时创建主键和外键:
可以在创建表时直接指定主键和外键,如下所示:
```sql
CREATE TABLE T_SCORE (
AUTOID NUMBER(10) NOT NULL PRIMARY KEY,
EXAM_SCORE NUMBER(5, 2),
EXAM_DATE DATE,
STU_ID CHAR(5),
SUB_ID CHAR(3),
CONSTRAINT FK_T_SCORE_REFE FOREIGN KEY (STU_ID) REFERENCES T_STU(STU_ID)
);
```
7. 查询表:
使用`SELECT`语句查询表中的数据,如:
```sql
SELECT * FROM classes;
```
这会返回"classes"表中的所有记录。
8. 删除表:
`DROP TABLE`语句用于删除表,例如:
```sql
DROP TABLE students;
```
将删除名为"students"的表。
9. 重命名表:
使用`RENAME`命令可以更改表的名称:
```sql
RENAME a_list_table_copy TO a_list_table;
```
这将把"a_list_table_copy"表重命名为"a_list_table"。
10. 显示表结构:
`DESCRIBE`或`DESC`命令用来查看表的结构,但注意,如果表不存在,可能会提示未找到。例如:
```sql
DESC test;
```
如果"test"表存在,它会显示出表的字段名、数据类型等信息。
以上就是Oracle数据库中关于基本建表语句和相关操作的详细说明。这些操作构成了数据库管理的基础,是数据库设计和数据管理不可或缺的部分。在实际应用中,还需要结合具体业务需求进行更复杂的建表和字段设计,以满足数据存储和查询的效率与安全性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-12-04 上传
2013-02-02 上传
2013-07-20 上传
2013-10-22 上传
2011-09-20 上传
2023-08-29 上传
zhhwzhhw44
- 粉丝: 0
- 资源: 1
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析