创建数据库表
数据库的作用: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);
自定义完整性约束:通常借助于数据库的规则、存储过程或者触发器对象来进行约束。