Oracle学习笔记(一)

ORACLE安装和删除
   ORACLE9i  9.0.1  空间1.76G
   ORACLE9i  9.0.2  空间2.86G
    事务处理 --  增 删除 修改频繁
    数据仓库 -- 查询 频繁

    GBK    --多200个字左右(偏僻字)
    GB2312 
 
 SETUP.exe 双击


 启动ORACLE数据库  OracleServiceSID  服务  多启动几次
                  OracleOraHome90TNSListener 服务
    如果启动不了Listener(监听器)
     <1>改注册表 
           ImagePath  D:/oracle/ora90/BIN/TNSLSNR
     <2>用命令行启动
            cmd  ->   tnslsnr 最小化
            tNSlsnter  监听器  如果无法启动
            运行cmd 切换到DOS界面 敲tnslsnr 窗口不要关闭
     <3>D:/oracle/ora90/network/ADMIN
                listener.ora 文本文件
             HOST=localhost或机器名
              存盘
 
 
          用工具 ORACLE SQL*PLUS验证数据库是否启动
            用户名system   密码manager
            出现 连接到 和 SQL>符号 说明数据库已经可用了

        默认用户:
          超级用户: 用户名system/密码manager
                   用户名sys/密码change_on_install

          普通的用户: 用户名scott/密码tiger


 注意的问题:安装的源程序放在什么目录下??
        <1>目录中不要出现中文名字的目录
        <2>数据库的名字不要是中文,8个字符以内
        <3>字符集用默认的ZHS16GBK

删除:
   在硬盘上的一个隐含安装的目录Programm Files下的ORACLE  

操作ORACLE数据库的工具

   ORACLE SQL*PLUS 字符界面 ORACLE自带
     sqlplusw.exe windows窗口下的sqlplus
     sqlplus.exe   DOS下的sqlplus          
        
       用户名scott 密码tiger 普通用户
             system    manager   超级用户
             sys       change_on_install  超级用户 比system权限还要大

     SQLPLUS下的常用命令
       show user 察看用户
       connect 用户名/密码  连接到指定用户
            connect scott/tiger   
        select * from tab where tabtype='TABLE';  察看当前用户下的表      
       select count(*) from dept;  查询表dept中记录的行数
       desc dept             察看表dept的结构
       quit/exit             退出
       clear screen          清除屏幕
       set linesize 200      设置一行显示200个字符
       set pagesize 20       设置每页显示20行

       spool 文件名 (spool c:/abc.txt) 作日志文件命令        
       spool off
       
       修改D:/oracle/ora90/sqlplus/admin/glogin.sql文件
 可以设置SQLPLUS的环境
           set linesize 200
           set pagesize 20  

   
          

   ORACLE 企业管理器 (OEM)  图形界面

   PL/SQL Developer 第三方软件 ORACLE不带的

  SQLPLUS  /nolog    nolog是不登陆

  浏览器使用oracle (isqlplus)
     http://127.0.0.1:7778/isqlplus

 

ORACLE中字段的数据类型
   字符型    char        范围  最大2000个字节 定长
               char(10)   '张三' 后添空格6个把10个字节补满  '张三      '
                 性别 char(2)   '男'
                
              varchar2    范围  最大4000个字节 变长
                 varchar2(10)  '张三'      在数据库中'张三'
                
             大对象 字符型大对象 >4000字节 最大4G
               CLOB (Character Large OBject)    
    
   数字     number     范围  10的-38次方 到10的38次方          
              可以表示小数 也可以表示整数  
             number(4)   最大表示4位整数  -9999 到 9999
             number(5,2)   表示5位有效数字 2位小数的 一个小数  -999.99 到 999.99
                  
            
   日期     date      包含年月日和时分秒  7个字节
   图片     blob      二进制大对象    图像/声音  4G

如何建表
   学生表student
        create table student( --学生表
           xh number(4), --学号
           xm varchar2(10), --姓名
           sex char(2), --性别
           birthday date, --日期
           sal number(7,2) --奖学金
        );
   班级class
       create table class( --班级表
          classid number(2), --班级编号
          cname varchar2(20) --班级名字
       );
  添加字段(学生所在班级classid)
      alter table student add (classid number(2));
  修改字段的长度
      alter table student modify (xm varchar2(12)) ;
  修改字段的类型(不能有记录的)
      alter table student modify (xh varchar2(5));
  删除一个字段
      alter table student drop column sal;
  删除表
      drop table student;
  表的名字修改
      rename student to stu;
  字段如何改名字
      --先删除
      a)alter table student drop column sal;        
      --再添加
      b)alter table student add (salary number(7,2));

如何插入数据
  插入数据 insert语句
      所有字段都插入
       insert into student values ('A001','张三','男','01-5月-05',10);
            ORACLE中默认的日期格式'DD-MON-YY'   dd 日子(天)  mon 月份 yy 2位的年
             '09-6月-99' 1999年6月9号
            改日期的默认格式
                 alter session set nls_date_format = 'yyyy-mm-dd';
    
       insert into student values ('A002','MIKE','男','1905-05-06',10);

           恢复ORACLE默认格式
               alter session set nls_date_format = 'dd-mon-yy';
           察看日期的格式
               set linesize 1000
               select * from nls_session_parameters
                 where parameter='NLS_DATE_FORMAT';
           永久设置日期格式
               改注册表oracle/HOME0 加字符串NLS_DATE_FORMAT 值yyyy-mm-dd
     部分字段插入
       insert into student(xh,xm,sex) values ('A003','JOHN','女');
     插入空值
       insert into student(xh,xm,sex,birthday) values ('A004','MARTIN','男',null);

  修改  update
      改一个字段 
       update student set sex='女' where xh='A001';
      改多个字段
       update student set sex='男',
                          birthday='1980-04-01'
              where xh='A001';
      改为空值 (修改为空时=null)
       update student set birthday=null where xh='A001';
      把生日为空的人的班级编号改为20(条件中的空是is null / is not null)
          update student set classid=20 where birthday is null;
         错误的没有达到要求
         update student set classid=20
           where birthday=null;
         不表示空值 表示xm是null的字符串        
         update student set classid=20 where xm='null';
 
   
  删除 delete
      delete from student;  删除所有记录,表结构还在,写日志,可以恢复的,速度慢
      drop table student;  删除表的结构和数据
      delete from student where xh='A001';  删除一条记录

      truncate table student; 删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快

  查询 select   
      select * from student;

      select xh,xm,sex from student;    

      select * from student where xh like 'A%1'; %任意多个字符
      select * from student where xh like 'A__1'; _1个字符
      select * from student where xh like '%A%';             select * from student where xh like 'A%';
select * from student where xh like '%A';                              

      select * from student where xh = 'A%';
                       
  
      select * from student
      order by birthday ;  升序 (order by birthday asc;)
 
      select * from student
      order by birthday desc; --降序
  
      select * from student
      order by birthday desc,xh asc; --按birthday 降序 按xh升序(asc/默认)
                
      select * from student
      where sex='女' or birthday='1999-02-01';

      select * from student
      where sex='女' and birthday='1999-02-01';

      select * from student
       where salary > 20 and xh <> 'B002'; (!=)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值