精华内容
下载资源
问答
  • 回答(19)2 years ago我们可以从以下查询获取所有表格,包括列详细信息:SELECT * FROM user_tab_columns;2 years ago使用sqlplus更好地查看如果您正在使用 sqlplus ,您可能需要首先设置一些参数以便在您的列被破坏...

    回答(19)

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    我们可以从以下查询获取所有表格,包括列详细信息:

    SELECT * FROM user_tab_columns;

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    使用sqlplus更好地查看

    如果您正在使用 sqlplus ,您可能需要首先设置一些参数以便在您的列被破坏时更好地查看(退出 sqlplus 会话后这些变量不应该保留):

    set colsep '|'

    set linesize 167

    set pagesize 30

    set pagesize 1000

    显示所有表格

    然后,您可以使用这样的内容来查看所有表名:

    SELECT table_name, owner, tablespace_name FROM all_tables;

    显示您自己的表格

    正如@Justin Cave所提到的,您可以使用它来显示您拥有的表格:

    SELECT table_name FROM user_tables;

    不要忘记视图

    请记住,某些“表”实际上可能是“视图”,因此您也可以尝试运行以下内容:

    SELECT view_name FROM all_views;

    结果

    这应该产生看起来相当可接受的东西,如:

    581fd090-8526-4c09-a6f3-dfadc62e7f6d.png

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    尝试以下数据字典视图 .

    tabs

    dba_tables

    all_tables

    user_tables

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    为此存在3个数据

    DBA_TABLES describes all relational tables in the database.

    SELECT owner, table_name

    FROM dba_tables

    Description of relational tables accessible to the user

    SELECT owner, table_name

    FROM all_tables

    USER_TABLES 描述了当前用户拥有的关系表 . 此视图不显示 OWNER 列 .

    SELECT table_name

    FROM user_tables

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    下面是一个注释的SQL查询片段,描述了您可以使用的选项:

    -- need to have select catalog role

    SELECT * FROM dba_tables;

    -- to see tables of your schema

    SELECT * FROM user_tables;

    -- tables inside your schema and tables of other schema which you possess select grants on

    SELECT * FROM all_tables;

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    您可以使用Oracle Data Dictionary获取有关oracle对象的信息 .

    您可以通过不同方式获取表的列表:

    select *

    from dba_tables

    或者例如:

    select *

    from dba_objects

    where object_type = 'TABLE'

    然后,您可以使用表名获取表列:

    select *

    from dba_tab_columns

    然后,您可以获得依赖项列表(触发器,视图等):

    select *

    from dba_dependencies

    where referenced_type='TABLE' and referenced_name=:t_name

    然后你可以得到这个对象的文本来源:

    select * from dba_source

    如果需要,您可以使用 USER 或 ALL 视图而不是 DBA .

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    SELECT owner, table_name

    FROM dba_tables

    这假设您可以访问 DBA_TABLES 数据字典视图 . 如果您没有这些权限但需要它们,则可以请求DBA明确授予您对该表的权限,或者DBA授予您 SELECT ANY DICTIONARY 权限或 SELECT_CATALOG_ROLE 角色(其中任何一个都允许您查询任何数据)字典表) . 当然,您可能希望排除某些模式,例如 SYS 和 SYSTEM ,这些模式具有您可能不关心的大量Oracle表 .

    或者,如果您无权访问 DBA_TABLES ,则可以通过 ALL_TABLES 视图查看您的帐户有权访问的所有表格:

    SELECT owner, table_name

    FROM all_tables

    虽然,这可能是数据库中可用表的子集( ALL_TABLES 显示了您的用户被授予访问权限的所有表的信息) .

    如果您只关心您拥有的表,而不是您有权访问的表,则可以使用 USER_TABLES :

    SELECT table_name

    FROM user_tables

    由于 USER_TABLES 仅包含您拥有的表的信息,因此它没有 OWNER 列 - 根据定义,所有者就是您 .

    Oracle还有许多遗留数据字典视图 - 例如 TAB , DICT , TABS 和 CAT --可以使用 . 一般情况下,我不建议使用这些遗留视图,除非您绝对需要将脚本反向移植到Oracle 6. Oracle长时间没有更改这些视图,因此它们经常遇到新类型对象的问题 . 例如, TAB 和 CAT 视图都显示有关用户回收站中的表的信息,而 [DBA|ALL|USER]_TABLES 视图都会过滤掉这些表 . CAT 还显示有关具有 TABLE_TYPE "TABLE"的物化视图日志的信息,这不太可能是您真正想要的 . DICT 结合了表和同义词,并没有告诉你谁拥有该对象 .

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    select object_name from user_objects where object_type='TABLE';

    要么 - - - - - - - - -

    select * from tab;

    要么 - - - - - - - - -

    select table_name from user_tables;

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    我希望获得属于按列id顺序排序的模式表的所有列名称的列表 .

    这是我正在使用的查询: -

    SELECT COLUMN_NAME

    FROM ALL_TAB_COLUMNS

    WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'

    ORDER BY COLUMN_ID ASC;

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    有了这些,你可以选择:

    SELECT DISTINCT OWNER, OBJECT_NAME

    FROM DBA_OBJECTS

    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

    SELECT DISTINCT OWNER, OBJECT_NAME

    FROM ALL_OBJECTS

    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    查询 user_tables 和 dba_tables 无法正常工作 .

    这个做了:

    select table_name from all_tables

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    更进一步,还有另一个名为cols(all_tab_columns)的视图,可用于确定哪些表包含给定的列名 .

    例如:

    SELECT table_name, column_name

    FROM cols

    WHERE table_name LIKE 'EST%'

    AND column_name LIKE '%CALLREF%';

    查找名称以EST开头的所有表和名称中包含CALLREF的列 .

    在计算要加入的列时,这可能会有所帮助,例如,取决于您的表和列命名约定 .

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    我没有找到可以指出使用的答案

    DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    包括观点:

    SELECT owner, table_name as table_view

    FROM dba_tables

    UNION ALL

    SELECT owner, view_name as table_view

    FROM DBA_VIEWS

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    尝试从user_tables中选择,其中列出了当前用户拥有的表 .

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    select * from dba_tables

    仅当您登录的用户具有 sysdba 权限时,才会提供所有用户的所有表 .

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    以下查询仅列出所需数据,而其他答案给了我额外的数据,这只会让我困惑 .

    select table_name from user_tables;

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    简单查询为当前用户选择表:

    SELECT table_name FROM user_tables;

    e15298c6a3b4591803e154ab0c3b3e2e.png

    2 years ago

    Oracle数据库使用以下查询显示所有表的名称

    SELECT owner, table_name FROM dba_tables;

    SELECT owner, table_name FROM all_tables;

    SELECT table_name FROM user_tables;

    展开全文
  • 分区表就是通过分区技术使一张大表...所以对于分区表来说,所有独立的表结构都是一样的,例如table1有个 userid varchar(2),那相同的,table2也有相对应的userid varchar(2);但是各个表可以处在不同的表空间里,...

    分区表就是通过分区技术使一张大表拆分成多个表分区 (segment),就像用一把刀将一个大蛋糕切成各个小份,方便分发和食

    用;而分区表技术正是为了提高大表的性能以及更方便运维人员对其进行维护;所以对于分区表来说,

    所有独立的表结构都是一样的,例如table1有个 userid varchar(2),那相同的,table2也有相对应的userid varchar(2);但是

    各个表可以处在不同的表空间里,但是表空间默认的block_size必须一致。即使我们对一张大表进行分区,但是对于应用层来

    说是感知不到的,也就是说完全不会影响到应用层。

    详细来说一下分区表有什么好处:

    便于维护:例如一张大表(yxtb)根据时间来进行分区,2018年 每个月都有单独一个表(date);某一天突然接到请求,要查询7月

    份业务量超过xx一共有多少天,这样我们便可以单独针对七月份这个表进行操作,无论是添加索引还是导入导出,备份恢复都

    很简便;如果某天业务员不小心删掉了7月份的数据,需要我们紧急恢复的时候,这时其他月份的数据还是完好的,不影响使

    用,并且再次进行恢复任务量也相对小很多。

    像上例所说,yxtb根据时间(date)来分区,这个时间date便叫做 分区键,对此表进行dml操作时,oracle会根据分区键选择相

    对应的分区进行操作!

    下面对分区表进行简单的实验:

    先查询所需要进行分区表的表结构:

    sys@FX1TEST>desc fqtbb

    Name    Null?    Type

    -------------------------------------------------------------------------- -------- --------------------------------------------------

    ID         NUMBER

    YXTIME      DATE

    HASH     VARCHAR2(50)

    GOODLOOK     VARCHAR2(20)

    查询表当前的数据:

    sys@FX1TEST>select * from fqtbb;

    ID YXTIME       HASH    GOODLOOK

    ---------- ------------------- -------------------- ----------

    1 2011-01-02 00:00:00 java111    no

    1 2011-04-02 00:00:00 java121    no

    1 2011-05-02 00:00:00 java131    no

    1 2012-02-02 00:00:00 java141    no

    1 2013-01-02 00:00:00 java1ds    no

    1 2012-06-04 00:00:00 java1da    no

    1 2013-12-21 00:00:00 java771    no

    1 2013-02-02 00:00:00 java771    no

    1 2014-06-25 00:00:00 java661    no

    1 2014-01-02 00:00:00 java156    no

    1 2015-05-22 00:00:00 java132    no

    1 2015-06-07 00:00:00 java134    no

    1 2016-04-21 00:00:00 java152    yes

    1 2016-11-11 00:00:00 java761    yes

    1 2016-01-21 00:00:00 java171    yes

    1 2017-04-21 00:00:00 java711    yes

    1 2017-05-05 00:00:00 java717    yes

    1 2017-01-02 00:00:00 java174    yes

    1 2018-03-01 00:00:00 java172    yes

    1 2018-01-23 00:00:00 java176    yes

    1 2018-12-22 00:00:00 java166    yes

    21 rows selected.

    下面便是一些常用的分区方法

    范围分区:利用分区键定义范围,根据实际取值,进行分区选择,这种范围一般以数字形式存储,例如时间,分数,工资等等,所以不可避免的这种分区方法做不到均匀分区。

    这里我们用时间范围进行划分 :

    create table fqtbb_part (

    id number,

    yxtime date,

    hash varchar(50),

    goodlook varchar(20))

    PARTITION BY RANGE (yxtime)

    (

    PARTITION fqtbb_part1 VALUES LESS THAN (TO_DATE('2011-01-01','yyyy-mm-dd'))

    TABLESPACE test,

    PARTITION fqtbb_part2 VALUES LESS THAN (TO_DATE('2014-01-02','yyyy-mm-dd'))

    TABLESPACE test1,

    PARTITION fqtbb_part3 VALUES LESS THAN (MAXVALUE)

    TABLESPACE test2

    );

    Table created.

    将大表中的数据插到新建表中:

    sys@FX1TEST>insert into fqtbb_part select * from fqtbb;

    21 rows created.

    sys@FX1TEST>commit;

    Commit complete.

    接下来查询单独分区的数据信息

    sys@FX1TEST>select * from fqtbb_part partition(fqtbb_part3);

    ID YXTIME       HASH    GOODLOOK

    ---------- ------------------- -------------------- ----------

    1 2014-06-25 00:00:00 java661    no

    1 2014-01-02 00:00:00 java156    no

    1 2015-05-22 00:00:00 java132    no

    1 2015-06-07 00:00:00 java134    no

    1 2016-04-21 00:00:00 java152    yes

    1 2016-11-11 00:00:00 java761    yes

    1 2016-01-21 00:00:00 java171    yes

    1 2017-04-21 00:00:00 java711    yes

    1 2017-05-05 00:00:00 java717    yes

    1 2017-01-02 00:00:00 java174    yes

    1 2018-03-01 00:00:00 java172    yes

    1 2018-01-23 00:00:00 java176    yes

    1 2018-12-22 00:00:00 java166    yes

    13 rows selected.

    sys@FX1TEST>select * from fqtbb_part partition(fqtbb_part2);

    ID YXTIME       HASH    GOODLOOK

    ---------- ------------------- -------------------- ----------

    1 2011-01-02 00:00:00 java111    no

    1 2011-04-02 00:00:00 java121    no

    1 2011-05-02 00:00:00 java131    no

    1 2012-02-02 00:00:00 java141    no

    1 2013-01-02 00:00:00 java1ds    no

    1 2012-06-04 00:00:00 java1da    no

    1 2013-12-21 00:00:00 java771    no

    1 2013-02-02 00:00:00 java771    no

    8 rows selected.

    当然如果查询分区表的信息。也有相对应的表供用户查询。例如:

    sys@FX1TEST>select TABLE_NAME,PARTITIONING_TYPE,PARTITION_COUNT,STATUS from dba_part_tables where table_name='FQTBB_PART';

    TABLE_NAME       PARTITIONING_TYPE  PARTITION_COUNT STATUS

    ------------------------------ ------------------ --------------- ----------------

    FQTBB_PART       RANGE3 VALID

    查询表分区所处的表空间:

    sys@FX1TEST>select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name='FQTBB_PART';

    PARTITION_NAME       NUM_ROWS TABLESPACE SEGMENT_

    -------------------- ---------- ---------- --------

    FQTBB_PART1TEST   YES

    FQTBB_PART2TEST1   YES

    FQTBB_PART3TEST2   YES

    列分区

    列分区根据分区键指定的取值列表进行分区,但是这种分区方法适合的比较少,例如部门列表、所属项目组名称等等

    这里根据goodlook键进行定义:

    create table fqtbb_parta (

    id number,

    yxtime date,

    hash varchar(50),

    goodlook varchar(20))

    PARTITION BY list(goodlook)

    (

    PARTITION fqtbb_part1 VALUES ('yes')

    TABLESPACE test,

    PARTITION fqtbb_part2 VALUES ('no')

    TABLESPACE test1,

    PARTITION fqtbb_part3 VALUES (default)

    TABLESPACE test2

    );

    Table created.

    插入数据

    sys@FX1TEST>insert into fqtbb_parta select * from fqtbb;

    21 rows created.

    sys@FX1TEST>commit;

    Commit complete.

    分区表创建完成之后进行查询验证:

    sys@FX1TEST>select * from fqtbb_parta partition(fqtbb_part2);

    ID YXTIME       HASH    GOODLOOK

    ---------- ------------------- -------------------- ----------

    1 2011-01-02 00:00:00 java111    no

    1 2011-04-02 00:00:00 java121    no

    1 2011-05-02 00:00:00 java131    no

    1 2012-02-02 00:00:00 java141    no

    1 2013-01-02 00:00:00 java1ds    no

    1 2012-06-04 00:00:00 java1da    no

    1 2013-12-21 00:00:00 java771    no

    1 2013-02-02 00:00:00 java771    no

    1 2014-06-25 00:00:00 java661    no

    1 2014-01-02 00:00:00 java156    no

    1 2015-05-22 00:00:00 java132    no

    1 2015-06-07 00:00:00 java134    no

    12 rows selected.

    sys@FX1TEST>select * from fqtbb_parta partition(fqtbb_part1);

    ID YXTIME       HASH    GOODLOOK

    ---------- ------------------- -------------------- ----------

    1 2016-04-21 00:00:00 java152    yes

    1 2016-11-11 00:00:00 java761    yes

    1 2016-01-21 00:00:00 java171    yes

    1 2017-04-21 00:00:00 java711    yes

    1 2017-05-05 00:00:00 java717    yes

    1 2017-01-02 00:00:00 java174    yes

    1 2018-03-01 00:00:00 java172    yes

    1 2018-01-23 00:00:00 java176    yes

    1 2018-12-22 00:00:00 java166    yes

    9 rows selected.

    sys@FX1TEST>select * from fqtbb_parta partition(fqtbb_part3);

    no rows selected

    下面是oracle 分区表常用的管理操作,如下:

    由于我们之前再范围分区时,设置了default值,所以无法增加分区,所以这里先演示删除分区

    sys@FX1TEST>alter table fqtbb_part drop partition fqtbb_part3;

    Table altered.

    sys@FX1TEST>select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name='FQTBB_PART';

    PARTITION_NAME       NUM_ROWS TABLESPACE_NAME      SEGMENT_

    ------------------------------------------------------------ ---------- ------------------------------------------------------------ --------

    FQTBB_PART1      0 TEST     YES

    FQTBB_PART2      8 TEST1     YES

    添加分区

    sys@FX1TEST>alter table fqtbb_part add partition p3 values less than (to_date('2019-09-09','yyyy-mm-dd'));

    Table altered.

    截断分区:截断分区是指清楚数据,保留分区结构,如下

    sys@FX1TEST>alter table fqtbb_part truncate partition p3;

    Table truncated.

    合并分区:指将相邻的分区合并成一个分区,例如2019、2018 这两个分区,合并之后,分区将采用2019这个界限,并且合并是要合并到2019这个分区里;如下

    sys@FX1TEST>alter table fqtbb_part merge partitions fqtbb_part1,fqtbb_part2 into partition fqtbb_part2;

    Table altered.

    sys@FX1TEST>select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name='FQTBB_PART';

    PARTITION_NAME       NUM_ROWS TABLESPACE_NAME      SEGMENT_

    ------------------------------------------------------------ ---------- ------------------------------------------------------------ --------

    FQTBB_PART2SYSTEM     YES

    P3SYSTEM     YES

    拆分分区:有合并当然就有拆分,意思就是将一个分区拆成两个分区,而之前的分区将不存在;如下

    sys@FX1TEST>alter table fqtbb_part split partition fqtbb_part2 at(to_date('2014-01-01','yyyy-mm-dd')) into (partition p1,partition p2);

    Table altered.

    sys@FX1TEST>select PARTITION_NAME,NUM_ROWS,TABLESPACE_NAME,SEGMENT_CREATED from dba_tab_partitions where table_name='FQTBB_PART';

    PARTITION_NAME       NUM_ROWS TABLESPACE_NAME      SEGMENT_

    ------------------------------------------------------------ ---------- ------------------------------------------------------------ --------

    P1SYSTEM     YES

    P2SYSTEM     YES

    P3SYSTEM     YES

    重命名分区:顾名思义,就是让分区换一个名字

    sys@FX1TEST>alter table fqtbb_part rename partition p1 to p11;

    Table altered.

    展开全文
  • ResultSetMetaData主要获取本身的结构:import java.sql.*;public class DBAccess {public static java.sql.Connection conn = null;private String sqlStr = "";public DBAccess(){//new sun.jdbc.odbc....

    ResultSetMetaData主要获取表本身的结构:

    import java.sql.*;

    public class DBAccess {

    public static java.sql.Connection conn = null;

    private String sqlStr = "";

    public DBAccess()

    {

    //new sun.jdbc.odbc.JdbcOdbcDriver();

    try {

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    conn = DriverManager.getConnection("jdbc:odbc:TestDB","admin","");

    }

    catch (ClassNotFoundException ex) {

    System.out.println(ex.toString());

    }

    catch(SQLException sqlEx){

    System.out.println(sqlEx.toString());

    }

    }

    public ResultSet Search() {

    ResultSet rset = null;

    sqlStr = "SELECT * FROM STUDENTINFO";

    Statement smt = null;

    try {

    smt = conn.createStatement();

    rset = smt.executeQuery(sqlStr);

    }

    catch (SQLException ex) {

    System.out.println("Exception:"+ex.toString());

    }

    return rset;

    }

    public void getResultSetMetaData()

    {

    ResultSet rs = null;

    try {

    String[] tp = {"TABLE"};

    rs = this.Search();

    ResultSetMetaData rsmd = rs.getMetaData();

    System.out.println("下面这些方法是ResultSetMetaData中方法");

    System.out.println("获得1列所在的Catalog名字 : " + rsmd.getCatalogName(1));

    System.out.println("获得1列对应数据类型的类 " + rsmd.getColumnClassName(1));

    System.out.println("获得该ResultSet所有列的数目 " + rsmd.getColumnCount());

    System.out.println("1列在数据库中类型的最大字符个数" + rsmd.getColumnDisplaySize(1));

    System.out.println(" 1列的默认的列的标题" + rsmd.getColumnLabel(1));

    System.out.println(“1列的模式” + rsmd.GetSchemaName(1));

    System.out.println("1列的类型,返回SqlType中的编号 " + rsmd.getColumnType(1));

    System.out.println("1列在数据库中的类型,返回类型全名" + rsmd.getColumnTypeName(1));

    System.out.println("1列类型的精确度(类型的长度): " + rsmd.getPrecision(1));

    System.out.println("1列小数点后的位数 " + rsmd.getScale(1));

    System.out.println("1列对应的模式的名称(应该用于Oracle) " + rsmd.getSchemaName(1));

    System.out.println("1列对应的表名 " + rsmd.getTableName(1));

    System.out.println(“1列是否自动递增” + rsmd.isAutoIncrement(1));

    System.out.println(“1列在数据库中是否为货币型” + rsmd.isCurrency(1));

    System.out.println(“1列是否为空” + rsmd.isNullable(1));

    System.out.println(“1列是否为只读” + rsmd.isReadOnly(1));

    System.out.println(“1列能否出现在where中” + rsmd.isSearchable(1));

    }

    catch (SQLException ex) {

    ex.printStackTrace();

    }

    }

    public static void main(String args[])

    {

    DBAccess dbAccess = new DBAccess();

    dbAccess.getResultSetMetaData();

    }

    }

    2011年4月29日 13:41

    展开全文
  • 登陆 username:scott password:tiger sqlplus/...查看dept的表结构(字段)查询语句select * from dept;select deptno,dname,loc from dept;select empno.sal.comm,sal+comm from emp;(运算)select empno,sal,sal+100 ...

    登陆 username:scott password:tiger sqlplus/sqlplusw/

    desc dept;查看dept的表结构(字段)

    查询语句select * from dept;

    select deptno,dname,loc from dept;

    select empno.sal.comm,sal+comm from emp;(运算)

    select empno,sal,sal+100 from emp;(运算)

    select sysdate from emp;(系统时间)

    select sysdate from dual;(dual是虚表,这样只显示了时间)

    select sysdate+1 from dual;(时间的运算)

    select ename,sal*12 from emp;

    select empno,(sal-100)*14 from emp;

    select deptno||dname from dept;(字符串连接)

    select deptno||'部门标号' from dept;(类型都转换成最高级的再运算)

    select deptno||001 from dept;(数值型的连接)

    空值的任何算数表达式都等于空

    select empno,sal,comm,sal+comm from emp;

    selec ename||null from emp;

    selec ename||'' from emp;

    select lsat_name||null||first_name from employees;(空值连接运算)

    select ename "雇员 姓名" from emp;(字段别名改变列标题)

    select ename "Ename" from emp;(字段别名强制大小写)

    文本字符串

    insert into dept valuse(50,'develop','China');

    重复记录

    select distinct danme from dept;(使用destinct关键字,要放在前面)

    select distinct danem,deptno from dept;(两列条件同时满足)

    条件查询

    select empno,ename,deptno from emp

    where deptno='10';(where关键字)

    select empno,ename,deptno from emp

    where deptno=10 and ename='clark'(and与)

    select empno,ename,deptno from emp

    where deptno=10 or deptno=20;(or或)

    select empno,ename,deptno from emp

    where deptno!=10;(不等于)

    select empno,ename,hiredate from emp

    where hiredate='03-4月-89'(注意日期的格式)

    查看当前的默认日期格式

    select * from v$nls_parameters;(所有格式)

    或者 select sysdate from dual;(只有日期格式)

    select empno,deptno from emp

    where deptno<>10;(不等于)

    select depno,hiredate from emp

    where hiredate > '01-01月-82';(越接近现在的日期越大)

    其他比较运算符号:

    (BETWEEN)

    select ename,sal from emp

    where sal>=1000 and sal<=2000;

    select empno,sal from emp

    where sal between 1000 and 2000;

    (IN)

    select empno,deptno from emp

    where deptno=10 or deptno=20;

    select empno,deptno from emp

    where deptno in(10,20);

    (LIKE)

    select empno,ename from emp

    where ename like 'A%';(LIKE)

    select empno,ename from emp

    where ename like '_A%';(LIKE关键字)

    (SECAPE关键字)

    update dept set dname='develop_' where deptno=60;

    select * from dept

    where dname like '%\_' escape '\';(\是转义符号)

    select * from dept

    where dname like '%$_' escape '$'($是转义符号)

    select empno,comm from emp

    where comm is null;(NULL关键字)

    select ename,comm from emp

    where comm is not null;(关键字)

    select empno,comm from emp

    where comm='';(Null关键字)

    (优先级)

    select deptno,dname from dept

    where deptno=10 and dname like'a%' or loc like 'J%';

    select deptno,dname from dept

    where deptno=10 or dname like'a%' and loc like 'J%';

    对查询数据排序:

    (ORDER BY子句默认升序ASC,降序关键字是DESC)

    select * from emp

    order by empno,sal desc;

    select empno,sal*12 from emp

    order by 1 asc;(1代表的是按哪个字段排序)

    slect  * from emp

    order by ename;(字符串的按首指母排序,hiredte desc离现在最近的)

    使用列的别名排序

    select * from emp

    order by deptno,sal(先按deptno排,然后按sal排)

    展开全文
  • 分析思路开始:这个是文章里提到的数据表结构,ext存这比较多可扩展的属性。然后E-Search就是要对这些属性进行快速的查询搜索。里面提到了Searcher1 Searcher2,就是一个个用于建立索引用的表。比如房产:房产现在...
  • 在多个机器上的ORACLE实例中,结构相同。 查询有统计和排序,java代码不想变化,把这个查询当做一个来看待。 oracle数据库有这样的中间层吗,类似MySql中的proxy。。。或者有什么其他技术可以实现,例如...
  • 最近用java写的数据库的复制,用到了下面的一些查询语句,保存上免得以后忘记了 select username,default_tablespace from dba_users; 查询用户的多有默认空间 select * from dba_data_files where ...
  • connect by prior start with 经常会被用到一个表中存在递归关系的时候。比如我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一...表结构:create table TB_ORG(ORGID VARCHAR2(50) not nul...
  • 今天发现在oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构查询中用到的,其基本语法是:select ... from tablename start with cond1connect by cond2where cond3;...
  • 今天闲来无事,把Oracle的树状查询再看了一遍,以下是我的理解Oracle...查询二维来构造树状结构,一般都是根据一个对象向上查询查出它所有的祖先,根据一个对象向下查询查出它所有的子孙树状结构的特点就是一个子...
  • 员工工资工总表下面是三个表的表结构: 一:基本查询语句1.最简单的查询所有列语句Select*fromemp;2.查询指定列表的查询语句Selectempno,ename,salfromemp; 注意:oracle默认的字符型和日期型数据是左对齐。而数字...
  • Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引;索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。...
  • 函数:这里的函数相当于java中写好的一些方法,有名字,可以传递参数,实现某一项...通常用在select语句中,作为查询的目标表结构oracle保证dual里面永远只有一条记录。例如:显示1+1的结果,可以看出,dual很多时候...
  • oracle树形结构实行查询  ORACLE提供了一种树形结构用来实现层次查询:  START WITH :指定查询的根行。  CONNECT BY :指定父行和子行的关系。  PRIOR : 引用父行。  为测试方便,使用如下Demo: ...
  • [color=red]查询某前缀的所有;... 因为Oracle项目某些模块的数据结构设计没有严格按照某规范设计,所以只能从数据库中查询数据结构,需要查询的信息如下:字段名称、数据类型、是否为空、默认值、主...
  • ORACLE提供了一种树形结构用来实现层次查询:  START WITH :指定查询的根行。  CONNECT BY :指定父行和子行的关系。  PRIOR : 引用父行。  为测试方便,使用如下Demo:  建立数据库TreeTable  Java...
  •  ORACLE提供了一种树形结构用来实现层次查询:  START WITH :指定查询的根行。  CONNECT BY :指定父行和子行的关系。  PRIOR : 引用父行。  为测试方便,使用如下Demo:  建立数据库TreeTable  ...
  • Java 项目视频 Oracle10G 培训日志 1 纲要4 2 内容4 2.1 SQL 概述 4 2.2 什么是数据库4 2.3 表5 2.4 SQL 的分类 5 2.5 演示数据的结构5 2.5.1 怎么样可以取得演示数据表5 2.5.2 如何查看表结构6 2.5.3 表结构描述6 ...
  • 一、什么是事务事务用于...二、事务和锁当执行事务操作时(dml语句),oracle会在被作用的上加锁,防止其它用户修改结构。这里对我们的用户来讲是非常重要的。三、提交事务当用commit语句执行时可以提交事务。当...
  • 员工工资工总表下面是三个表的表结构:一:基本查询语句1.最简单的查询所有列语句Select * from emp;2.查询指定列表的查询语句Select empno ,ename,sal from emp;注意:oracle默认的字符型和日期型数据是左...
  • 在这里只是举例说明如何探索数据库表和表结构的信息。其他信息类似。其实有些数据库有相应的方法去查询到个数据库表的对应结构信息。如Mysql和Oracle可以使用describe 表名 来得到对应表的结构信息,但是目前我没...
  • Oracle中的游标:是内存中的一块区域,存放sql 的查询结果cursor隐式游标:无约束的集合--可以存放任意的结果使用单条结构查询语言,4个属性如下:%rowcount记录的行数,整数.%found:能得到记录true.%notfound:...
  • 1.情景展示根据第一个游标的...表结构展示 2.创建临时表方式一:直接创建/*** 创建临时指标表*/CREATE GLOBAL TEMPORARY TABLE TAB_INDEX_TEMP(A_ID NUMBER,--一级指标IDA_INDEXNAME VARCHAR2(50), --一级指标名称A_...
  • 表查询 1.结构 2.数据挖掘 3.区别(别名可以不取,mysql要取) 4.特性:虚 select * from #student 虚,不是真实存在的 二.select 子查询 1.结构 sql版: select((select count(1) from students),(select ...
  • SODA允许您在Oracle数据库中创建和存储此类文档集合,并执行在这些文档上创建,检索,更新和删除(CRUD)操作,而无需了解结构查询语言(SQL)或JDBC或数据如何存储在数据库中。 本质上,SODA在Oracle数据库之上...
  • JAVA代码实现(链接):MySql、Oracle(通用方法)递归查询生成文件目录树(JAVA实现 递归过程中不访问数据库,递归之前只访问两次 进行递归前数据准备)   以下是XML中实现文件树的查询、递归 场景:根据交易编码...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 297
精华内容 118
关键字:

java查询oracle表结构

java 订阅