Настройте опции для того, чтобы импортировать данные от базы данных PostgreSQL в MATLAB

В этом примере показано, как настроить настройки импорта при импортировании данных от таблицы базы данных с помощью собственного интерфейса 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)

Смотрите также

Объекты

Функции

Похожие темы

Внешние веб-сайты