10min速通Matlab调用SQL数据库(附代码)
1. 前言
今晚在处理连续采样数据时,得到的数据点过多,一列约为200万个。对于excel来说是无法一次性处理如此多的数据。
Excel能够处理的数据量与使用的Excel版本、计算机硬件配置、操作系统等因素有关。根据微软官方的建议,Excel的推荐最大行数为1048576行(即2的20次方),最大列数为16384列(即2的14次方),最大工作表数为255个。
此外在处理大数据时,Excel可能会出现性能问题,例如运行缓慢、停止响应、崩溃等。因此,对于大规模的数据处理任务,建议使用专业的数据处理工具和数据库管理系统,如SQL Server、Oracle、MySQL等。
于是今晚探索了一下matlab调用SQL的操作。

2. 具体配置
配置SQL环境,具体流程见:https://blog.csdn.net/qq_43884946/article/details/123312148
MATLAB连接SQL:https://blog.csdn.net/Ruins_LEE/article/details/114189099
matlab调用SQL 代码实现:
clc
clear all;
% database('myexp','','')
%%matlab与sql交互
datasource = 'myexp'; %前面设置的数据源名称
connA = database(datasource,'yourname','password'); %SQL Server的用户名和密码
cursorA=exec(connA,'select * from myexp.dbo.Waveform'); %数据库名称、表名称
% RowLimit = 1000000; % RowLimit为每次读取的数据参数的行数,默认为全部读取
% cursA=fetch(cursorA,RowLimit); % 把数据库中的数据读取到Matlab中——fetch
%返回数据类型为元包(cell)型,默认为CELL型,要通过 cell2mat() 转换格式
cursA=fetch(cursorA);
DataA=cursA.Data; %把读取到的数据用变量Data保存.
%关闭连接
close(cursorA);
close(connA);
调用的数据库中的表数据保存在DataA变量中(位于工作区)
为了方便,在sql里面我又新建了一段代码,用于调用txt文件,具体代码为:
CREATE TABLE [myexp].[dbo].[table1]
(
[Column1] [nvarchar](50) NULL,
)
--使用BULK INSERT命令将txt文件中的数据插入到表中
BULK INSERT [myexp].[dbo].[table1]
FROM 'E:\exp\Waveform.txt'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 1 --如果txt文件中的第一行包含标题,则将此选项设置为2,以跳过标题行
)
--选择插入的数据并验证结果
SELECT * FROM [myexp].[dbo].[table1]
3. 操作
首先在SQL sever中运行代码导入txt文件,随后在matlab中导入数据库myexp的200w数据
matlab中可以对数据进行处理
导入excel中方法同理,只要稍微修改上述代码就行
今天刚接触SQL sever,还是个小白,有不当处请指出,谢谢!有问题欢迎交流
