GO ON 继续进阶!!(本贴个人认为对初学者很有帮助,请大家认真看。因时间仓促,如有错误请指正)
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后,我们做如下操作(这次没有截图,有详细的说明)
SQL>create user maxuan identified by max; #创建口令为max的用户maxuan
SQL>grant connect,resource to maxuan; #为用户maxuan授权
SQL>conn maxuan/max; #以用户maxuan进行连接
L>create table test(a number); #建立一个名为test的表,只有字段名为A的一列,数据类型为数字
SQL>insert into test values(1); #插入一条记录
SQL>select * from test; #查询记录,此时A列的第一行为1
SQL>update test set a=2; #更改记录,此时A列的第一行已改为2
SQL>commit; #提交
SQL>delete from test; #删除test表中所有的记录,此时test表中没有记录
SQL>roll; #回滚到提交前,此时再查询test表,A列第一行值又回复到2 oracle的数据类型
在数据库中创建数据表的时候,我们需要定义表中所有字段的类型,数据类型大致分为:character,numberic,date,lob和raw等,这些是最基本的数据类型。当然在oracle中也允许自定义数据类型! 在oracle中提供的character数据类型:
char(<size>):固定长度字符串,最大长度为2000字节,如果不指定长充,缺省为1个字节长。
varchar2(<size>):可变长度的字符串,最大长度为4000字节,具体定义时指明最大长度,这咱类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。如果数据长度没有达到最大值,oracle会根据数据大小自动调节字段长度。是 最长用的数据类型。
nchar(<size>):根据字符集而定的固定长度字符串,最大长度2000字节。
nvarchar2(<size>):根据字符集而定的可变长度字符串,最大长度4000字节。
long:可变长字符列,最大长度限制为2GB,用于不需要作字符串搜索的长串数据。此类型是一个遗留下来的而且将来不会被支持的数据类型,逐渐被BLOB,CLOB,NCLOB等大的数据类型所取代。 numberic数据类型用来存储负的和正的整数,分数和浮点型数据,在oracle中提供的numberic数据类型:
number(<m>,<n>):可变长的数值列,允许0、正值及负值,m是所有的有效数字的位数,n是小数点以后的位数。 在oracle中提供的date数据类型:
date:缺省格式是dd-mon-yy(日-月-年) 在oracle中提供的lob数据类型:
blob、clob、nclob:三种大型对象(lob),用来保存较大的图形文件或带格式的文本文件,如word文档,以及音频、视频等非文本文件,最大长充是4GB。晕些数据存储在数据库内部保存。
bfile:在数据库外部保存的大型二进制对象文件,最大长度是4GB,这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。 在oracle中提供的raw数据类型:
raw(<size>):可变长二进制数据,具体定义字段时必须指明最大长度,这种格式用来保存较小的图形文件或带格式的文本文件,它也是一种较老的数据类型,将被lob数据类型所取代。
long raw:可变长二进制数据,最大长度是2GB,可以用来保存较大的图形或带格式的文本文件,以及音频、视频等非文本文件,这也是一种较老的数据类型,将被lob数据类型所取代。 其它的数据类型:
rowid:这是oracle数据表中的一个伪例,它是数据表中每行数据内在的唯一标识
integer:整数类型
创建购物网站后台数据库 现在我们回到用J2EE体系开发购物网站的主题,开始实战建购物网站的后台数据库。
为了实现购物网站的基本的功能,我们需要建立四个表:商品列表(products)、商品类型表(item)、订单列表(orders)和管理员列表(admin)。表结构如下所示: item表结构(商品类型表)
字段名称    数据类型        允许空    主键/外键    备注   
type_id    INTEGER(自动编号)    否    主键    商品类别ID标记
type    varchar2(30)    否        商品类别名称 product表结构(商品列表)
字段名称    数据类型        允许空    主键/外键    备注
product_id    INTEGER(自动编号)    否    主键    商品ID标记
title    varchar2(30)    否        商品名称
type_id    INTEGER        否    外键    商品类别标记
info    varchar2(80)    是        商品简介
price    number(16,2)    否        商品价格 orders表结构(订单列表)
字段名称    数据类型        允许空    主键/外键    备注
order_id    INTEGER(自动编号)    否    主键    订单ID标记
name    varchar2(20)    否        顾客姓名
address    varchar2(100)    是        发货地址
tel    number(16)    是        联系电话
email    varchar2(30)    否        联系email
btime    date        是        订购日期
product_id    INTEGER        否    外键    商品标记
uword    varchar2(100)    是        顾客留言 admin表结构(管理员列表)
字段名称    数据类型        允许空    主键/外键    备注
admin_id    INTEGER(自动编号)    否    主键    管理员ID标记
adminname    varchar2(20)    否        管理员名称
password    varchar2(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) ); create sequence type_id increment by 1 start with 1; create sequence product_id increment by 1 start with 1; create sequence order_id increment by 1 start with 1; create sequence admin_id increment by 1 start with 1; rem ///BY MAXUAN 结束///
[Ctrl A 全部选择 然后拷贝] 说明一:建立表之间的关联
product、item、orders三个表通过公共域,通常称为键域(Key Field)进行关联,存在两种类型的键:主键(Primary key)和外部键(Foreign key)。主键使表中的数据行保持唯一,在表product中,product_id为主键,表orders中也包含有product_id,此时的product_id就是外部键。一个表的外部键从其它表中获取信息。看看上面的SQL语句,应该会了吧! 说明二:关于自动编号
在access中有自动编号的数据类型,MSSQL和MYSQL也都有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值,而oracle没有自动增长的数据类型,我们需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段,可以预见的是,有此功能,我们可以把数据从ACCESS、MSSQL或MYSQL迁移到oracle了!
create sequence type_id increment by 1 start with 1;
这句中,type_id为序列号的名称,每次增长为1,起始序号为1。 好了,咱们的数据库已经建好了,而且从中也了解到一些基本的相关知识,关于本人的用J2EE开发购物网站之二oracle篇到此结束,如有什么疑问请留言!!
在接下的第三篇weblogic中,本人将继续把个人心血经验无偿奉上,希望大家能从中有所收获!!谢谢支持!
PS:写得真累,快赶上出书了!!

J2EE 开发购物网站 经验篇 - 建表的更多相关文章

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  3. Laravel自动生成UUID,从建表到使用详解

    今天小编就为大家分享一篇Laravel自动生成UUID,从建表到使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  4. 使用Angular.js开发的注意事项

    这篇文章主要记录了一些在学习和使用angular.js踩到的坑和需要注意的点,方便以后自己查阅,也给同样遇到这些问题的朋友们一些帮助,有需要的朋友们下面来一起看看吧。

  5. JSP开发入门(五)--JSP其他相关资源

    JSP其他相关资源:ServletsandJavaServerPages(JSP)1.0:ATutorialhttp://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/JavaServerPagesTM:ADeveloper'sPerspectivehttp://developer.java.sun.com/developer/technicalArtic

  6. 一个开发人员眼中的JSP技术(上)

    本文从一个开发人员的角度对JSP技术做了一个全面介绍。在JSP网页中,要把用户界面和应用程序分开可以考虑在网页设计人员和开发人员之间执行一个非常方便的授权任务。如果需要的话,JSP网页还可以进行预编译。开发人员可以提供定制化的JSP标签库。同样,开发人员也无须一个个编辑页面而只须对组件进行合理的改变。通常,JSP允许开发人员向许多网页设计人员分发功能性应用程序。这就意味着JSP注释并不返回到用户的浏览器中。

  7. EJB 3.0 开发指南之定时服务

    在EJB2.1的规范中需要实现ejbTimeout方法,当然还有ejbPassivate、ejbRemove等方法。在EJB3.0中,只有你想用它们的时候,你才必须创建它们,否则不必实现。将来我们开发的EJB也都是这样命名。Client.java:测试EJB的客户端类。Build.xml:ant配置文件,用以编译、发布、测试、清除EJB。在JBOSS实现的EJB3.0中,你不必写任何的EJB部署文件和jboss部署文件。JBOSS默认使用接口的全称作为它的JNDI名。在Eclipse的Ant视图中执行ru

  8. PHP开发大型项目的一点经验

    变量的命名尽量规范化,不要与PHP中的关键字相冲突。我比较喜欢PHPEDIT,也许是用惯了,现在感觉一离开PHPEDIT写PHP就没感觉,初学PHP的时候用NOTEPAD写,因为程序比较简单。用PHPEDIT工作效率会提高几倍,哪怕你从来没用过。可以说一个大型PHP项目就是由类组成的。

  9. Android开发AsmClassVisitorFactory使用详解

    这篇文章主要为大家介绍了Android开发AsmClassVisitorFactory使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. 关于TypeScript开发的6六个实用小技巧分享

    TypeScript是Javascrip t超集,支持静态类型检测,可以在编译期提前暴露问题,节省debug时间,下面这篇文章主要给大家介绍了关于TypeScript开发的6六个实用小技巧,需要的朋友可以参考下

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部