Oracle数据库之使用DDL语句管理表、约束(二十)

news/2024/7/7 21:16:48

在Oracle数据库中,DDL(Data Definition Language)语句用于定义和管理数据库结构,如表、约束、索引等。以下是如何使用DDL语句来管理表和约束的一些示例。

1. 创建表

使用CREATE TABLE语句来创建表。

CREATE TABLE employees (  
    employee_id NUMBER PRIMARY KEY,  
    first_name VARCHAR2(50),  
    last_name VARCHAR2(50),  
    email VARCHAR2(100) UNIQUE NOT NULL,  
    hire_date DATE,  
    salary NUMBER(10, 2) CHECK (salary > 0),  
    department_id NUMBER REFERENCES departments(department_id)  
);

在这个例子中,employees表有多个列,包括一个主键约束(PRIMARY KEY)、一个唯一约束(UNIQUE)、一个非空约束(NOT NULL)、一个检查约束(CHECK)和一个外键约束(REFERENCES)。

2. 修改表

使用ALTER TABLE语句来修改表结构。

添加列
ALTER TABLE employees ADD (address VARCHAR2(100));
修改列
ALTER TABLE employees MODIFY (salary NUMBER(12, 2));
删除列
ALTER TABLE employees DROP COLUMN address;
重命名列

注意:Oracle没有直接的ALTER TABLE ... RENAME COLUMN语句。你需要使用其他方法,如创建一个新列,复制数据,然后删除旧列。

3. 管理约束

添加约束
  • 主键约束

    ALTER TABLE employees ADD CONSTRAINT pk_employees PRIMARY KEY (employee_id);
  • 唯一约束

    ALTER TABLE employees ADD CONSTRAINT uq_employees_email UNIQUE (email);
  • 检查约束

    ALTER TABLE employees ADD CONSTRAINT ck_employees_salary CHECK (salary > 0);
  • 外键约束

    ALTER TABLE employees ADD CONSTRAINT fk_employees_departments FOREIGN KEY (department_id) REFERENCES departments(department_id);

删除约束

要删除约束,你需要知道约束的名称(除非它是自动生成的)。

ALTER TABLE employees DROP CONSTRAINT pk_employees;
如果你不知道约束的名称,但知道它的类型(例如,它是某个表的主键),你可以查询数据字典视图(如USER_CONSTRAINTSALL_CONSTRAINTS)来找到它。

4. 删除表

使用DROP TABLE语句来删除表。

DROP TABLE employees;

注意:删除表会永久删除表及其所有数据,所以在执行此操作之前请务必谨慎。

以上只是DDL语句在Oracle中管理表和约束的基本用法。实际上,Oracle提供了更多的选项和功能来定义和管理数据库结构。


http://lihuaxi.xjx100.cn/news/2215757.html

相关文章

「实战应用」如何用图表控件LightningChart JS创建SQL仪表板应用(二)

LightningChart JS是Web上性能特高的图表库,具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用,从而实现高刷新率和流畅的动画,常用于贸易,工程,航…

UltraISO制作U盘系统盘安装openEuler22.03和搭建cuda环境

1.下载openEuler镜像 https://repo.openeuler.org/openEuler-22.03-LTS/ISO/x86_64/ 选择下载:openEuler-22.03-LTS-x86_64-dvd.iso 2.用软碟通将 U 盘制作为启动盘 点击左上方 文件 –> 打开 然后找到下载的 ISO 镜像后,打开 打开后如下 找到菜单…

2024年【广东省安全员A证第四批(主要负责人)】复审考试及广东省安全员A证第四批(主要负责人)复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 广东省安全员A证第四批(主要负责人)复审考试参考答案及广东省安全员A证第四批(主要负责人)考试试题解析是安全生产模拟考试一点通题库老师及广东省安全员A证第四批&…

[AIGC] Python的Range函数

Python的range()函数是一个内置函数,常常用于编程中生成数列。这个函数可以生成一个整数序列,这个序列通常用在循环中。 文章目录 基本用法详细用法注意事项 基本用法 range()函数的基本形式为 range(stop) —— 这将生成一个从0开始,到stop…

消息队列-概述-什么是消息队列

什么是消息队列 我们可以把消息队列看作是一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。由于队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。 参与消息传递的双方称为 生产…

linux 部署瑞数6实战(维普,药监局)sign第二部分

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx …

【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)

最终效果 文章目录 最终效果前言素材下载简单搭建环境控制小鸟生成弹簧 限制小鸟的控制范围弹簧线的显示隐藏飞行新增木头木头销毁不同血量的木头状态配置更多物品爆炸效果创建敌人的小猪创建多个小鸟循环游戏结束相机跟随加分特效不同定义技能的鸟加速鸟回旋鸟爆炸鸟效果 轨迹…

react学习-redux快速体验

1.redux是用于和react搭配使用的状态管理工具,类似于vue的vuex。redux可以不和任何框架绑定,独立使用 2.使用步骤 (1)定义一个reducer函数(根据当前想要做的修改返回一个新的状态) (2&#xff0…