zoukankan      html  css  js  c++  java
  • 二、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;
  • 相关阅读:
    CentOS 6.6下 BCM4312 802.11b/g无线网卡驱动安装
    centOS6.6网络设置
    CentOS6.6安装(转)
    CCFlow工作流程起航
    LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据 (转)
    LINQ to SQL 建立实体类 (转)
    字节数组的转换和合并
    ccflow之相对路径
    CCFlow SDK模式开发(有比较详细的代码,以服务的形式与ccflow数据库进行数据交互)
    Android从相册中获取图片以及路径
  • 原文地址:https://www.cnblogs.com/wlxslsb/p/10711269.html
Copyright © 2011-2022 走看看