mysql 导入部分数据库_matlab怎么导入mysql数据库中的部分数据?

在MATLAB中,由于直接导入会导致电脑死机,可以采用MySQL的`LOAD DATA INFILE`命令结合`SELECT`语句,只导入部分数据。首先在MATLAB中建立数据库连接,然后使用`exec`函数执行SQL查询,再用`fetch`获取数据。
摘要由CSDN通过智能技术生成

matlab怎么导入mysql数据库中的部分数据?

关注:256  答案:2  mip版

解决时间 2021-01-28 16:01

e6cb1a03ad541b3098697807b7bf1798.png

提问者祇為焄菂兲哋閤

2021-01-27 18:20

我数据库里面有目录下有700多万条数据,我只想要200条左右就可以了,怎么办?我直接点import的话它会把700多万条数据全都导进来,然后我电脑就死机了!坐等啊!

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家魔法小仙子

2021-01-27 19:08

mysql和sqlserver存在语法差异,直接导sql是不行的,不过可以通过sqlserver的bcp命令把 表里的数据导成指定格式的txt文件,比如列之间用逗号分割,行之间用\n\r分割 这样的数据,mysql 就可以通过 load data infile命令来导入到库里 因为sqlserver 不熟悉,所以bcp命令需要你自己研究下, mysql的 load data语法你可以参考: load data infile '/tmp/result.text' into table test_table fields terminated by ',' lines terminated by '\n' ; 意思是字段之间用逗号分割,行之间用\n分割,数据文件是result.text

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼花落浅殇

2021-01-27 20:30

首先要安装mysql驱动程序包

step 1: 将mysql-connector-java-5.1.7-bin.jar文件拷贝到......\matlab\r2009a\java\jar\toolbox

step 2: 到......\matlab\r2009a\toolbox\local目录下,找到classpath.txt文件,打开,并添加用来加载mysql的jdbc驱动语句:

$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar

step 3:重新打开matlab即可

驱动程序安装成功后,接来下要是matlab连接mysql数据库的代码:

conn =database('databasename','username','password','driver','databaseurl')

连接成功后,返回连接对象。

参数如下:

*databasename: 数据库名称.

*driver: jdbc driver.

*username and password: 用户名和密码.

*databaseurl: 类似于jdbc:subprotocol:subname. subprotocol 是数据库类型,

subname 类似于//hostname:port/databasename.

如果matlab和数据库建立了连接,将返回类似于如下信息:

instance: 'sampledb'

username: ''

driver: []

url: []

constructor: [1x1 com.mathworks.toolbox.database.databaseconnect]

message: []

handle: [1x1 sun.jdbc.odbc.jdbcodbcconnection]

timeout: 0

autocommit: 'off'

type: 'database object'

连接mysql的代码如下:

conn = database('tissueppi','root','root','com.mysql.jdbc.driver','jdbc:mysql://localhost:3306/tissueppi');

连接成功后,就可以用exec函数执行sql语句

exec函数执行sql语句并返回一个开指针

语法如下:

curs = exec(conn,'sqlquery')

例如:curs = exec(conn, 'select * from customers')

执行完查询后,还要将查询结果从开放cursor对象导入到对象curs中,该功能是用

cursor.fetch函数实现的。

语法如下:

curs = fetch(curs)

使用curs.data来显示数据,curs.data返回一个cell结构,可以先把cell结构转换成

matrix结构再取值:

cur =cell2mat(cur)

a=cur(1,1);

则查询结果就加到了向量a中

注意:

在exec函数执行查询过程中,有的sql语句要输入变量,这时可使用strcat函数完成该

功能。

t = strcat(s1, s2, s3, ...)

for(t=1:10)

sql1 = strcat('select count(did) from rss_genepairs_u where gocc>=',num2str(t),' || gomf >= ',num2str(t),' || gobp >= ',num2str(t));

end

完整代码如下:

conn = database('tissueppi','root','root','com.mysql.jdbc.driver','jdbc:mysql://localhost:3306/tissueppi');

for t=0.5:0.01:0.91

for x=0.5:0.1:11

sql = strcat('select count(did) from rss_genepairs_x2 where score <=',num2str(x),' and did in(select did from rss_genepairs_u where gocc >=',num2str(t),' || gomf >= ',num2str(t),' || gobp >= ',num2str(t),')');

atemp = exec(conn,sql);

atemp = fetch(atemp);

a = atemp.data;

a = cell2mat(a);

a= a(1,1);

end

end

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

要在MATLAB导入数据库,你可以使用Database Toolbox。下面是一个基本的步骤: 1. 首先,确保你已经安装了Database Toolbox。你可以在MATLAB命令窗口输入 "ver" 来查看已经安装的工具箱列表。 2. 创建一个与数据库的连接。你可以使用 `database` 函数来创建一个数据库连接对象。例如,如果你要连接到名为 "mydatabase" 的MySQL数据库,你可以执行以下代码: ```matlab conn = database('mydatabase', 'username', 'password'); ``` 这里的 'username' 和 'password' 是你的数据库登录凭据。 3. 执行SQL查询。一旦你成功地连接到数据库,你可以使用 `exec` 函数来执行SQL查询并获取结果。例如,如果你要执行一个简单的查询来选择名为 "mytable" 的表的所有数据,你可以执行以下代码: ```matlab sqlquery = 'SELECT * FROM mytable'; results = exec(conn, sqlquery); ``` 注意,这里的 `exec` 函数返回一个 `ResultSet` 对象,其包含了查询结果。 4. 处理查询结果。你可以使用 `fetch` 函数从 `ResultSet` 对象提取查询结果。例如,如果你想将结果存储在名为 "data" 的变量,你可以执行以下代码: ```matlab data = fetch(results); ``` 现在,你可以对变量 "data" 进行进一步的处理和分析。 5. 关闭数据库连接。当你完成查询和处理后,记得关闭数据库连接,以释放资源。你可以使用 `close` 函数来关闭连接。例如: ```matlab close(conn); ``` 这些是在MATLAB导入数据库的基本步骤。根据你所使用的数据库类型和具体需求,可能还需要进行其他的配置和操作。你可以参考MATLAB的文档和数据库工具箱的文档来获取更多详细信息和示例代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值