Настройка опций для импорта данных из базы данных в MATLAB

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

См. также

| | | | | | | |

Похожие темы

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