Matlab连接MySQL并实现简单的数据库操作

Matlab连接数据库需要下载安装MySQL驱动文件。

下载地址:点击打开链接


将解压文件中的mysql-connector-java-5.1.42-bin.jar拷贝到matlab安装文件夹的java\jar\toolbox下。

然后修改matlab\R2014b\toolbox\local下的classpath.txt文件,在其中添加语句

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

最后重启matlab即可。


获取连接对象(dbname为连接数据库的名称)

conn = database('dbname', 'root', 'password', 'com.mysql.jdbc.Driver', 'jdbc:mysql://localhost:3306/dbname')

查询操作(tablename为表格名称)
curs = exec(conn, 'select * from tablename limit 1,10;')

获取查询结果
curs = fetch(curs)
ress = curs.Data;

获取元胞
a1 = ress(1,3)

获取元胞内数据
a2 = ress{1,3}

或者也可以把元胞转化为矩阵

ress = cell2mat(ress);

如果sql语句中需要输入变量,可使用strcat函数(hour和minute均为表格中的列名称)。

tout = [];
for mt = 0:5:55
    sql = strcat('select * from tablename where hour = 12 and minute = ',num2str(mt));
    curs = exec(conn, sql)
    curs = fetch(curs)
    ress = curs.Data;
    ress = cell2mat(ress);
    
    % 判断ress是否为指定数据类型
    if(isa(ress,'double'))
        tout = [tout; ress];
    end
end

附上常用的SQL语句。

select count(*) from tablename; --输出表格总行数
select * from tablename limit rowLimiter,numRows; --输出表格rowLimiter之后的numRows行(numRows可超出总行数)
describe tablename; --显示表格数据类型信息
show tables; --显示当前数据库下所有的表格名称
load data local infile 'D:/myFolder/myfile.txt' into table tablename; --将本地txt文档数据导入指定表格,同一行的数据用\t分隔
delete from tablename; --删除表格内存储的数据,但保留表格的基本信息
drop table tablename; --删除表格及表格内存储的数据
create table tablename( id int not null, name varchar(40) not null, city varchar(20), salary int); --创建表格并指定数据类型
create database dbname; --创建数据库
show databases; --显示所有的数据库名称
use dbname; --在指定数据库下操作
load data local infile 'D:/myFolder/myfile.txt' into table tablename fields terminated by ',' lines terminated by '\n'; --以指定分隔符方式导入本地文本数据

参考资料:
http://blog.csdn.net/vinegar93/article/details/53928326
http://blog.sina.com.cn/s/blog_9d0b00a401012spy.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值