温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle数据库是怎样创建表

发布时间:2021-12-02 10:41:40 来源:亿速云 阅读:987 作者:柒染 栏目:大数据

Oracle数据库是怎样创建表

在Oracle数据库中,创建表是数据库设计和数据管理的基础操作之一。表是数据库中存储数据的基本结构,它由行和列组成,每一列代表一个字段,每一行代表一条记录。本文将详细介绍如何在Oracle数据库中创建表,包括基本语法、数据类型、约束条件等内容。

1. 创建表的基本语法

在Oracle中,创建表的基本语法如下:

CREATE TABLE table_name (
    column1 datatype [constraint],
    column2 datatype [constraint],
    ...
    [table_constraint]
);
  • table_name:表的名称,必须是唯一的。
  • column1, column2, ...:表的列名,每个列名必须是唯一的。
  • datatype:列的数据类型,如VARCHAR2, NUMBER, DATE等。
  • constraint:列的约束条件,如NOT NULL, UNIQUE, PRIMARY KEY等。
  • table_constraint:表的约束条件,如PRIMARY KEY, FOREIGN KEY, CHECK等。

示例

CREATE TABLE employees (
    employee_id NUMBER(6) PRIMARY KEY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    email VARCHAR2(100) UNIQUE,
    hire_date DATE DEFAULT SYSDATE,
    salary NUMBER(8,2),
    department_id NUMBER(4)
);

在这个示例中,我们创建了一个名为employees的表,包含了employee_id, first_name, last_name, email, hire_date, salary, department_id等列。其中,employee_id是主键,first_namelast_name不能为空,email是唯一的,hire_date的默认值是当前日期。

2. 数据类型

在创建表时,必须为每一列指定数据类型。Oracle支持多种数据类型,以下是常用的几种:

2.1 字符类型

  • VARCHAR2(size):可变长度的字符串,最大长度为size字节。
  • CHAR(size):固定长度的字符串,长度为size字节。
  • NCHAR(size):固定长度的Unicode字符串,长度为size字符。
  • NVARCHAR2(size):可变长度的Unicode字符串,最大长度为size字符。

2.2 数字类型

  • NUMBER(p, s):数值类型,p表示总位数,s表示小数位数。
  • INTEGER:整数类型,等同于NUMBER(38,0)
  • FLOAT(p):浮点数类型,p表示精度。

2.3 日期和时间类型

  • DATE:日期和时间类型,包含年、月、日、时、分、秒。
  • TIMESTAMP:时间戳类型,包含日期和时间,精度更高。
  • INTERVAL YEAR TO MONTH:表示年份和月份的间隔。
  • INTERVAL DAY TO SECOND:表示天、小时、分钟和秒的间隔。

2.4 大对象类型

  • CLOB:字符大对象,用于存储大量文本数据。
  • BLOB:二进制大对象,用于存储大量二进制数据。
  • BFILE:外部二进制文件,存储在数据库外部。

示例

CREATE TABLE example (
    id NUMBER(10),
    name VARCHAR2(100),
    description CLOB,
    created_at DATE,
    salary NUMBER(10,2)
);

在这个示例中,id是数字类型,name是可变长度的字符串,description是字符大对象,created_at是日期类型,salary是带有两位小数的数字类型。

3. 约束条件

约束条件用于限制表中数据的规则,确保数据的完整性和一致性。Oracle支持以下几种约束条件:

3.1 主键约束(PRIMARY KEY)

主键约束用于唯一标识表中的每一行。主键列的值必须是唯一的,且不能为空。

CREATE TABLE students (
    student_id NUMBER(6) PRIMARY KEY,
    name VARCHAR2(50) NOT NULL
);

在这个示例中,student_id是主键,确保每个学生的ID是唯一的。

3.2 唯一约束(UNIQUE)

唯一约束确保列中的值是唯一的,但允许有空值。

CREATE TABLE users (
    user_id NUMBER(6) PRIMARY KEY,
    username VARCHAR2(50) UNIQUE,
    email VARCHAR2(100) UNIQUE
);

在这个示例中,usernameemail列的值必须是唯一的。

3.3 非空约束(NOT NULL)

非空约束确保列中的值不能为空。

CREATE TABLE orders (
    order_id NUMBER(6) PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id NUMBER(6) NOT NULL
);

在这个示例中,order_datecustomer_id列的值不能为空。

3.4 外键约束(FOREIGN KEY)

外键约束用于建立表与表之间的关系。外键列的值必须存在于另一个表的主键列中。

CREATE TABLE orders (
    order_id NUMBER(6) PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id NUMBER(6) NOT NULL,
    CONSTRNT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

在这个示例中,customer_id是外键,引用了customers表中的customer_id列。

3.5 检查约束(CHECK)

检查约束用于限制列中的值必须满足指定的条件。

CREATE TABLE employees (
    employee_id NUMBER(6) PRIMARY KEY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    salary NUMBER(8,2) CHECK (salary > 0)
);

在这个示例中,salary列的值必须大于0。

4. 表的修改和删除

4.1 修改表结构

在表创建后,可以使用ALTER TABLE语句修改表结构,如添加列、修改列、删除列等。

ALTER TABLE employees ADD (phone_number VARCHAR2(20));
ALTER TABLE employees MODIFY (salary NUMBER(10,2));
ALTER TABLE employees DROP COLUMN phone_number;

4.2 删除表

可以使用DROP TABLE语句删除表。

DROP TABLE employees;

5. 总结

在Oracle数据库中,创建表是数据库设计的基础操作。通过CREATE TABLE语句,可以定义表的结构、数据类型和约束条件,确保数据的完整性和一致性。本文介绍了创建表的基本语法、常用的数据类型、约束条件以及表的修改和删除操作。掌握这些知识,可以帮助你更好地管理和维护Oracle数据库中的表结构。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI