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