欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

创建数据库表

程序员文章站 2022-05-08 19:28:38
...

数据库的作用:1、有结构的存储大量数据。2、有效保持数据的一致性。3、方便智能的分析,产生新的有用的信息。4、满足应用的共享和安全的要求。 关系型数据库的基本组成:一个数据库是由一组数据表(table)组成。2、表中的每一行成为记录(record)。3、表中的

数据库的作用:1、有结构的存储大量数据。2、有效保持数据的一致性。3、方便智能的分析,产生新的有用的信息。4、满足应用的共享和安全的要求。

关系型数据库的基本组成:一个数据库是由一组数据表(table)组成。2、表中的每一行成为记录(record)。3、表中的每一列称为字段(field)。

全局数据库名:唯一标识Oracle数据库的名称。

SID:Oracle数据库的一个引用。Scott账号:示例账号,默认口令是tiger。

连接数据库的方法:DOS环境下输入:c:/>sqlplus然后按提示连接,c:/>sqlplus 用户名/密码@数据库名连接到指定的数据库,c:/>sqlplus/nolog c:/>connect用户名/密码@数据库名。

在Oracle系统中表空间和数据文件是Oracle数据库结构的基本要素。

Oracle数据库采用有组织的方式存储信息,他有两种互为相关的物理存储结构和逻辑结构。物理存储结构是现实的数据存储单元,主要由数据文件(存储数据库数据的文件)、日志文件(记录对数据库进行的修改信息)和控制文件(记录数据库物理结构的二进制文件)组成;逻辑存储结构是数据概念上的组织。主要由表空间、

表、行等概念组成。

表空间是Oracle数据库存储数据的逻辑单元,用于存放数据库表、索引等对象的磁盘逻辑空间叫表空间(Tablespace)。数据库由多个表空间构成,而表空间由多个数据文件组成。

创建数据库表

在程序中,可以组织SQL语句发送给数据库,数据库在执行相应的操作。

SQL语言的分类:1、数据定义语言(DDL),定义和管理数据库中的各种对象(CREATE语句用于创建对象、ALTER语句用于修改对象、DROP用于删除对象)。2、数据操作语言(DML),操作数据库对象所包含的数据(INSERT语句用于在数据表中插入一行数据、UPDATE语句用于更新或修改一行或多行的值、DELETE语句用于删除数据表中的一行或多行的数据,也可以删除表中的所以数据记录)。3、数据控制语言(DCL),对数据库对象操作的权限的控制(GRANT语句对用户或用户组授予数据库对象的权限、REVOKE语句回收权限)。

创建表空间语法如下:

CREATETABLESPACE tablespacename tablespacename指要创建表空间的名称

DATAFILE ‘filename’ [ SIZE integer [ K | M] ] DATAFILE指定组成表空间的一个或多个数据文件,当有多个数据文件时使用逗号隔开,filename指表空间中数据文件的路径和名称。SIZE是文件大小,用K指千字节大小,用M指定兆字节大小。

[AUTORXTEND [ OFF | ON] ]; AUTOEXTEND子句用来启用或禁用数据文件的自动扩展。

例如:

create tablespace myhr
datafile 'myhr.dbf'
size 100M autoextend on;

Oracle中的CREATE USER命令用于创建新用户,每个用户拥有一个默认表空间和一个临时表空间。如果没有指定,Oracle就将USERS设为默认表空间。TEMP表示临时表空间。

创建用户的语法如下:

CREATEUSER IDENTIFIED BY 必须制定用户名和用户口令

DEFAULTTABLESPACE DEFAULT TABLESPACE表示默认的表空间

TEMPORARYTABLESPACE 表示用户制定的临时表空间。

QUOTA ON

例如:

create user myhr identified by myhr
default tablespace myhr    
temporary tablespace temp
quota unlimited on myhr;

Oracle用户获得权限的方法:1、管理员直接向用户授予权限。2、管理员将权限授给角色,然后将角色授予一个或多个用户。权限分为系统权限(系统权限是在数据库中执行某种系统级别操作,或者针对某一类的对象执行某种操作的权利。)和对象权限(是指用户对具体的数据库中的对象所拥有的权限)。常见的系统权限:CREATE SESSION 连接到数据库、CREATE TABLE创建表、CREATEVIEW创建视图、CREATE SEQUENCE创建序列;

角色是一个或多个权限的集合,角色可以授予任何用户,也可以从用户中将角色收回。通过角色来进行对用户授予权限,可以大大简化数据库管理员的工作量。

授权方法:GRANT权限|角色TO用户名;取消授权:REVOKE权限|角色FROM 用户名;

例如:

grant connect,resource to myhr;

其中connect和resource都是数据库的内置角色。

字段类型:1、文本数据类型:char(用于描述定长的字符型数据,最大2000个字节。常用于存储少量文本),varchar2(用于描述变长字符数据,最大4000个字节),long(用来保存高达2G大小的数据,不过常被clob类型代替)。2、数值数据类型:number用来存储整型或者浮点型的数值;binary_integer是PL/SQL中的整型,只能在PL/SQL中,速度比Integer慢;binary_double是Oracle10G提供的一种新的数据类型,用于存储一个双精度的64为浮点数;3、日期数据类型,用于存储日期和时间,data用于存储表中的日期和时间数据。Oracle数据库使用自己的格式存储日期,使用7个字节固定长度,每隔字节分别存储世纪、年、月、日、小时、分和秒。Oracle中的SYSDATE函数功能是返回当前的日期和时间;timestamp用于存储日期的年、月、日以及时间的小时、分和秒值(秒值准确到小数点后六位该数据类型包括时区信息),SYSTIMESTAMP函数功能是返回当前日期、时间和时区。4、大对象数据类型,用来保存较大的图形文件或带格式的文本文件,例如word文档、音频、视频,其中clob用于存储大批量的文本,一个表可以有多个clob字段。blob用于存储二进制对象,比如图片等。

创建表语法:CREATETABLE 表名(字段名称 字段类型);

例如:

create table Student
(
  stu_id      varchar2(11),
  name        varchar2(10),
  age         number,
  class       varchar2(10),
  description varchar2(500)
);

查看表结构,可以再命令窗口输入DESC 表名;

例如:

desc Student;

数据完整性是指数据库中数据的准确性。

为了实现数据完整性,数据库需要做以下两方面工作:1、检验每行数据是否符合要求。2、检验每列数据是否符合要求。

Oracle数据库提供了以下四种类型的约束:1、实体完整性约束。2、域完整性约束。3、引用完整性约束。4、自定义完整性约束。

实体完整性约束,要求表中每一行数据反映不同的实体,不能存在相同的数据行,一般通过主键约束、唯一约束等方式实现。

添加主键约束的语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(字段名);

例如:

alter table STUDENT
  add constraint PK_STU_ID primary key (STU_ID);

添加唯一约束的语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(字段名

例如:

alter table student 
  add constraint UQ_DESCRIPTION unique(description);

域完整性约束指给定字段的输入有效性,可以通过限制数据类型,检查约束、输入格式、默认值、非空约束等方法。

例如:

alter table student
      add constraint chk_age check(age>0);

在输入或删除数据行时,引用完整性约束用来保持表之间已定义的关系,例如:

班级信息表: 学员信息表:

班级编号(cla_id)

班级名称(cla_name)

C001

2012计算机一班

C002

2012计算机二班

C003

2012数学一班

学员编号(stu_id

班级编号(stu_cla_id

学员姓名(stu_name)

S101

C001

吕奉先

S102

C102

张文远

S201

C002

刘玄德

S301

C003

曹孟德

在管理学员信息时一个表用来存储班级的信息,也就是班级信息表,另一表用来存储学员的信息,即学员信息表。

并且两张表通过班级编号进行关联,这里我们一般将班级信息成为主表,学员信息表称作子表。在强制引用完整性时Oracle数据库禁止用户进行下列操作:1、当主表中没有关

联的记录时,将记录添加到相关表中,也就是说学员信息表中不能出现在班级信息表中不存在的班级编号。2、更改主表中的值并导致相关表中的记录独立,如果班级信息表中

的班级编号改变了,学员信息表中的班级编号也应该随之改变。3、从主表中删除记录,但仍存在与该记录匹配的相关记录,如果把班级信息表中的班级删除了,则该班级的班

级编号不能出现在学员信息表中。一般来说引用完整性约束是通过主键和外键之间的引用关系来实现。

创建外键约束的语法:ALTER TABLE 子表 ADD CONSTRAINT 约束名 FOREIGN KEY (子表的外键)REFERENCES 主表 (主表的主键);

例如:ALTER TABLE 学员信息表

ADD CONSTRAINT fk_子表名_外键 FOREIGN KEY (stu_cla_id)

REFERENCES 班级信息表 (cla_id);

自定义完整性约束:通常借助于数据库的规则、存储过程或者触发器对象来进行约束。