二、Oracle 数据库基本操作

一。oracle常用数据类型
数字:number(p,s) p表示数字的长度包括小数点后的位数,s表示小数点后的位数
固定长度字符:char(n):n表示最大长度,n即是最大也是固定的长度,当数据不满长度则以空格补满
可变长度字符:varchar2(n):n表示最大长度
日期类型:date精确到毫秒
blob:大字段数据类型

 

二。建表语句
注意:主键是唯一且不为空,能唯一标识一条数据的独立性。通常没有任何业务意义,只用来标识数据的唯一性
create table student(
  stu_id number(8,0) primary key,
  stu_name varchar2(30),
  stu_age number(3,0),
  stu_sex char(3),
  stu_birthday date
)

 

三。主外键关联
--给班级表添加一个字段
alter table CLASSINFO add school_id number;

--创建外键字段
alter table STUDENT
add constraint fk_stu_class foreign key (CLASS_ID)
references classinfo (CLASS_ID);


--删除表
drop table 表名


--创建,修改,删除表,统称为数据库定义语言DDL


注意:外键约束:
  1.在子表中无法添加主表还没有的数据
  2.子表如果有相应记录,主表不能删除

 

四。数据库操作语言DML
--插入数据的语句
insert into student(stu_id,stu_name,stu_age,stu_sex,stu_birthday) values (1,'章三班',90,'男',sysdate)
insert into student values(1,'张三',22,'1',sysdate)


--delete from 表名 where 条件
例子:delete from student where stu_id=1


--修改数据
update 表名 set 字段名=值,字段名=值 .... where 条件


--查询
select 字段名 from student where 条件

 

五。数据库定义语言
create 、alter、 drop 、rename、  truncate
truncate:截断表数据,作用是一次性删除表中所有数据,是一个一次性事物,不能回滚,删除效率远高于delete

 

六。事物控制语言
commit:提交事物

rollback:回滚事物

savepoint:设置回滚点

 

七。数据控制语句
grant 权限 to 用户名 -- 赋予权限
revoke 权限 from 用户名 -- 撤销权限

 

练习:
1.创建一张学员信息表和一张班级信息表。思考这两张表如何关联起来

2.创建学校信息表。思考学校和学员和班级的关系。怎么关联

 

例子1:

 1 --对数据的增删改查
 2 --新增数据
 3 insert into student(stu_id,stu_name) values(1,'张三') 
 4 insert into student values(2,'李四',20,'',sysdate)
 5 
 6 --查询数据
 7 select * from student
 8 
 9 --删除数据
10 delete from student where stu_id=1
11 
12 --修改数据
13 update student set stu_name='小李子',stu_sex='' where stu_id=2

例子2:

 1 create table classinfo(
 2        class_id number primary key,
 3        class_name varchar2(30)
 4 )
 5 
 6 insert into classinfo values (1,'java3班')
 7 
 8 create table school(
 9        school_id number primary key,
10        school_name varchar2(30)
11 )
12 --给班级表添加一个字段
13 alter table CLASSINFO add school_id number;
14 
15 --创建外键字段
16 alter table STUDENT
17   add constraint fk_stu_class foreign key (CLASS_ID)
18   references classinfo (CLASS_ID);
19   
20   --删除表
21   drop table 表名
22   
23   --创建,修改,删除表,统称为数据库定义语言DDL
24   
25   --删除
26   delete from student-- where stu_id=1 --stu_name='李四' and  age!=20  age<>20

例子3:

 1 --创建用户
 2 create user c##java06 identified by java123
 3 
 4 --给用户赋予权限
 5 --connect:链接角色
 6 --resource:资源访问角色,能创建表等资源,可以访问和操作数据
 7 --DBA:数据库管理员角色
 8 grant resource to c##java06
 9 grant connect to c##java06
10 grant dba to c##java06
11 
12 --练习:创建用户并赋予权限,通过新建的用户来登录其他服务器(要先配置网络服务名)
13 --修改用户名密码
14 alter user c##hwua identified by hwua123
15 
16 --建表语句
17 create table student(
18       stu_id number(8,0) primary key,
19       stu_name varchar2(30),
20       stu_age number(3,0),
21       stu_sex char(3),
22       stu_birthday date
23 )
24 
25 --对数据的增删改查
26 --新增数据
27 insert into student(stu_id,stu_name) values(1,'张三') 
28 insert into student values(2,'李四',20,'',sysdate)
29 
30 --查询数据
31 select * from student
32 
33 --删除数据
34 delete from student where stu_id=1
35 
36 --修改数据
37 update student set stu_name='小李子',stu_sex='' where stu_id=2

例子4:

用oop做一个进销存系统:
1.货物对象属性:编号(唯一),名称,单价,类别,厂家,厂家地址,厂家联系方式,库存,最后进货时间
2.功能:登录,入库,出库,库存查询,操作记录查询
3.功能描述:
登录:管理员输入用户名密码登录,可以有多个管理员
入库:
新增入库:新录入货物库存信息
库存修改:在已有的货物信息上修改
出库:输入出库货物编号,显示详细信息,输入出库数量,满足条件就出库
库存查询:可以按货物编号,类别,名称,来查询货物详细信息
操作记录查询:所有上面的操作都要记录下操作员的操作信息以及操作时间
可以按操作员姓名查询,操作类型

操作信息对象:属性:编号,操作员名字,操作类型,操作的数量,操作时间

 1 --练习:把进销存的业务用数据库的方式完成
 2 --提示:管理员,货物,操作记录对象分别建立三张表
 3 --完成各项功能的sql语句
 4 
 5 --用户信息表
 6 create table user_info(
 7        user_id number primary key,
 8        username varchar2(30),
 9        pass_word varchar2(20)
10 );
11 
12 --goods_info
13 create table goods_info(
14        goods_id number primary key,
15        goods_name varchar2(50),
16        goods_price number(10,2),
17        goods_count number(8,0)
18 )
19 drop table deal_info
20 --操作信息表deal_info
21 create table deal_info(
22        deal_id number primary key,
23        deal_type_id char(1),
24        user_id number, 
25        goods_id number,
26        deal_count number,
27        deal_time date
28 );
29 --操作类型表
30 create table deal_type(
31        deal_type_id number primary key,
32        typename varchar2(30)
33 );
34 
35 --注册
36 insert into user_info values(1,'admin','123456')
37 --登录
38 select * from user_info where username='admin' and pass_word='123456'
39 
40 --入库
41 insert into goods_info values(1,'辣条',2.5,1000)
42 --记录入库操作
43 insert into deal_info values(1,'1',1,1,50,sysdate)
44 
45 --操作类型数据
46 insert into deal_type values(1,'入库');
47 insert into deal_type values(2,'出库');
48 insert into deal_type values(3,'修改货物信息');
49 
50 
51 select * from user_info;
52 select * from goods_info;
53 select * from deal_info;
54 select * from deal_type;

 

posted @ 2019-04-15 16:15  五柳先生柳三变  阅读(332)  评论(0编辑  收藏  举报