欢迎光临散文网 会员登陆 & 注册

10min速通Matlab调用SQL数据库(附代码)

2023-02-20 22:58 作者:梧桐树下的时光i  | 我要投稿

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,还是个小白,有不当处请指出,谢谢!有问题欢迎交流


10min速通Matlab调用SQL数据库(附代码)的评论 (共 条)

分享到微博请遵守国家法律