• 数据库基本语法


    oracle: 

    一、Oracle数据库操作

    1、创建数据库

         create database databasename

    2、删除数据库

         drop database dbname

    3、备份数据库

    • 完全备份

         exp demo/demo@orcl buffer=1024 file=d:ack.dmp full=y

         demo:用户名、密码

         buffer: 缓存大小

         file: 具体的备份文件地址

         full: 是否导出全部文件

         ignore: 忽略错误,如果表已经存在,则也是覆盖

    • 将数据库中system用户与sys用户的表导出

         exp demo/demo@orcl file=d:ackup1.dmp owner=(system,sys)

    • 导出指定的表

         exp demo/demo@orcl file=d:ackup2.dmp tables=(teachers,students)

    • 按过滤条件,导出

         exp demo/demo@orcl file=d:ack.dmp tables=(table1) query=" where filed1 like 'fg%'"

         导出时可以进行压缩;命令后面 加上 compress=y ;如果需要日志,后面: log=d:log.txt

    • 备份远程服务器的数据库

         exp 用户名/密码@远程的IP:端口/实例 file=存放的位置:文件名称.dmp full=y

    4、数据库还原

         打开cmd直接执行如下命令,不用再登陆sqlplus。

    • 完整还原

         imp demo/demo@orcl file=d:ack.dmp full=y ignore=y log=D:implog.txt

         指定log很重要,便于分析错误进行补救。

    • 导入指定表

         imp demo/demo@orcl file=d:ackup2.dmp tables=(teachers,students)

    • 还原到远程服务器

         imp 用户名/密码@远程的IP:端口/实例 file=存放的位置:文件名称.dmp full=y

    二、Oracle表操作

    1、创建表

         create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

         根据已有的表创建新表:

         A:select * into table_new from table_old (使用旧表创建新表)

         B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle>

    2、删除表

         drop table tabname

    3、重命名表

         说明:alter table 表名 rename to 新表名

            eg:alter table tablename rename to newtablename

    4、增加字段

         说明:alter table 表名 add (字段名 字段类型 默认值 是否为空);

            例:alter table tablename add (ID int);

           eg:alter table tablename add (ID varchar2(30) default '空' not null);

    5、修改字段

         说明:alter table 表名 modify (字段名 字段类型 默认值 是否为空);

            eg:alter table tablename modify (ID number(4));

    6、重名字段

         说明:alter table 表名 rename column 列名 to 新列名 (其中:column是关键字)

            eg:alter table tablename rename column ID to newID;

    7、删除字段

         说明:alter table 表名 drop column 字段名;

            eg:alter table tablename drop column ID;

    8、添加主键

         alter table tabname add primary key(col)

    9、删除主键

         alter table tabname drop primary key(col)

    10、创建索引

         create [unique] index idxname on tabname(col….)

    11、删除索引

         drop index idxname

         注:索引是不可更改的,想更改必须删除重新建。

    12、创建视图

         create view viewname as select statement

    13、删除视图

         drop view viewname

    三、Oracle操作数据

    1、数据查询

         select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]

    2、插入数据

         insert into 表名 values(所有列的值);

         insert into test values(1,'zhangsan',20);

         insert into 表名(列) values(对应的值);

         insert into test(id,name) values(2,'lisi');

    3、更新数据

         update 表 set 列=新的值 [where 条件] -->更新满足条件的记录

         update test set name='zhangsan2' where name='zhangsan'

         update 表 set 列=新的值 -->更新所有的数据

         update test set age =20;

    4、删除数据

    • delete from 表名 where 条件 -->删除满足条件的记录

         delete from test where id = 1;

         delete from test -->删除所有

         commit; -->提交数据

         rollback; -->回滚数据

         delete方式可以恢复删除的数据,但是提交了,就没办法了 delete删除的时候,会记录日志 -->删除会很慢很慢

    • truncate table 表名

         删除所有数据,不会影响表结构,不会记录日志,数据不能恢复 -->删除很快

    • drop table 表名

         删除所有数据,包括表结构一并删除,不会记录日志,数据不能恢复-->删除很快

    5、数据复制

    • 表数据复制

         insert into table1 (select * from table2);

    • 复制表结构

         create table table1 select * from table2 where 1>1;

    • 复制表结构和数据

         create table table1 select * from table2;

    • 复制指定字段

         create table table1 as select id, name from table2 where 1>1;

    6.树状结构层级查询:

      tart with:这个子句一般用于指定层次化查询的开始节点(也就是树的最顶级节点),找到最顶级节点,然后按照一定的规则开始查找其剩余的子节点

      connect by:这个子句就是上面所说的规则,用于查找剩余子节点的规则

      树状结构通常由根节点、父节点、子节点和叶节点组成,简单来说,一张表中存在两个字段,dept_id,par_dept_id,那么通过找到每一条记录的父级id即可形成一个树状结构,也就是par_dept_id(子)=dept_id(父),通俗的说就是这条记录的par_dept_id是另外一条记录也就是父级的dept_id,其树状结构层级查询的基本语法是:

      SELECT [LEVEL],*

      FEOM table_name 

      START WITH 条件1

      CONNECT BY PRIOR 条件2

      WHERE 条件3

      ORDER BY 排序字段

      说明:LEVEL---伪列,用于表示树的层次

         条件1---根节点的限定条件,当然也可以放宽权限,以获得多个根节点,也就是获取多个树

         条件2---连接条件,目的就是给出父子之间的关系是什么,根据这个关系进行递归查询

         条件3---过滤条件,对所有返回的记录进行过滤。

         排序字段---对所有返回记录进行排序

      对prior说明:要的时候有两种写法:connect by prior dept_id=par_dept_id 或 connect by dept_id=prior par_dept_id,前一种写法表示采用自上而下的搜索方式(先找父节点然后找子节点),后一种写法表示采用自下而上的搜索方式(先找叶子节点然后找父节点)。

      从第一级节点开始查询:

      SELECT s."city_name" 城市名称,s."city_code" 城市编码,s."county_name" 区县名称,s."county_code" 区县编码 from SYS_DISTRICT_CODE s
        start with s."id"='31F80466AFF249EEBD28D6C0B0D557B7'
        connect by prior s."id"=s."pid";

        

        太多,后面的未截图

       从第二级节点查询

    SELECT s."city_name",s."city_code",s."county_name",s."county_code" from SYS_DISTRICT_CODE s
        start with s."id"='D80B43078B784E2180E49DBCC5AE36D2'
        connect by prior s."id"=s."pid";

  • 相关阅读:
    Catalan数(卡特兰数)
    100个乘客登机问题
    [设计模式]抽象工厂模式
    栈-队和队-栈
    java实现字符串反转
    java实现字符串按词反转
    windows上安装maven及eclipse中配置maven
    Windows 10 安装 Docker
    Win7操作系统安装IE10提示“安装前需要更新与安装程序版本”
    解决Jenkins权限配置错误,导致登录时出现没有Overall/read权限
  • 原文地址:https://www.cnblogs.com/yscec/p/11855644.html
Copyright © 2020-2023  润新知