楼主: fantuanxiaot
25395 45

[转载]MATLAB连接MySQL的方法/MySQL学习 [推广有奖]

已卖:1597份资源

大师

9%

还不是VIP/贵宾

-

威望
7
论坛币
-234454 个
通用积分
225.8477
学术水平
3783 点
热心指数
3819 点
信用等级
3454 点
经验
150360 点
帖子
7597
精华
32
在线时间
1329 小时
注册时间
2013-2-4
最后登录
2025-3-23

初级学术勋章 初级热心勋章 中级热心勋章 中级学术勋章 初级信用勋章 中级信用勋章 高级热心勋章 高级学术勋章 特级学术勋章 特级热心勋章 高级信用勋章 特级信用勋章

楼主
fantuanxiaot 发表于 2015-2-2 17:24:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

观点一


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




二维码

扫码加我 拉你入群

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

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

关键词:MATLAB MySQL matla atlab sql files 数据库 local mysql java

回帖推荐

Freddy0110 发表于24楼  查看完整内容

继续顶

superman888888 发表于20楼  查看完整内容

想弱弱的问下,sql与spss应该先学哪个?

tttrrrtr 发表于25楼  查看完整内容

fantuanxiaot 发表于13楼  查看完整内容

MySQL数值类型——FLOAT、DOUBLE和DECIMAL类型 MySQL支持的三个浮点类型是FLOAT、DOUBLE和DECIMAL类型。FLOAT数值类型用于表示单精度浮点数值,而DOUBLE数值类型用于表示双精度浮点数值。   与整数类型一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。例如,语句FLOAT (5,2)规定显示的值不会超过5位数字,小数点后面带有2位数字。看下面的示范举例: [sql] view plaincopyprint?mysql ...

fantuanxiaot 发表于11楼  查看完整内容

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || test || test_db |+--------------------+4 rows in set (0.16 sec)mysql> show create database test_db -> ; +----------+-------------------------------------------------------------------- + | Database | Create Database | +----------+- ...

fantuanxiaot 发表于10楼  查看完整内容

MySQL入门其实很简单 举个例子 Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 5.0.22-community-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 显示数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql ...

fantuanxiaot 发表于6楼  查看完整内容

MySQL基本操作,新手入门宝典 以下的文章主要向大家描述的是MySQL基本操作,MySQL在实际操作中是经常被用到的,所以对MySQL的基本内容的了解也是一件很重要的事项,以下的文章就是对MySQL基本操作的详细描述。  登陆数据库  D:\phpStudy\MySQL\bin>MySQL -uroot -proot  查看数据库  MySQL> show databases;  选择数据库  MySQL> use bugfree;  设置字符集  MySQL> set names 'gbk';  查询数据库中的表  MySQ ...

fantuanxiaot 发表于5楼  查看完整内容

请问如何查看mysql 的端口号?[/backcolor] [/backcolor] 在你的my.ini(Windows)或my.cfg(Linux) 中就有啊。[/backcolor] 或者如果已经连入MySQL可以直接 [/backcolor] SQL code [/backcolor][/backcolor][/backcolor] 3306 是默认端口。[/backcolor] [/backcolor]mysql> show variables like 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | ...

本帖被以下文库推荐

沙发
kzpan 发表于 2015-2-2 20:28:53
谢谢分享
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
fantuanxiaot + 5 + 5 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 5  论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
fjrong 在职认证  发表于 2015-2-3 09:16:36

回帖奖励 +10

板凳
fjrong 在职认证  发表于 2015-2-3 09:17:29

回帖奖励 +10

报纸
fantuanxiaot 发表于 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)

地板
fantuanxiaot 发表于 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;




7
michaeldirk 发表于 2015-2-5 14:07:26

回帖奖励 +10

谢谢分享

8
sheldon.yang123 发表于 2015-2-7 00:39:33

回帖奖励 +10

还有么

9
sheldon.yang123 发表于 2015-2-7 00:40:15

回帖奖励 +10

支持支持

10
fantuanxiaot 发表于 2015-2-9 09:38:43
MySQL入门其实很简单
举个例子


Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.22-community-nt


Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
显示数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
| test_db            |
+--------------------+
4 rows in set (0.00 sec)
选择数据库
mysql> use test_db
Database changed
mysql> create table students
    -> (
    -> id int unsigned,
    -> name varchar(30),
    -> sex char(1),
    -> birth date,
    -> primary key (id)
    -> );
Query OK, 0 rows affected (0.59 sec)
插入数据库
mysql> insert into students(id,name,sex,birth)
    -> values(410100,'James','1','1990-02-14')
    -> ;
Query OK, 1 row affected (0.41 sec)


mysql> select name from students where id=410100;
+-------+
| name  |
+-------+
| James |
+-------+
1 row in set (0.08 sec)
查看数据库
mysql> select name from students where
    -> name='James';
+-------+
| name  |
+-------+
| James |
+-------+
1 row in set (0.00 sec)


您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 06:51