Oracle创建表的SQL语句

在Oracle数据库中,我们使用SQL语句来创建表。创建表是数据库设计的重要环节之一,它定义了数据库中的数据结构,包括表的名称、列的名称以及每个列的数据类型。本文将详细介绍在Oracle中创建表的SQL语句,并提供一些示例代码。
1. 创建表的基本语法
在Oracle中,使用CREATE TABLE语句来创建表。基本的语法结构如下:
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
column_n datatype [ NULL | NOT NULL ]
);
其中,table_name是要创建的表的名称,column1、column2等是表的列名称,datatype是列的数据类型。NULL和NOT NULL用于指定列是否允许为空。
2. 创建表的示例
为了更好地理解创建表的SQL语句,下面我们将以一个学生表为例进行演示。学生表的设计如下:
- 学生表名为
students - 列1:
student_id,类型为NUMBER,不允许为空 - 列2:
name,类型为VARCHAR2(50),不允许为空 - 列3:
age,类型为NUMBER,允许为空 - 列4:
gender,类型为VARCHAR2(10),允许为空
以下是创建学生表的SQL语句示例:
CREATE TABLE students
(
student_id NUMBER NOT NULL,
name VARCHAR2(50) NOT NULL,
age NUMBER,
gender VARCHAR2(10)
);
3. 表的约束
在创建表时,我们可以添加表的约束来限制数据的完整性和一致性。Oracle支持以下几种类型的约束。
3.1 主键约束(PRIMARY KEY)
主键约束用于唯一标识表中的每一行。主键列的值不能重复且不能为空。在创建表时,我们可以使用主键约束指定一个或多个列作为主键。
以下是一个创建包含主键约束的表的示例:
CREATE TABLE students
(
student_id NUMBER NOT NULL,
name VARCHAR2(50) NOT NULL,
CONSTRAINT pk_students PRIMARY KEY (student_id)
);
3.2 外键约束(FOREIGN KEY)
外键约束用于确保表与其他表之间的关系完整性,它定义了一个列或多个列与另一个表的主键或唯一键的关联。外键列的值必须与参考表中的列值相匹配。
以下是一个创建包含外键约束的表的示例:
CREATE TABLE courses
(
course_id NUMBER PRIMARY KEY,
course_name VARCHAR2(50) NOT NULL
);
CREATE TABLE enrolments
(
enrolment_id NUMBER PRIMARY KEY,
student_id NUMBER,
course_id NUMBER,
CONSTRAINT fk_enrolments_students FOREIGN KEY (student_id) REFERENCES students(student_id),
CONSTRAINT fk_enrolments_courses FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
3.3 唯一约束(UNIQUE)
唯一约束用于确保一列或多列的值在整个数据库中是唯一的(除了它们自己的NULL值)。
以下是一个创建包含唯一约束的表的示例:
CREATE TABLE books
(
book_id NUMBER PRIMARY KEY,
book_name VARCHAR2(50) NOT NULL,
isbn VARCHAR2(20) UNIQUE
);
3.4 检查约束(CHECK)
检查约束用于限制列中的值必须满足特定的条件。
以下是一个创建包含检查约束的表的示例:
CREATE TABLE employees
(
employee_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50) NOT NULL,
last_name VARCHAR2(50) NOT NULL,
salary NUMBER CHECK (salary > 0)
);
4. 示例代码运行结果
以下是上述示例代码的运行结果,为了演示,我们插入一些数据到对应的表。
创建学生表:
CREATE TABLE students
(
student_id NUMBER NOT NULL,
name VARCHAR2(50) NOT NULL,
age NUMBER,
gender VARCHAR2(10)
);
创建课程表:
CREATE TABLE courses
(
course_id NUMBER PRIMARY KEY,
course_name VARCHAR2(50) NOT NULL
);
创建选课表:
CREATE TABLE enrolments
(
enrolment_id NUMBER PRIMARY KEY,
student_id NUMBER,
course_id NUMBER,
CONSTRAINT fk_enrolments_students FOREIGN KEY (student_id) REFERENCES students(student_id),
CONSTRAINT fk_enrolments_courses FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
创建图书表:
CREATE TABLE books
(
book_id NUMBER PRIMARY KEY,
book_name VARCHAR2(50) NOT NULL,
isbn VARCHAR2(20) UNIQUE
);
创建员工表:
CREATE TABLE employees
(
employee_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50) NOT NULL,
last_name VARCHAR2(50) NOT NULL,
salary NUMBER CHECK (salary > 0)
);
总结
本文详细介绍了在Oracle数据库中创建表的SQL语句。我们了解了表的基本语法,并提供了一些示例代码来展示不同类型的约束。通过合理使用表的约束,我们可以确保数据库的数据完整性和一致性。创建表是数据库设计的重要环节,良好的表设计能够提高数据库的性能和可维护性。在实际开发中,我们应根据具体需求合理设计表结构,并选择适当的数据类型和约束。
极客笔记