Oracle PL / SQL 表 table

关系数据库允许您在数据库管理系统(DBMS)中存储多个表。

您可以使用计算机上的查询语言来操作表中的数据。

当前的查询语言是结构化查询语言(SQL)。

SQL是一组无关的命令,用于操作关系数据库管理系统(RDBMS)中的表中的数据。

关系数据库中的表是关于如何在存储数据时组织数据的逻辑定义。

 

 

实例:

表1-1。关系数据库Geniuses(作者)

ID Name Born Gender
100 Tom 1983 Male
200 Jack 1981 Male
300 Jane 1983 Male

表1-2。关系天才的出版物(作者出版物)

ID Author ID Title Written
10 100 Learn Oracle 1970
20 100 Learn CSS 1990
30 200 An Introduction to Database Systems 2003
40 200 Learn SQL 2000
50 200 Learn HTML 2002
60 200 Learn Database 2005
70 300 Learn SQL 2000
80 300 Learn HTML 2012


如果你看表​​1-1中的tom数据,你会看到他的ID为100.接下来,如果你看表​​1-2中的ID 100的数据,你会看到他写了两个标题:您可以通过使用这两个表中的公共基准来找到每个作者所编写的出版物ID。

  • 学习Oracle
  • 学习CSS

这两个表具有关系,因为它们共享具有相同值的ID列。

 

注意

下表是表1-1的表定义

Column Number Column Name Data Type
1 ID Number
2 Name Character
3 Birth Date Date
4 Gender Character

要创建如表1-3中定义的authors表,在Oracle中,您需要创建一个SQL脚本。数据定义语言(DDL)

在SQL中,它被称为数据定义语言(DDL)。

它是用于定义关系数据库的SQL。

以下代码显示了authors表的DDL。

CREATE TABLE authors ( 
 id number(38), 
 name varchar2(100), 
 birth_date date, 
 gender varchar2(30) 
); 

CREATE TABLE语句的语法如下:

CREATE TABLE <table_name> ( 
    <column_name_1> <data_type_1>, 
    <column_name_2> <data_type_2>, 
    <column_name_N> <data_type_N> 
); 

<table_name>是表的名称,<column_name>是列的名称,<data_type>是Oracle数据类型之一。

以下是您最常使用的Oracle数据类型:

VARCHAR2:最多可存储32,767字节的文本,如列中的数据。必须通过在关键字VARCHAR2之后的括号中指定所需的数字来定义最大字符数。

NUMBER:存储精度为38位的十进制数。您可以控制数字的大小。您可以通过在关键字后面的括号中指定所需的约束,指定小数点左边的最大位数,后跟逗号(,),也可以指定小数点右边的最大小数位数。数。

DATE:存储日期和时间值。

要创建author_books表,请按照下列步骤操作。

CREATE TABLE author_books(id number(38),title varchar2(100),publish_date date);

 

索引

您应该在每个表的主键列上创建唯一索引。

主键列唯一标识表中的条目。

在authors表中,该主键列是id。

让我们对authors表的name,birth_date和gender列创建一个唯一索引。

CREATE UNIQUE INDEX authors_uk1 on authors (name, birth_date, gender ); 

CREATE INDEX语句的语法如下:

CREATE [UNIQUE] INDEX <index_name> on <table_name> ( 
    <column_name_1>, 
    <column_name_2>, 
    <column_name_N> 
); 

其中<index_name>是索引的名称,<table_name>是表的名称,<column_name>是列的名称。

关键字UNIQUE是可选的,由[ ]它周围的方括号表示。

这意味着数据库必须检查以确保列的值的组合在表中是唯一的。

以下DDL显示如何在发布表中的标题列上创建索引。

CREATE INDEX author_books_k1 on author_books (title);