随笔-9  评论-168  文章-266  trackbacks-0
注:登入sqlplus时报错,如下:
请输入用户名:  system
输入口令:
error:
ora-12560: tns: 协议适配器错误
原因:
是orcal实例没启动(net [start/stop] 服务名).与linux相反,不在sqlplus中启动实例.

平台: windows server 2003 enterprise editon , oracle 10g(10.02.00.01)

 

  1. 运行"开始->程序\oracle - oradb10g_home1\配置和移植工具"中的"database configuration assistant",创建一个数据库。
  2. 创建成功后,运行"开始->程序\oracle - oradb10g_home1\应用程序开发"中的"sql plus".用户名:sys 密码:123456 as sysdba(密码后面要加空格as空格sysdba) 主机字符串:如果是本机可不填。
  3. 从命令提示符下使用sql*plus
    sqlplus/nolog
    conn 用户名/密码 as sysdba 出现”已连接“后就是成功了。

    
  接下来,我们在sql*plus中实战一下,为我们下面将要做的打好基础。
  用system登陆到sql*plus后,我们做如下操作(这次没有截图,有详细的说明)
-----------如登陆成功此1-3步不必做,直接做第4步----------------
  1. sql>create user maxuan identified by max; #创建口令为max的用户maxuan
  2. sql>grant connect,resource to maxuan; #为用户maxuan授权
  3. sql>conn maxuan/max; #以用户maxuan进行连接
  4. sql>create table test(a number); #建立一个名为test的表,只有字段名为a的一列,数据类型为数字
  5. sql>insert into test values(1); #插入一条记录
  6. sql>select * from test; #查询记录,此时a列的第一行为1
  7. sql>update test set a=2; #更改记录,此时a列的第一行已改为2
  8. sql>commit; #提交.在完成数据库的插入,删除和修改操作时,只有当事务提交到数据库才算完成。
  9. sql>delete from test; #删除test表中所有的记录,此时test表中没有记录
  10. sql>roll; #回滚到提交前,此时再查询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:整数类型
  
补充知识:
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    提交。在完成数据库的插入,删除和修改操作时,只有当事务提交到数据库才算完成,有提交前只有操作数据库的本人才能看到,别人只有在最后提交完成才可以看到。

  一个购物网站后台数据库实例:
  现在我们回到用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)
  );
posted on 2011-08-10 11:29 紫蝶∏飛揚↗ 阅读(1116) 评论(0)  编辑  收藏 所属分类: 数据库
网站地图