mysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库中所有表的字段信息。知道这个表后,获取任意表的字段就只需要一条select语句即可。例如:
我们提供的服务有:成都网站设计、网站建设、微信公众号开发、网站优化、网站认证、宣汉ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的宣汉网站制作公司
select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name';
上述的做法有一点问题,如果多个数据库中存在你想要查询的表名,那么查询的结果会包括全部的字段信息。通过DESC information_schema.COLUMNS可以看到该表中列名为TABLE_SCHEMA是记录数据库名,因此下面的写法更为严格
select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name' and table_schema = 'your_db_name';
Java获取数据库的表中各字段的字段名,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class TestDemo {
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://数据库IP地址:3306/数据库名称";
String user = "数据库用户名";
String pass = "数据库用户密码";
conn = DriverManager.getConnection(u
use 数据库名;
show tables; //显示数据库中的表
desc 具体某个表的名称; //列出想要的表的列名信息
//或者:show columns form 具体某个表的名称;
哈哈,楼主遇到我算是你有福气了,我专门为你编写了一个函数,来获取表的主键名()(可能还有更简单的方法,但我不知道)。
请看如下代码:
?php
function get_primary($host,$user,$password,$tb) //定义函数,参数分别为主机名、用户名、密码、表名(还可以加入库名,我忘了)
{
mysql_connect($host,$user,$password); //连接主机
mysql_select_db("test"); //选择库
$result=mysql_query("DESCRIBE ".$tb); //分析表
while($rows=mysql_fetch_array($result)) //遍历结果集(即所有字段情况)
{
if($rows["Key"]=="PRI") //判断相应字段主键情况,如果是主键则跳出
break;
}
return $rows["Field"]; //返回所在字段名称
}
echo get_primary("localhost","root","","te"); //调用函数
?