ORACLE数据库 查询表名 查询列名 查询列中所有数据的语法分别是

ORACLE数据库 查询表名 查询列名 查询列中所有数据的语法分别是,第1张

1查询所有表的表名: select table_name from user_tables

解释:从系统表user_tables中可以查找出所有的表名字。

2查询表中的所有列名:desc table tablename(表名)。

解释:通过desc (描述)tablename即可查找出表中的所有字段。

3查询所有数据:select from tablename t。

解释:通过select 命令可以从tablename 中查找出所有的表数据。

php 不会。

mysql 里面, 查询 表的信息, 我倒是会的。

是从 information_schematables 这里查询的。

下面是一个例子:

mysql> SELECT table_name, table_type, engine

-> FROM information_schematables

-> WHERE table_schema = 'test'

-> ORDER BY table_name DESC;

-> //

+--------------------+------------+--------+

| table_name | table_type | engine |

+--------------------+------------+--------+

| v_sale_report_x | VIEW | NULL |

| v_sale_report | VIEW | NULL |

| union_tab_2 | BASE TABLE | InnoDB |

| union_tab_1 | BASE TABLE | InnoDB |

| test_trigger_table | BASE TABLE | InnoDB |

| test_tab2 | BASE TABLE | InnoDB |

| test_tab | BASE TABLE | InnoDB |

| test_main | BASE TABLE | InnoDB |

| test_dysql | BASE TABLE | InnoDB |

| test_create_tab4 | BASE TABLE | InnoDB |

| test_create_tab2 | BASE TABLE | InnoDB |

| test_create_tab1 | BASE TABLE | InnoDB |

| test_create_tab | BASE TABLE | InnoDB |

| sale_report | BASE TABLE | InnoDB |

| log_table | BASE TABLE | InnoDB |

+--------------------+------------+--------+

15 rows in set (002 sec)

哥们儿,数据库不会这么用的,虽然能做到

如:

1、声明游标

//关键,查询表名,通过游标可以控制表名逐行筛选

select name from sysobjects

where type='U'

2、开始游标,得到表名@tablename

3、循环拼接sql语句并判断

@sql = 'select from ' + @tablename + ' where 1 = 1'

select @sql += ' or name = ' + 你的值 from syscolumns where id = object_id(@tablename)

exec(@sql) --得到的结果,最后你需要怎么处理就怎么处理,这里返回的是表

以上只是思路,我是没这么用过,你自己看着办

//给你个小例子看看

import javaawtBorderLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaxswing;

import javaxswingtableDefaultTableModel;

public class TableTest implements ActionListener{

JFrame frame = new JFrame("JTable Test");

JButton button = new JButton("增加");

JTextField fname = new JTextField(20);

JTextField lname = new JTextField(20);

JPanel north = new JPanel();

JLabel l1 = new JLabel("姓名");

JLabel l2 = new JLabel("****");

DefaultTableModel dtm = new DefaultTableModel(0, 2);

JTable table = new JTable(dtm);

JScrollPane jsp = new JScrollPane(table);

String [] temp = new String[2];

public void init() {

framesetBounds(200, 200, 640, 480);

framesetLayout(new BorderLayout());

framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

framesetResizable(false);

northadd(l1);

northadd(fname);

northadd(l2);

northadd(lname);

buttonaddActionListener(this);

northadd(button);

dtmsetColumnIdentifiers(new String[] {"姓名", "****"});

frameadd(north, BorderLayoutNORTH);

frameadd(jsp, BorderLayoutCENTER);

framesetVisible(true);

}

public static void main(String[] args) {

TableTest tt = new TableTest();

ttinit();

}

public void actionPerformed(ActionEvent e) {

temp[0] = fnamegetText();

temp[1] = lnamegetText();

Systemoutprint(dtmgetRowCount());

dtminsertRow(dtmgetRowCount(), temp);

}

}

不是很明白你的要求。具体的 *** 作是怎样的的呢?

假设数据库中有个学生表:

学号  姓名  年龄

001  张三  20

002  李四  21

假设按姓名搜索,输入搜索条件“张”:

情况1、根据搜索条件直接搜索数据库记录(通常都是这样搜索),那从数据库搜索出的记录就只有姓名包含“张”的记录,然后JTable中也就只展示这些记录,就无所谓置顶不置顶啦。

情况2、只是根据搜索条件在当前JTable展示的数据中搜索,代码如下:

import javaawtBorderLayout;

import javaawtGridLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJPanel;

import javaxswingJScrollPane;

import javaxswingJTable;

import javaxswingJTextField;

import javaxswingborderEmptyBorder;

import javaxswingeventTableModelEvent;

import javaxswingeventTableModelListener;

 public class JTableTest extends JFrame {

  private JPanel searchPanel;

  private JTextField numField;

  private JButton searchByNumButton;

  private JTextField nameField;

  private JButton searchByNameButton;

  private JTable table;

  private TestTableModel tableModel;

  public JTableTest() {

    super("Simple JTable Test");

    setSize(400, 300);

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    searchPanel = new JPanel();

    searchPanelsetBorder(new EmptyBorder(3, 3, 3, 3));

    searchPanelsetLayout(new GridLayout(2, 3, 2, 3));

    searchPaneladd(new JLabel("学号"));

    numField = new JTextField(20);

    searchPaneladd(numField);

    searchByNumButton = new JButton("按学号搜索");

    searchByNumButtonaddActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent event) {

        tablegetSelectionModel()clearSelection();

        tableModeldoSearchByNum(numFieldgetText());

      }

    });

    searchPaneladd(searchByNumButton);

    searchPaneladd(new JLabel("姓名"));

    nameField = new JTextField(20);

    searchPaneladd(nameField);

    searchByNameButton = new JButton("按姓名搜索");

    searchByNameButtonaddActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent event) {

        tablegetSelectionModel()clearSelection();

        tableModeldoSearchByName(nameFieldgetText());

      }

    });

    searchPaneladd(searchByNameButton);

    getContentPane()add(searchPanel, BorderLayoutNORTH);

    tableModel = new TestTableModel();

    tableModeladdTableModelListener(new TableModelListener() {

      @Override

      public void tableChanged(TableModelEvent e) {

        if (tableModelgetHitRowCount() > 0) {

          tablesetRowSelectionInterval(0, tableModelgetHitRowCount() - 1);

        }

      }

    });

    table = new JTable(tableModel);

    JScrollPane jsp = new JScrollPane(table);

    getContentPane()add(jsp, BorderLayoutCENTER);

  }

  public static void main(String[] args) {

    JTableTest self = new JTableTest();

    selfsetVisible(true);

  }

}import javautilArrayList;

import javautilArrays;

import javautilList;

import javaxswingtableAbstractTableModel;

public class TestTableModel extends AbstractTableModel {

  private List<Student> data = ArraysasList(new Student("001", "王二", 20), new Student("002",

      "王二小", 19), new Student("003", "张三", 20), new Student("004", "张三丰", 21), new Student("005",

      "李四", 21), new Student("006", "李四光", 19));

  private List<Integer> searchHitRows = new ArrayList<Integer>();

  @Override

  public int getRowCount() {

    return datasize();

  }

  @Override

  public int getColumnCount() {

    return 3;

  }

  @Override

  public String getColumnName(int column) {

    if (column == 0)

      return "学号";

    else if (column == 1)

      return "姓名";

    return "年龄";

  }

  @Override

  public Object getValueAt(int rowIndex, int columnIndex) {

    Student student = dataget(rowIndex);

    if (columnIndex == 0)

      return studentgetNum();

    else if (columnIndex == 1)

      return studentgetName();

    return studentgetAge();

  }

  / 按姓名搜索 /

  public void doSearchByName(String key) {

    searchHitRowsclear();

    if (key == null || ""equals(key))

      return;

    for (int i = 0; i < datasize(); i++) {

      Student studentI = dataget(i);

      String value = studentIgetName();

      if (valueindexOf(key) < 0)

        continue;

      int j = 0;

      for (j = i - 1; j >= 0; j--) {

        Student studentJ = dataget(j);

        String valueJ = studentJgetName();

        if (valueJindexOf(key) >= 0)

          break;

      }

      Student temp = dataget(j + 1);

      dataset(j + 1, studentI);

      dataset(i, temp);

      searchHitRowsadd(IntegervalueOf(j + 1));

    }

    fireTableDataChanged();

  }

  / 按学号搜索 /

  public void doSearchByNum(String key) {

    searchHitRowsclear();

    if (key == null || ""equals(key))

      return;

    for (int i = 0; i < datasize(); i++) {

      Student studentI = dataget(i);

      String value = studentIgetNum();

      if (valueindexOf(key) < 0)

        continue;

      int j = 0;

      for (j = i - 1; j >= 0; j--) {

        Student studentJ = dataget(j);

        String valueJ = studentJgetNum();

        if (valueJindexOf(key) >= 0)

          break;

      }

      Student temp = dataget(j + 1);

      dataset(j + 1, studentI);

      dataset(i, temp);

      searchHitRowsadd(IntegervalueOf(j + 1));

    }

    fireTableDataChanged();

  }

  public void setData(List<Student> data) {

    if (data == null)

      throw new IllegalArgumentException("参数data不能为null。");

    thisdata = data;

    fireTableDataChanged();

  }

  public int getHitRowCount() {

    return searchHitRowssize();

  }

}

从数据库查询出记录后,转成Student对象列表调用TestTableModel的setData设置表格的数据。

SQL数据库,查询包含列(字段,如名称)的数据库中的所有表的步骤如下:需要准备的材料是:计算机,sql finder。

1,首先,打开sql查询器并连接到相应的数据连接,例如测试库。

2,单击“查询”按钮并键入:select table_name来自information_schemacolumns,其中table_schema =“test”和column_name =“name”;。

3,单击“运行”按钮,将查询符合条件的表名称。

4,将查询调整为:选择'store'作为table_name,`name`来自商店,其中`name` =“A”union all选择'stu'作为table_name,`name`来自stu where`name` =“A”Union所有选择'test'作为table_name,`name`来测试`name` =“A”,单击“运行”按钮查找名称为'A'的表的名称。

我只会Oracle,不知道Sql2005的存储过程怎么写,我提供一个Oracle的存储过程给你,你参照一下sql2005的特性,自己修改一下吧

CREATE OR REPLACE PROCEDURE NO_DATA_TEST AS

BEGIN DECLARE

--通过Oracle视图,查询处记录数为0的表名

CURSOR noDataTblNms IS

SELECT TABLE_NAME FROM USER_TABLES WHERE NUM_ROWS = 0;

--存储表名

tableName USER_TABLESTABLE_NAME%type;

--存储临时SQL语句

strSql VARCHAR2(200);

BEGIN

open noDataTblNms;

LOOP FETCH noDataTblNms into tableName;

EXIT WHEN noDataTblNms%NOTFOUND;

strSql := 'DROP TABLE ' || tableName;

execute immediate strSql;

END LOOP;

close noDataTblNms;

end;

END NO_DATA_TEST;

说明:其中的

SELECT TABLE_NAME FROM USER_TABLES WHERE NUM_ROWS = 0;

需要换成SQL SERVER的对应语句,你自己查一下,应该有个sysobjects的表或者视图,同时,type为‘U'

还有执行动态sql的语句execute immediate strSql;需要修改

以上就是关于ORACLE数据库 查询表名 查询列名 查询列中所有数据的语法分别是全部的内容,包括:ORACLE数据库 查询表名 查询列名 查询列中所有数据的语法分别是、mysql查找一个数据库中所有特定前缀的表、如何在SQL中查找数值所在表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9540547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存