文章目录
一、表的概念
表是数据库最基本的逻辑结构,一切数据都存放在表中,其它数据库对象(索引、视图、同义词等)都是为了更方便的操作表中的数据。Oracle数据库是由若干个表组成,每个表由列和行组成,如下表所示。
编号 | 姓名 | 颜值 | 身材 | 体重 | 身高 | 出生时间 | 备注 |
---|---|---|---|---|---|---|---|
0101 | 西施 | 漂亮 | 火辣 | 48.5 | 170 | 2000-01-01 01:12:35 | 这是一个非常漂亮姑娘,老公是夫差,男朋友是范蠡。 |
0102 | 貂禅 | 漂亮 | 火辣 | 45.2 | 168 | 1997-08-02 12:20:38 | 王允真不是男人,干不过董卓就把美人往火坑里推,千古罪人啊。 |
0103 | 妲已 | 漂亮 | 丰满 | 53.6 | 172 | 1998-03-03 10:50:33 | 如果商真的因我而亡,您们男人做什么去了? |
0104 | 芙蓉 姐姐 | 猪扒 | 膘肥 体壮 | 85.8 | 171 | 1980-05-05 10:11:55 | 如果不努力学习技术,将来就会娶个芙蓉姐姐,哼哼。 |
0105 | 神密 猫女 | 48.5 | 171 | 1989-12-08 12:10:35 | 不知道是什么人,她脸上有一个%符号,很神密。 |
1、表的列
表的结构是由列组成,习惯上把列也称之为字段,字段的基本属性如下:
1)字段名:字段的名称。
2)数据类型:该字段存放数据的类型和长度。
3)是否允许空值:该字段是否为必填,如果不是必填,表示可以为空。
2、列的数据类型
表的每个列一定会有它的数据类型,表示该列存放的是什么数据,常用的数据类型如下:
1)字符串类型:char和varchar2,可表达任何字符串。
2)数字类型:number(m,n),可表达任何数字,m是数字的总长度,n是小数点后的位数,如果n为0则表示是存放整数。
3)日期类型:date,存放日期和时间,包括年(yyyy)、月(mm)、日(dd)、小时(hh24)、分(mi)、秒(ss)。
4)clob类型,存放单字节字符串或多字节字符数据,如文本文件、xml文件。
5)blob类型,存放非结构化的二进制数据,如图片、音频、视频、office文档等。
6)rowid类型,存放表中记录在数据库中的物理地址。
更详细的介绍请阅读《Oracle数据类型》文章。
3、表的行
表中的数据是由行组成的,每一行就是一条数据,也称之为记录,数据越多,记录就越多。
二、创建表
1、创建表
Oracle数据库创建表是用create table命令来完成的,我们通过创建T_GIRL表(超女基本信息表)来讲解create table 命令的使用。
建表命令如下:
create table 表名
(
字段名1 数据类型 null,
字段名2 数据类型 not null,
......,
字段名n 数据类型 null
);
表名是标识符,从语法上来说,表名只要符合Oracle的规定就行了,但是,在实际开发中,我会遵守两个原则:1)表名以T_打头,可读性比较好;2)表名尽可能有意义,用完整的英文单词或简写、或中文拼音都可以,方便理解和记忆就好。
创建超女基本信息表:
create table T_GIRL
(
id char(4) not null, -- 编号
name varchar2(30) not null, -- 姓名
yz varchar2(20) null, -- 颜值
sc varchar2(20) null, -- 身材
weight number(4,1) not null, -- 体重
height number(3) not null, -- 身高
birthday date not null, -- 出生时间
memo varchar2(1000) null -- 备注
);
注意:1)在Oracle数据库的SQL命令中,关键字、表名和字段名都不区分大小写,CREATE和create没有区别,表名T_GIRL和t_girl也没有区别,字段名ID和id也没有区别;2)两根短线“--”是说明文字,就像C/C++语言中的“//”。
2、创建表的主键
在现实世界中,很多数据具有唯一的特性,例如身份证号码,在国家人口基本信息表中,一定不会存在多个人用同一个身份证号码的情况,再例如手机号码、QQ号码、银行帐号等等,还有学生管理系统,学生的年级、班级和学号三个字段组合起来是唯一的标识。
如果表中一个字段或多个字段组合起来的值是唯一的,就可以作为表的主键,在创建或修改表时用primay key关键字来指定主键。一个表只能有一个主键,而且组成主键的每个字段值都不能为空。
主键的作用:
1)体现数据结构设计的合理性。
2)提升数据操作的速度。
3)保证数据的完整性,在表中添加或修改记录时,数据库会检查该记录主键的值,不允许与其它记录主键的值重复,这种做法有个专业的名词:主键约束。
例如超女基本信息表,编号的字段名是id,在超女选秀活动中,每个超女的编号肯定是唯一的,不可能存在两个编号相同的超女,否则会引起混乱,我们可以把id字段设置为T_GIRL表的主键,后面的工作交给数据库,如果试图往表中插入多条id相同的记录,数据库将拒绝。
指定表的主建有两种方法。
1)在create table时指定。
create table T_GIRL
(
id char(4) not null, -- 编号
name varchar2(30) not null, -- 姓名
yz varchar2(20) null, -- 颜值
sc varchar2(20) null, -- 身材
weight number(4,1) n