Oracle数据库第一天

1.创建表空间
创建表空间实际上就是创建了一个数据文件

*create tablespace waterboss
 datafile 'c:\waterboss.dbf'
 size 100m
 autoextend on
 next 10m
 
	waterboss 为表空间名称,表名称可以随便取, tablespace为表空间
	datafile 用于设置物理文件名称,就是数据文件   c:\waterboss.dbf  就是表空间对应的数据文件,这里的waterboss和上面的可以不一样,
		只能在c盘下,因为虚拟机只有一个盘符,如果plsql安装在windows操作系统,就可以随便取盘符
	size 用于设置表空间的初始大小,  100m 为100兆
	autoextend on 用于设置自动增长,如果存储量超过初始大小,则开始自动扩容,扩充多少由next决定,
	next 用于设置扩容的空间大小,next 10m,为一次性扩充10兆
	
*创建业主表示例:
	create table t_owners
	(
	id number primary key,
	name varchar2(30),   //  char 固定长度字符类型,最多储存2000字节  varchar2 可变长度字符类型,最多储存4000字节
	addressid number,
	housenumber varchar2(30),
	watermeter varchar2(30),
	adddate date,
	ownertypeid number
	);

2.创建用户
*create user wateruser
identified by itheima
default tablespace waterboss

	wateruser 为创建的用户名
	identified by 用于设置用户的密码
	default tablesapce 用于指定默认表空间名称,这样这个用户就在这个表空间里面,一个表空间可以有多个用户

3.用户赋权
*grant dba to wateruser
给用户 wateruser 赋予 DBA 权限后即可登陆,需要输入这个才可以登陆,

4.数据的增删改(该语法和mysql语法一致)

点中表,然后右击:
query data 查看
Edit 修改

*插入数据语法和mysql语法一样
	INSERT INTO 表名 VALUES(值 1,值 2,...)
  ★示例:insert into T_OWNERS values(1,'李四','黑马6期','1-1','88888',sysdate,1);  //sysdate 是获取当前系统时间
★★★★★commit;  //在输入语法后,一定要输入commit提交事务,一起选中,按F8即可,事务是有隔离级别的,要等前一个事务提交了,后面的一个事务才会执行
		  
*修改数据
	UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....WHERE 修改条件;
  ★示例:update T_OWNERS set adddate=adddate-3 where id=1;  //把用户id为1的日期往前提前三天,日期可以加减
		  commit;
		  
*删除数据
	DELETE FROM 表名 WHERE 删除条件;
  ★示例:delete from T_OWNERS where id=1;
		  commit;
	
	另外一种删除的方法
		TRUNCATE TABLE 表名称
		
		比较 truncat 与 delete 实现数据删除?
			1. delete 删除的数据可以 rollback,而truncat不可以回滚。
			2. delete 删除可能产生碎片,并且不释放空间
			3. truncate 是先摧毁表结构,再重构表结构

5.数据库整体导出与导入
*作用:数据库中数据的迁移
数据库的备份恢复
*分类:整库导入导出
按用户导入导出
按表导入导出
*exp 导出
exp system/itheima full=y full就是全部,y就是yes,这是整库导入导出,导出来的是一个文件
imp 导入
imp system/itheima full=y 导入后,你自己写的表,包括系统表全部恢复
执行命令后会在当前目录下生成一个叫 EXPDAT.DMP,此文件为备份文件。
如果想指定备份文件的名称,则添加 file 参数即可,命令如下
exp system/itcast file=文件名 full=y
示例: imp system/itcast full=y file=water.dmp file最好是dmp,full和file顺序可以变

6.按用户导入导出
*按用户导出
exp system/itcast owner=wateruser file=wateruser.dmp owner=用户名 file指定一个文件路径

*按用户导入
 imp system/itcast file=wateruser.dmp fromuser=wateruser  fromuser=用户名

7.按表导入导出
*按表导出
exp wateruser/itcast file=a.dmp tables=t_account,a_area , 用导出表的所在的用户名进行操作,wateruser/itcast ,所在表的名称/密码,根据用户找表
//用 tables 参数指定需要导出的表,如果有多个表用逗号分割即可

*按表导入
 imp wateruser/itcast file=a.dmp tables=t_account,a_area

第二部分:今日重要内容概述以及步骤分析和相应的代码实现

1.利用JDBC完成对业主的增删改的代码实现
[1]先写原始JDBC工具类
/*

  • JDBCUtils 连接数据库,关闭资源 ,oracle数据库
    */
    public class JDBCUtils {

    static{
    //加载驱动
    try {
    Class.forName(“oracle.jdbc.driver.oracleDriver”);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    }

    //获取数据库连接
    public static Connection getConnection() throws Exception{
    return DriverManager.getConnection(“jdbc:oracle:thin:@192.168.80.10:1521:orcl”,
    “wateruser”, “itheima”);
    }

    //关闭资源
    public static void closeAll(Connection conn,Statement stam,ResultSet rs){
    if(conn != null){
    try {
    conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    if(stam != null){
    try {
    stam.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    if(rs != null){
    try {
    rs.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }
    }

[2] 创建业主实体类
/*

  • 业主的实体类
    */
    public class Owners {
    private Long id;//编号
    private String name;//业主名称
    private Long addressid;//地址编号
    private String housenumber;//门牌号
    private String watermeter;//水表编号
    private Date adddate;//登记日期
    private Long ownertypeid;//业主类型 ID
    public Long getId() {
    return id;
    }
    public void setId(Long id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public Long getAddressid() {
    return addressid;
    }
    public void setAddressid(Long addressid) {
    this.addressid = addressid;
    }
    public String getHousenumber() {
    return housenumber;
    }
    public void setHousenumber(String housenumber) {
    this.housenumber = housenumber;
    }
    public String getWatermeter() {
    return watermeter;
    }
    public void setWatermeter(String watermeter) {
    this.watermeter = watermeter;
    }
    public Date getAdddate() {
    return adddate;
    }
    public void setAdddate(Date adddate) {
    this.adddate = adddate;
    }
    public Long getOwnertypeid() {
    return ownertypeid;
    }
    public void setOwnertypeid(Long ownertypeid) {
    this.ownertypeid = ownertypeid;
    }

}

[3] 对业主信息实现增删改
/*

  • 业主信息数据访问类
    /
    public class OwnersDao {
    /

    *新增业主
    */
    public static void add(Owners owners){
    //声明连接者和执行者对象
    Connection conn=null;
    PreparedStatement stam=null; //防止注入攻击

    try {
    	//写具体的获取连接的方法
    	conn = JDBCUtils.getConnection();
        stam = conn.prepareStatement("insert into T_OWNERS values(?,?,?,?,?,?,?)");	
        stam.setLong(1, owners.getId());  //业主编号
        stam.setString(2, owners.getName()); //业主名称
        stam.setLong(3, owners.getAddressid());  //地址编号
        stam.setString(4, owners.getHousenumber()); //门牌号
        stam.setString(5, owners.getWatermeter()); //水表编号
        stam.setDate(6, new Date(owners.getAdddate().getTime())); //增加日期
        stam.setLong(7, owners.getOwnertypeid());  //业主类型
        stam.execute();  //执行
    
    } catch (Exception e) {
    	e.printStackTrace();
    }finally {
    	JDBCUtils.closeAll(  conn, stam, null);  //关闭所有资源
    }	
    

    }

    /*

    • 修改业主
      */
      public static void update(Owners owners){
      java.sql.Connection conn=null;
      java.sql.PreparedStatement stam=null;
      try {
      conn=JDBCUtils.getConnection();
      stam=conn.prepareStatement(“update T_OWNERS set name=?,addressid=?,housenumber=?,watermeter=?,adddate=?, ownertypeid=? where id=?”);
      stam.setString(1, owners.getName());
      stam.setLong(2, owners.getAddressid());
      stam.setString(3, owners.getHousenumber());
      stam.setString(4, owners.getWatermeter());
      stam.setDate(5, new Date(owners.getAdddate().getTime()));
      stam.setLong(6, owners.getOwnertypeid());
      stam.setLong(7, owners.getId());
      stam.execute();
      } catch (Exception e) {
      e.printStackTrace();
      }finally {
      JDBCUtils.closeAll( conn, stam, null);
      }
      }

    /*

    • 删除业主
      */
      public static void delete(Long id){ //删除是根据业主id进行删除
      java.sql.Connection conn=null;
      java.sql.PreparedStatement stam=null;
      try {
      conn=JDBCUtils.getConnection();
      stam=conn.prepareStatement(“delete from T_OWNERS where id=?”);
      stam.setLong(1, id);
      stam.execute();
      } catch (Exception e) {
      e.printStackTrace();
      }finally {
      JDBCUtils.closeAll(conn, stam, null);
      }
      }
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值