全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SQL及关系型数据库数据分析
25212 45
2015-02-02

观点一


MATLAB怎样连接MYSQL数据库(2013-06-08 17:58:42)

1.找到MYSQL的JDBC的JAR包,见这个网址:http://bbs.tucue.com/showtopic.a ... topicid=657&go=next,虽然不太官方,不过好使就行~
2.解压缩,并将mysql-connector-java-5.1.7-bin.jar文件拷贝到D:/program files/MATLAB/R2009a/java/jar/toolbox,看个人情况这个~
3.到D:/program files/MATLAB/R2009a/toolbox/local,找到classpath.txt文件,打开,并添加用来加载mysql的jdbc驱动
$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar
-------到这里驱动就算好了,打开MATLAB-----------
4.q=database('dqrecord','root','root','com.mysql.jdbc.Driver','jdbc:mysql://127.0.0.1:3306/dqrecord');
MATLAB官方http://www.mathworks.com/access/ ... se/ug/database.html
有说明,help中也有说明,不过容易把自己搞晕啊,我试验了多次搞明白了
第一个参数:数据库的名称,就是要操作的数据库的名称
第二个参数:用户名
第三个参数:密码
第四个参数:连接的驱动,这里就写这个,不用改
第五个参数:数据库的连接路径吧,jdbc:mysql://,前面这个是jdbc,用mysql数据库,后边是具体的路径,数据库的IP,端口,和数据库的名称,跟第一个参数一样
网上有人就把这个搞错了,我最开始也搞错了
-------------------------------------------------
然后就可以试试啦,ping(q)
ok~
哈哈,这个博客没啥人知道,就当作日记~
-------------------------------------------------
接着
cursorA = exec(q,'select * from dqrecord limit 100');
没结果是不?这句话只是个语句,要执行再来一句:
cursorA=fetch(cursorA) ;
这句话真形象~
cur=cursorA.data就是数据,是一个CELL结构

如果想得到某一列的值,可以先求出cur中共有多少列

num=rows(cursorA)

再把CELL结构转换成MATRIX结构

cur = cell2mat(cur);

如果想取第一列,则可以如下写

a=cur(1:num,1);

则查询结果的第一列就加到了向量a中

本帖隐藏的内容



观点二


先要安装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




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-2-2 20:28:53
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-2-3 09:16:36
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-2-3 09:17:29
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-2-4 15:25:03
请问如何查看mysql 的端口号?

在你的my.ini(Windows)或my.cfg(Linux) 中就有啊。

或者如果已经连入MySQL可以直接
[backcolor=white !important][backcolor=rgb(245, 245, 245) !important]SQL code

3306 是默认端口。

mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

mysql>
[backcolor=white !important][backcolor=rgb(245, 245, 245) !important]SQL code
或者使用配置助手查看

mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.44 sec)

mysql>
引用 4 楼  的回复:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Conten……
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-2-5 00:43:24

MySQL基本操作,新手入门宝典


以下的文章主要向大家描述的是MySQL基本操作,MySQL在实际操作中是经常被用到的,所以对MySQL的基本内容的了解也是一件很重要的事项,以下的文章就是对MySQL基本操作的详细描述。

  登陆数据库

  D:\phpStudy\MySQL\bin>MySQL -uroot -proot

  查看数据库

  MySQL> show databases;

  选择数据库

  MySQL> use bugfree;

  设置字符集

  MySQL> set names 'gbk';

  查询数据库中的表

  MySQL> show tables;

  MySQL基本操作创建表

  MySQL> create table test(

  -> tid int(10) not null,

  -> tname varchar(100) not null,

  -> tdate datetime not null default '0000-00-00',

  -> primary key (tid));

  查看表结构

  MySQL> desc test;

  添加列

  MySQL> alter table test add(tage int(3));

  修改原表结构

  MySQL> alter table test modify tage int(5) not null;

  修改列的默认值

  MySQL> alter table test alter tage set default '0';

  去掉列的默认值

  MySQL> alter table test alter tage drop default;

  删除列

  MySQL> alter table test drop column tage;

  插入数据

  MySQL> insert into test(tid,tname,tdate) value(1,'yangjuqi','2008-03-21');

  查询数据

  MySQL> select * from test;

  模糊查询

  MySQL> select * from test where tname like '%杨%';

  修改数据

  MySQL> update test set tname='张三' where tid='2';

  MySQL基本操作删除数据

  MySQL> delete from test where tid='2';

  删除表

  MySQL> drop table test;

  重命名表

  MySQL> alter table test rename testbak;

  分页查询(limit 起始行,取多少行)

  MySQL> select * from testbak limit 2,1;

  刷新数据库

  MySQL> flush privileges;

  显示数据库版本

  MySQL> select version();

  显示当前时间

  MySQL> select current_date;

  修改用户密码

  D:\phpStudy\MySQL\bin>MySQLadmin -uroot -proot password yangjuqi

  将查询出的数据写入文件

  MySQL> select * from testbak into outfile "d:/test.txt" fields terminated by ",";

  查看数据库状态

  MySQL> status;

  MySQL基本操作查看所有编码

  MySQL> show variables like 'character_set_%';

  导入sql文件命令

  MySQL>source d:/MySQL.sql;




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群