Этот пример показывает, как настроить настройки импорта при импортировании данных от таблицы базы данных. Управляйте настройками импорта путем создания объекта SQLImportOptions. Затем настройте настройки импорта для нескольких столбцов базы данных. Импортируйте данные с помощью функции sqlread.
Пример использует электронную таблицу patients.xls, которая содержит терпеливую информацию. Кроме того, пример использует базу данных Microsoft® SQL Server® Version 11.00.2100 и Драйвер Microsoft SQL Server 11.00.5058.
Создайте соединение с базой данных к базе данных 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