zoukankan      html  css  js  c++  java
  • oracle数据库基本操作(一)

    一、数据基本类型

      1、oracle的伪列

        Oracle 中伪列就像一个表列,但是它并没有存储在表中伪列可以从表中查询,但不能插入、更新和删除它们的值常用的伪列有ROWID和ROWNUM;

        ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行   

        ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数;

    select rowid,rownum,id,name,price from goods;

      2、数据定义语言(DDL)

      create----alter----drop----truncate

      3、数据操纵语言(DML)

      insert---select---delete---update

      4、事务控制语言(TCL)

      commit---savepoint---rollback

      5、数据控制语言(DCL)

      grant---revoke

    二、oracle数据库基本简介

      1、表名的长度最大为30个字符;

        2、同一用户模式下,不同的表不能有相同的名称;

        3、oracle数据库中的表名、列名、用户名和其他对象名,不区分大小写,系统会自动转成大写;

    三、数据库基本操作

       1、选择无重复的行

      DISTINCT字句筛除结果集中内容全部相同的行,仅保留一行;

      2、带条件和排序的select命令(与mysql类似)

    select stuNo,stuName,stuAge from student where stuAge>16 order by studentName asc,stuAge desc;

      3、oracle数据库列别名的添加与mysql类似

    create table newStudent as select * from student

      4、也可以只复制表结构,不复制数据

    create table newStudent as select * from student where 1=2

    三、DML语言操作

      1、查看表中行数 

    ----效率低
    select count(*) from student
    
    ----效率高
    select count(1) from student

      2、取出表中对应列不存在重复数据的记录 

    select stuName,stuAge from student group by stuName,stuAge having(count(stuName||stuAge)<2)

    四、事物控制语言(TCL)

      1、commit:提交事物;

      2、rollback:回滚事物;

      3、savepoint:在事物中创建存储点

    五、数据控制语言  

      1、创建表

    --oracle没有自增
    因此创建一个序列,在插入数据的时候,将序列插入到定义的主键当中
    create sequence stu_id;
    
    create table student(
        id number primary key,
        name varchar2(20),
        age number      
    );
    
    insert into student(stu_id.nextval,'张三',10);

      2、添加约束(与mysql相同)

      3、向表中添加列 

    alter table student add(address varchar2(20),email varchar2(20));

      4、删除列

    alter table test1 drop column name;

      5、修改一个字段

    alter table test1 modify (name varchar2(16) default ‘unknown’);

      6、分页 

    select * from(
    select a.*,rownum x from(
    select * from goods
    )a
    ) where x>2 and x<=4

     六、常用oracle SQL语句

    --不显示有重复数据的行
    select distinct gname from goods;
    --按照姓名升序,如果姓名相同按照年龄降序
    select gname,price from goods where price>12 order by gname asc,price desc;
    --使用别名显示姓 名、年 龄和身份证号列
    select gname "商品名称",price "商品价格" from goods
    --利用现有的表创建新表
      --方式1(选择所有数据)
      create table goodds as select * from goods
      select * from goodds
      drop table goodds
      --方式2(选择指定列的所有数据)
      create table goodds as select gname from goods
      --方式3(只留表结构,不要数据)
      CREATE TABLE goodds AS SELECT gname,price FROM goods WHERE  1=2; 
    --查看表中行数
       select count(*) from goods   --效率低
       select count(1) from goods   --效率高
    --取出表的列不存在重复数据的记录
    select gname,price,count(gname||price) from goods group by gname,price having(count(gname||price)=1)
    select gname,price from goods group by gname,price having(count(gname||price)<2)
    --删除gname,price列重复的行(保留一行)
    delete from goods where rowid not in(
    select gname,price,max(rowid) from goods group by gname,price having(count(gname||price)=1)
    )
    --常用转换函数
    SELECT TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS') FROM dual;
    SELECT TO_CHAR(1210.7, '$9,999.00') FROM dual;--定义规则的数据长度要比数据长度大
    SELECT TO_DATE('2005-12-06','yyyy-mm-dd') FROM dual;
    SELECT TO_NUMBER('100') FROM dual;
    --转换空值的函数
    NVL(a,b) --a为null,取b,否则取a
    NVL2(a,b,c) --a为null,取c,否则取b
    DECODE --相当于switch函数
    SELECT ename,sal+NVL(comm,0) sal1,NVL2(comm,sal+comm,sal) sal2,
      DECODE(to_char(hiredate, ‘MM ’), 
       '01', '一月', '02', '二月',
       '03', '三月','04','四月',
       '05','五月','06','六月',
       '下半年') mon
    FROM employee;
    --约束
    create table x(
    id int not null,
    name varchar2(20) check(name like '张%'),
    age int check(age between 1 and 100),
    sex varchar2(20) check(sex='' or sex='')
    );
    insert into x values(3,'张abc',19,'')
    
    alter table x add unique(id)
    
    --sqlserver连接符:+ mysql连接符:concat oracle连接符:||
    select 'a'||'b' from dual
  • 相关阅读:
    Day01 基本SQL SELECT
    Java IO流
    排序: 选择排序
    Java的数据存储机制
    Java反射基础笔记
    学习面向对象的三条主线之三 面向对象的三大特征 关键字
    学习面向对象的三条主线之二 面向对象的三大特征
    Oracle数据库知识积累
    office技巧
    如何读书
  • 原文地址:https://www.cnblogs.com/newbest/p/9255703.html
Copyright © 2011-2022 走看看