有没有 能够用sql 语句查询数据库列的名字

有没有 能够用sql 语句查询数据库列的名字,第1张

Oracle 例子:

SQL> SELECT

2 column_name

3 FROM

4 all_tab_columns

5 WHERE

6 table_name = 'SALE_REPORT';

COLUMN_NAME

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

SALE_DATE

SALE_ITEM

SALE_MONEY

SQL Server 例子:

SELECT

colname AS 列名,

typname as 数据类型,

colmax_length AS 占用字节数,

colprecision AS 数字长度,

colscale AS 小数位数,

colis_nullable AS 是否允许非空,

colis_identity AS 是否自增,

case when exists

( SELECT 1

FROM

sysindexes idx

join sysindex_columns idxCol

on (idxobject_id = idxColobject_id)

WHERE

idxobject_id = colobject_id

AND idxColindex_column_id = colcolumn_id

AND idxis_primary_key = 1

) THEN 1 ELSE 0 END AS 是否是主键

FROM

syscolumns col left join systypes typ on (colsystem_type_id = typsystem_type_id AND coluser_type_id = typuser_type_id)

WHERE

colobject_id =

(SELECT object_id FROM systables WHERE name = 'test_table')

MySQL 例子:

mysql> SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT

-> FROM

-> INFORMATION_SCHEMACOLUMNS

-> WHERE

-> table_name = 'test_main'

-> AND table_schema = 'test'

-> //

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

| COLUMN_NAME | DATA_TYPE | IS_NULLABLE | COLUMN_DEFAULT |

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

| id | int | NO | 0 |

| value | varchar | YES | NULL |

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

2 rows in set (000 sec)

使用sys用户查询

select name from v$database;

v$database视图是当前数据库实例的各种信息,其中包括

Name --数据库名称

created --创建日期

RESETLOGS_CHANGE --重置日志的次数",

RESETLOGS_TIME --打开重置日志的时间

PRIOR_RESETLOGS_CHANGE# --在上一次重置日志时的SCN值

PRIOR_RESETLOGS_TIME --上一次重置日志的时间

等等

1、在计算机中,打开Oracle的连接程序,用新建的数据库管理员,进入Oracle控制的窗口上,鼠标左键单击服务器按钮,并选择SQL工作表,如下图所示。

2、接着,在Oracle服务器的窗口上,在输入窗口中输入SQL查询语句,并单击执行按钮,可以看到表格当前的数据,但是没有显示出字段类型,如下图所示。

3、 然后,在SQL工作表的窗口上,输入查询表格的字段类型的SQL语句,可以作为参考,如下图所示。

4、接着,在SQL工作表的窗口上,输入查询表格的字段类型的SQL语句,并单击执行按钮,在提示窗口中,显示出错误类型,如下图所示。

5、然后,在SQL工作表的窗口上,修改查询表格的字段类型的SQL语句,添加列名的关键字,并单击执行按钮。可以看到SQL语句执行成功的提示信息,如下图所示。

6、最后,在SQL工作表的窗口上,通过查询表格的字段类型的SQL语句,可以看到表格中字段的字段类型了,如下图所示。通过这样的 *** 作就学会了在Oracle数据库中查询表格的字段类型了。

查询MySQL数据库所有表名的SQL命令:

show tables;

查询MySQL数据库有表结构的SQL命令:

show create table tblName;

例如:show create table students;

CREATE TABLE `students` (

`sid` char(10) NOT NULL,

`sname` varchar(50) NOT NULL,

`sex` char(1) NOT NULL,

`dob` date NOT NULL,

`phone` varchar(30) DEFAULT NULL,

PRIMARY KEY (`sid`),

KEY `index_tbl1_url` (`phone`(20))

) ENGINE=InnoDB DEFAULT CHARSET=gb2312

用union,举例有s1表(a,b,c,d)和s2表(a,c,d,e)和s3表(f,g),里头的字段不同,但在逻辑上有关系

(如有

s1b=s2e

s1a=s3f

s1b=s3g)

示例如下:

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

select

s1a

as

x,s1b

as

y,s1c

as

z

from

s1

union

select

s2a

as

x,s2e

as

y,s2c

as

z

from

s2

union

select

s3f

as

x,s3g

as

y,''

as

z

from

s3

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

最终结果会是三张表的和,如果s1有10条记录,s2有3条记录,s3有4条记录,则执行本sql后会得到17条记录,其中来自s3表的数据,第三列一定为空的。

在程序中通过sql语句查询来获得某个数据库的所有表名,代码如下:

SELECT

table_name

FROM

information_schematables

WHERE table_schema = 'mydatabasename'

AND table_type = 'base table'

扩展资料

1,利用systables目录视图查询所有表的名字,systables目录视图为每个表对象返回一行 示例语句如下:

select from systables

注意:systables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。

2,利用存储过程sp_tables sp_tables存储过程,可返回可在当前环境中查询的对象列表。这代表可在FROM子句中出现的任何对象。 我们可以执行如下语句:

exec sp_tables

在结果集中筛选出所有TABLE_TYPE等于TABLE的记录就是表信息了。

参考资料:

百度百科 sql语句

百度百科 systables

以上就是关于有没有 能够用sql 语句查询数据库列的名字全部的内容,包括:有没有 能够用sql 语句查询数据库列的名字、oracle中如何用sql语句显示当前的数据库名称、查询数据库中某个字段的sql语句怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存