分享
 
 
 

实战 J2EE 开发购物网站 创建数据表

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

SQL*PLUS基础

在上一贴中,我们把握了些基本的Oracle操作,如创建、授权用户,创建数据库等。在OEM(Oracle Enterprise Manager)可视化的窗口环境中,虽然我们也可以很方便地做这些事,但是事实上,用SQL语言书写在开发上更有效率!!oracle提供的SQL*Plus就是个不错的工具,假如大家喜欢窗口的开发环境,用SQLPlus Worksheet也行!下面说点基本的西西!

SQL(StrUCture Query Language)语言是结构化查询语言,是数据库的核心语言,是面向集合的描述性非过程化语言。

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据库控制语言DCL。

1.数据查询语言DQL的基本结构是由select子句,from子句,where子句组成的查询块:

select from where

2.数据操纵语言DML完成在数据库中确定、修改、添加、删除某一数据值的任务(以下是部分常用DML语句):

insert增加数据行到表

delete从表中删除数据行

Update更改表中数据

3.数据定义语言DDL完成定义数据库的结构,包括数据库本身、数据表、目录、视图等数据库元素(以下是部分常用DDL语句)

create table创建表

create index创建索引

create view创建视图

alter table增加表列,重定义表列,更改存储分配

drop table删除表

drop index删除索引

4.数据库控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

grant将权限或角色授予用户或其它角色

revoke回收用户权限

roll回滚,是当某个对话更改了数据库中的数据后,由于某种原因用户不想提交此更改时,oracle所采取的保护操作。这是一个把信息恢复到用户使update、insert、delete前最后提交的状态。

commit提交。在完成数据库的插入,删除和修改操作时,只有当事务提交到数据库才算完成,有提交前只有操作数据库的本人才能看到,别人只有在最后提交完成才可以看到。

接下来,我们在SQL*Plus中实战一下,为我们下面将要做的打好基础。

用system登陆到SQL*Plus后,我们做如下操作(这次没有截图,有具体的说明)

SQLcreate user maxuan identified by max; #创建口令为max的用户maxuan

SQLgrant connect,resource to maxuan; #为用户maxuan授权

SQLconn maxuan/max; #以用户maxuan进行连接

Lcreate table test(a number); #建立一个名为test的表,只有字段名为A的一列,数据类型为数字

SQLinsert into test values(1); #插入一条记录

SQLselect * from test; #查询记录,此时A列的第一行为1

SQLupdate test set a=2; #更改记录,此时A列的第一行已改为2

SQLcommit; #提交

SQLdelete from test; #删除test表中所有的记录,此时test表中没有记录

SQLroll; #回滚到提交前,此时再查询test表,A列第一行值又回复到2

oracle的数据类型

在数据库中创建数据表的时候,我们需要定义表中所有字段的类型,数据类型大致分为:character,numberic,date,lob和raw等,这些是最基本的数据类型。当然在oracle中也答应自定义数据类型!

在oracle中提供的character数据类型:

char():固定长度字符串,最大长度为2000字节,假如不指定长充,缺省为1个字节长。

varchar2():可变长度的字符串,最大长度为4000字节,具体定义时指明最大长度,这咱类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。假如数据长度没有达到最大值,oracle会根据数据大小自动调节字段长度。是

最长用的数据类型。

nchar():根据字符集而定的固定长度字符串,最大长度2000字节。

nvarchar2():根据字符集而定的可变长度字符串,最大长度4000字节。

long:可变长字符列,最大长度限制为2GB,用于不需要作字符串搜索的长串数据。此类型是一个遗留下来的而且将来不会被支持的数据类型,逐渐被BLOB,CLOB,NCLOB等大的数据类型所取代。

numberic数据类型用来存储负的和正的整数,分数和浮点型数据,在oracle中提供的numberic数据类型:

number(,):可变长的数值列,答应0、正值及负值,m是所有的有效数字的位数,n是小数点以后的位数。

在oracle中提供的date数据类型:

date:缺省格式是dd-mon-yy(日-月-年)

在oracle中提供的lob数据类型:

blob、clob、nclob:三种大型对象(lob),用来保存较大的图形文件或带格式的文本文件,如Word文档,以及音频、视频等非文本文件,最大长充是4GB。晕些数据存储在数据库内部保存。

bfile:在数据库外部保存的大型二进制对象文件,最大长度是4GB,这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。

在oracle中提供的raw数据类型:

raw():可变长二进制数据,具体定义字段时必须指明最大长度,这种格式用来保存较小的图形文件或带格式的文本文件,它也是一种较老的数据类型,将被lob数据类型所取代。

long raw:可变长二进制数据,最大长度是2GB,可以用来保存较大的图形或带格式的文本文件,以及音频、视频等非文本文件,这也是一种较老的数据类型,将被lob数据类型所取代。

其它的数据类型:

rowid:这是oracle数据表中的一个伪例,它是数据表中每行数据内在的唯一标识

integer:整数类型

创建购物网站后台数据库

现在我们回到用J2EE体系开发购物网站的主题,开始实战建购物网站的后台数据库。

为了实现购物网站的基本的功能,我们需要建立四个表:商品列表(products)、商品类型表(item)、订单列表(orders)和治理员列表(admin)。表结构如下所示:

item表结构(商品类型表)

字段名称数据类型答应空主键/外键备注

type_idINTEGER(自动编号)否主键商品类别ID标记

typevarchar2(30)否商品类别名称

product表结构(商品列表)

字段名称数据类型答应空主键/外键备注

product_idINTEGER(自动编号)否主键商品ID标记

titlevarchar2(30)否商品名称

type_idINTEGER否外键商品类别标记

infovarchar2(80)是商品简介

pricenumber(16,2)否商品价格

orders表结构(订单列表)

字段名称数据类型答应空主键/外键备注

order_idINTEGER(自动编号)否主键订单ID标记

namevarchar2(20)否顾客姓名

addressvarchar2(100)是发货地址

telnumber(16)是联系电话

emailvarchar2(30)否联系email

BTimedate是订购日期

product_idINTEGER否外键商品标记

uwordvarchar2(100)是顾客留言

admin表结构(治理员列表)

字段名称数据类型答应空主键/外键备注

admin_idINTEGER(自动编号)否主键治理员ID标记

adminnamevarchar2(20)否治理员名称

passwordvarchar2(20)否治理员密码

设计完表结构后,我们就要开始创建了。

创建表我想已经不是什么难事了,那么我们要注重的是product、item、orders这三个表之间的关联,还有自动编号。

下面是完整的SQL语句,在后面我会给出具体的说明,你可以在SQL*Plus里对照着输入,也可以将它存为SQL脚本文件,在SQL*Plus或SQLPlus Worksheet里执行。当然也可以把代码直接拷贝到SQL*Plus里执行!

代码:

rem ///BY MAXUAN 开始///

create table item(

type_id integer not null,

type varchar2(30),

constraint item_pk primary key(type_id)

);

create table product(

product_id integer not null,

title varchar2(30) not null,

type_id integer not null,

info varchar2(80),

price number(16,2) not null,

constraint product_pk primary key (product_id),

constraint product_fk foreign key(type_id) references item(type_id)

);

create table orders(

order_id integer not null,

name varchar2(20) not null,

address varchar2(100),

tel number(16),

email varchar2(30) not null,

btime date,

product_id integer not null,

uword varchar2(100),

constraint orders_pk primary key(order_id),

constraint orders_fk foreign key(product_id) references product(product_id)

);

create table admin(

admin_id integer not null,

adminname varchar2(20) not null,

password varchar2(20) not null,

constraint admin_pk primary key(admin_id)

);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有