В этом примере показано, как настроить настройки импорта при импорте данных из таблицы базы данных. Управляйте настройками импорта путем создания 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