В этом примере показано, как настроить настройки импорта при импортировании данных от таблицы базы данных с помощью собственного интерфейса PostgreSQL. Управляйте настройками импорта путем создания SQLImportOptions
объект. Затем настройте настройки импорта для нескольких столбцов базы данных. Импортируйте данные с помощью sqlread
функция.
Пример использует patients.xls
электронная таблица, которая содержит терпеливую информацию. Кроме того, пример использует базу данных версии 9.405 базы данных PostgreSQL и libpq версию драйвера 10.12.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL с помощью имени источника данных, имени пользователя и пароля.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Загрузите терпеливую информацию в рабочую область 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' } {'string' } {'gender' } {'string' } {'age' } {'double' } {'location' } {'string' } {'height' } {'double' } {'weight' } {'double' } {'smoker' } {'logical'} {'systolic' } {'double' } {'diastolic' } {'double' } {'selfassessedhealthstatus'} {'string' }
Измените типы данных нескольких переменных. Преобразуйте тип данных для всех текстовых переменных к char
. Кроме того, преобразуйте тип данных для всех числовых переменных к single
.
textvars = ["lastname" "gender" "location" "selfassessedhealthstatus"]; opts = setoptions(opts,textvars,'Type',"char"); numvars = ["age" "height" "weight" "systolic" "smoker" "diastolic"]; opts = setoptions(opts,numvars,'Type',"single");
Отобразите обновленные типы данных переменных.
disp([opts.VariableNames' opts.VariableTypes'])
{'lastname' } {'char' } {'gender' } {'char' } {'age' } {'single'} {'location' } {'char' } {'height' } {'single'} {'weight' } {'single'} {'smoker' } {'single'} {'systolic' } {'single'} {'diastolic' } {'single'} {'selfassessedhealthstatus'} {'char' }
Установите настройки импорта заменять недостающие данные в заданных переменных со значением заливки unknown
.
varnames = ["lastname" "location"]; opts = setoptions(opts,varnames,'FillValue',"unknown");
Установите настройки импорта не использовать строки с недостающими данными в 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 = strcat("DROP TABLE ",tablename);
execute(conn,sqlquery)
Закройте соединение с базой данных.
close(conn)
close
| databaseImportOptions
| execute
| postgresql
| preview
| setoptions
| sqlread
| sqlwrite