В этом примере показано, как настроить параметры импорта при импорте данных из таблицы базы данных. Управление параметрами импорта путем создания SQLImportOptions объект. Затем настройте параметры импорта для нескольких столбцов базы данных. Импорт данных с помощью sqlread функция.
В примере используется patients.xls электронная таблица, которая содержит информацию о пациенте. В примере также используется база данных Microsoft ® SQL Server ® Version 11.00.2100 и 11.00.5058 драйверов Microsoft SQL Server.
Создайте подключение базы данных к базе данных Microsoft SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Загрузите информацию о пациенте в рабочую область MATLAB ®.
patients = readtable('patients.xls');Создать patients таблица базы данных с использованием информации о пациенте.
tablename = 'patients';
sqlwrite(conn,tablename,patients)SQLImportOptions ОбъектСоздание SQLImportOptions с использованием patients таблицу базы данных и databaseImportOptions функция.
opts = databaseImportOptions(conn,tablename);
Отображение типов данных переменных по умолчанию с помощью VariableNames и VariableTypes свойства SQLImportOptions с использованием точечной нотации.
disp([opts.VariableNames' opts.VariableTypes'])
'LastName' 'char'
'Gender' 'char'
'Age' 'double'
'Location' 'char'
'Height' 'double'
'Weight' 'double'
'Smoker' 'double'
'Systolic' 'double'
'Diastolic' 'double'
'SelfAssessedHealthStatus' 'char'
Изменение типов данных нескольких переменных. Преобразовать тип данных для всех текстовых переменных в string. Также преобразуйте тип данных для всех числовых переменных в single.
textvars = {'LastName','Gender','Location','SelfAssessedHealthStatus'};
opts = setoptions(opts,textvars,'Type','string');
numvars = {'Age','Height','Weight','Systolic','Smoker','Diastolic'};
opts = setoptions(opts,numvars,'Type','single');Отображение обновленных типов данных переменных.
disp([opts.VariableNames' opts.VariableTypes'])
'LastName' 'string'
'Gender' 'string'
'Age' 'single'
'Location' 'string'
'Height' 'single'
'Weight' 'single'
'Smoker' 'single'
'Systolic' 'single'
'Diastolic' 'single'
'SelfAssessedHealthStatus' 'string'
Настройка параметров импорта для замены отсутствующих данных в указанных переменных значением заливки unknown.
varnames = {'LastName','Location'};
opts = setoptions(opts,varnames,'FillValue',"unknown");Настройка параметров импорта для изменения текста SelfAssessedHealthStatus переменная в нижний регистр.
varname = {'SelfAssessedHealthStatus'};
opts = setoptions(opts,varname,'TextCaseRule',"lower");Задайте параметры импорта для пропуска строк с отсутствующими данными в LastName переменная.
varname = {'LastName'};
opts = setoptions(opts,varname,'MissingRule',"omitrow");Перед импортом данных просмотрите их с помощью настраиваемых параметров импорта.
T = preview(opts)
T=8×10 table
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ________ ___ ___________________________ ______ ______ ______ ________ _________ ________________________
"Smith" "Male" 38 "County General Hospital" 71 176 1 124 93 "excellent"
"Johnson" "Male" 43 "VA Hospital" 69 163 0 109 77 "fair"
"Williams" "Female" 38 "St. Mary's Medical Center" 64 131 0 125 83 "good"
"Jones" "Female" 40 "VA Hospital" 67 133 0 117 75 "fair"
"Brown" "Female" 49 "County General Hospital" 64 119 0 122 80 "good"
"Davis" "Female" 46 "St. Mary's Medical Center" 68 142 0 121 70 "good"
"Miller" "Female" 33 "VA Hospital" 64 142 1 130 88 "good"
"Wilson" "Male" 40 "VA Hospital" 68 180 0 115 82 "good"
Импортируйте переменные с настраиваемыми типами данных с помощью sqlread и отобразить первые восемь строк импортированных данных.
T = sqlread(conn,tablename,opts); head(T)
ans=8×10 table
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ________ ___ ___________________________ ______ ______ ______ ________ _________ ________________________
"Smith" "Male" 38 "County General Hospital" 71 176 1 124 93 "excellent"
"Johnson" "Male" 43 "VA Hospital" 69 163 0 109 77 "fair"
"Williams" "Female" 38 "St. Mary's Medical Center" 64 131 0 125 83 "good"
"Jones" "Female" 40 "VA Hospital" 67 133 0 117 75 "fair"
"Brown" "Female" 49 "County General Hospital" 64 119 0 122 80 "good"
"Davis" "Female" 46 "St. Mary's Medical Center" 68 142 0 121 70 "good"
"Miller" "Female" 33 "VA Hospital" 64 142 1 130 88 "good"
"Wilson" "Male" 40 "VA Hospital" 68 180 0 115 82 "good"
Удалить patients таблицы базы данных с использованием execute функция.
sqlquery = ['DROP TABLE ' tablename];
execute(conn,sqlquery)Закройте подключение к базе данных.
close(conn)
close | database | databaseImportOptions | execute | getoptions | preview | setoptions | sqlread | sqlwrite