SQLImportOptions

Задайте настройки импорта для данных о базе данных

Описание

После того, как вы создаете SQLImportOptions объект, можно настроить настройки импорта для того, чтобы импортировать данные от базы данных в MATLAB®. Настройки импорта включают определение типов данных и значений заливки для недостающих данных.

Создание

Создайте SQLImportOptions объект с databaseImportOptions функция.

Свойства

развернуть все

Отметьте, чтобы исключить копии из импортированных данных в виде false или true. Чтобы исключить копии из данных в таблице базы данных или результатах SQL-запроса, установите ExcludeDuplicates свойство к true использование записи через точку.

Установка этого свойства является эквивалентом использования DISTINCT SQL-оператор в ANSI SQL.

Типы данных: логический

Имена переменных в виде массива ячеек из символьных векторов. Каждый вектор символов в массиве ячеек указывает на имя импортированного столбца базы данных от SQL-запроса или таблицы базы данных.

Для таблицы или SQL-запроса только с одним столбцом базы данных, массив ячеек содержит только один вектор символов.

Имена переменных по умолчанию являются именами столбцов в SQL-запросе или таблице базы данных.

Пример: {'productNumber','stockNumber'}

Типы данных: cell

Типы переменных в виде массива ячеек из символьных векторов. Каждый вектор символов в массиве ячеек указывает на тип данных импортированного столбца базы данных от SQL-запроса или таблицы базы данных. Каждым вектором символов должен быть допустимый тип данных MATLAB.

Для таблицы или SQL-запроса только с одним столбцом базы данных, массив ячеек содержит только один вектор символов.

Когда вы создаете SQLImportOptions объект, databaseImportOptions функция автоматически обнаруживает тип данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных к обнаруженному типу данных MATLAB.

Тип данных базы данныхMATLAB обнаруженный тип данных

TEXT

char

DATEВремяdatetime, или TIMESTAMP

char

NUMERIC

double

BOOLEAN или BIT

logical

Если вы используете MySQL® нативный интерфейс, эта таблица сопоставляет тип данных столбца базы данных к обнаруженному типу данных MATLAB.

MySQL Data TypeТип данных MATLAB

BIT

logical

TINYINT

double

SMALLINT

double

BIGINT

double

REAL

double

DOUBLE

double

DECIMAL

double

NUMERIC

double

CHAR

string

VARCHAR

string

LONGVARCHAR

string

TIMESTAMP

datetime

DATE

datetime

TIME

duration

YEAR

double

ENUM

categorical

JSON

char

Если вы используете собственный интерфейс PostgreSQL, эта таблица сопоставляет тип данных столбца базы данных к обнаруженному типу данных MATLAB.

Тип данных PostgreSQLТип данных MATLAB

Boolean

logical

Smallint

double

Integer

double

Bigint

double

Decimal

double

Numeric

double

Real

double

Double Precision

double

Smallserial

double

Serial

double

Bigserial

double

Money

double

Varchar

string

Char

string

Text

string

Bytea

string

Timestamp

datetime

Timestampz

datetime

Abstime

datetime

Date

datetime

Time

duration

Timez

duration

Interval

calendarDuration

Reltime

calendarDuration

Enum

categorical

Cidr

string

Inet

string

Macaddr

string

Uuid

string

Xml

string

Обновить VariableTypes свойство, используйте setoptions функция.

Пример: {'int64','int32'}

Типы данных: cell

Подмножество переменных, чтобы импортировать в виде вектора символов, массива ячеек из символьных векторов или числового массива, который содержит индексы. Используйте SelectedVariableNames свойство определить столбцы базы данных, чтобы импортировать в рабочее пространство MATLAB.

Значения в SelectedVariableNames свойство должно быть равно значениям в VariableNames свойство или подмножество этих значений. По умолчанию, SelectedVariableNames свойство содержит все имена переменных, заданные в VariableNames свойство. Когда SelectedVariableNames свойство задает все имена переменных, sqlread, fetch, и импортируйте функции DatabaseDatastore возразите импортируют все столбцы базы данных.

Пример: {'productNumber','stockNumber'}

Пример: [1,2,3]

Типы данных: double | char | cell

Заполните значение для недостающих данных в виде массива ячеек, который содержит одно или несколько значений. Каждое значение может быть одним из этих типов данных:

  • Все целочисленные классы

  • single

  • double

  • char

  • string скаляр

  • logical

  • datetime массив

  • categorical массив

  • missing

Когда вы создаете SQLImportOptions объект, databaseImportOptions функция автоматически обнаруживает значение заливки для недостающих данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных к обнаруженному значению заливки MATLAB.

Тип данных базы данныхMATLAB обнаруженное значение заливки

TEXT

''

DATEВремяdatetime, или TIMESTAMP

''

NUMERIC

NaN

BOOLEAN или BIT

false

Если вы используете собственный интерфейс MySQL, эта таблица сопоставляет тип данных столбца базы данных к обнаруженному типу данных MATLAB.

MySQL Data TypeMATLAB обнаруженное значение заливки

CHAR, VARCHAR, LONGVARCHAR, или JSON

'' (если VariableTypes свойством является char) или <missing> (если VariableTypes свойством является string)

DATE или TIMESTAMP

NaT

TIME

NaN
  • TINYINT

  • SMALLINT

  • BIGINT

  • REAL

  • DOUBLE

  • DECIMAL

  • NUMERIC

  • YEAR

NaN

ENUM

<undefined>

Если вы используете собственный интерфейс PostgreSQL, эта таблица сопоставляет тип данных столбца базы данных к обнаруженному типу данных MATLAB.

Тип данных PostgreSQLMATLAB обнаруженное значение заливки

boolean

false
  • smallint

  • integer

  • bigint

  • decimal

  • numeric

  • real

  • double precision

NaN

char, varchar, или text

<missing>

date или timestamp

NaT

time

NaN

interval

NaN

enum

undefined

Обновить FillValues свойство, используйте setoptions функция.

Пример: {'',NaN}

Типы данных: cell

Специфичные для типа переменные настройки импорта, возвращенные как массив переменных объектов настроек импорта. Массив содержит объект, соответствующий каждой переменной, заданной в VariableNames свойство. Каждый объект в массиве содержит свойства, которые поддерживают импорт данных с определенным типом данных.

Чтобы запросить ток (или обнаруженный) опции для переменной, используйте getoptions функция.

Чтобы установить и настроить опции для переменной, используйте setoptions функция.

Пример: opts.VariableOptions возвращает набор SQLVariableImportOptions объекты, одно соответствие каждой переменной в данных.

Переменное правило именования в виде одного из этих значений:

  • "modify" — Удалите символы non-ASCII из имен переменных когда SQLImportOptions функция импортирует данные.

  • "preserve" — Сохраните большинство имен переменных когда SQLImportOptions функция импортирует данные. Для получения дополнительной информации смотрите Ограничения.

Если вы используете MySQL или собственный интерфейс PostgreSQL, "preserve" значение по умолчанию.

VariableNamingRule свойство имеет эти ограничения:

  • Имена переменных Properties'RowNames' , и VariableNames зарезервированные идентификаторы для table тип данных.

  • Длина каждого имени переменной должна быть меньше номера, возвращенного namelengthmax.

Пример: 'VariableNamingRule',"modify"

Типы данных: string

Функции объекта

getoptionsПолучите настройки импорта для данных о базе данных
previewПредварительный просмотр восемь строк от базы данных с помощью настроек импорта
resetСбросьте к настройкам импорта по умолчанию для данных о базе данных
setoptionsНастройте настройки импорта для данных о базе данных

Примеры

свернуть все

Настройте настройки импорта при импортировании данных от таблицы базы данных. Управляйте настройками импорта путем создания SQLImportOptions объект. Затем настройте настройки импорта для различных столбцов базы данных. Импортируйте данные с помощью sqlread функция.

Этот пример использует patients.xls файл, который содержит столбцы Genderместоположение , SelfAssessedHealthStatus, и Smoker. Пример также использует базу данных 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 объект с помощью patients таблица базы данных и databaseImportOptions функция.

opts = databaseImportOptions(conn,tablename)
opts = 
  SQLImportOptions with properties:

           ExcludeDuplicates: false
          VariableNamingRule: 'modify'

               VariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
               VariableTypes: {'char', 'char', 'double' ... and 7 more}
       SelectedVariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
                  FillValues: {'', '',  NaN  ... and 7 more }

             VariableOptions: Show all 10 VariableOptions

Отобразите текущие настройки импорта для переменных, выбранных в SelectedVariableNames свойство SQLImportOptions объект.

vars = opts.SelectedVariableNames;
varOpts = getoptions(opts,vars)
varOpts = 
    1x10 SQLVariableImportOptions array with properties:

   Variable Options:
                      (1) |      (2) |      (3) |        (4) |      (5) |      (6) |      (7) |        (8) |         (9) |                       (10)
         Name: 'LastName' | 'Gender' |    'Age' | 'Location' | 'Height' | 'Weight' | 'Smoker' | 'Systolic' | 'Diastolic' | 'SelfAssessedHealthStatus'
         Type:     'char' |   'char' | 'double' |     'char' | 'double' | 'double' | 'double' |   'double' |    'double' |                     'char'
  MissingRule:     'fill' |   'fill' |   'fill' |     'fill' |   'fill' |   'fill' |   'fill' |     'fill' |      'fill' |                     'fill'
    FillValue:         '' |       '' |      NaN |         '' |      NaN |      NaN |      NaN |        NaN |         NaN |                         ''

	To access sub-properties of each variable, use getoptions

Измените типы данных для Genderместоположение , SelfAssessedHealthStatus, и Smoker переменные с помощью setoptions функция. Поскольку Genderместоположение , и SelfAssessedHealthStatus переменные указывают на конечное множество повторяющихся значений, изменяют их тип данных в categorical. Поскольку Smoker переменная хранит значения 0 и 1, измените его тип данных в logical. Затем отобразите обновленные настройки импорта.

opts = setoptions(opts,{'Gender','Location','SelfAssessedHealthStatus'}, ...
    'Type','categorical');
opts = setoptions(opts,'Smoker','Type','logical');

varOpts = getoptions(opts,{'Gender','Location','Smoker', ...
    'SelfAssessedHealthStatus'})
varOpts = 
    1x4 SQLVariableImportOptions array with properties:

   Variable Options:
                         (1) |           (2) |       (3) |                        (4)
         Name:      'Gender' |    'Location' |  'Smoker' | 'SelfAssessedHealthStatus'
         Type: 'categorical' | 'categorical' | 'logical' |              'categorical'
  MissingRule:        'fill' |        'fill' |    'fill' |                     'fill'
    FillValue:   <undefined> |   <undefined> |         0 |                <undefined>

	To access sub-properties of each variable, use getoptions

Импортируйте patients таблица базы данных с помощью sqlread функция и отображение последние восемь строк таблицы.

data = sqlread(conn,tablename,opts);
tail(data)
ans=8×10 table
      LastName       Gender    Age            Location             Height    Weight    Smoker    Systolic    Diastolic    SelfAssessedHealthStatus
    _____________    ______    ___    _________________________    ______    ______    ______    ________    _________    ________________________

    {'Foster'   }    Female    30     St. Mary's Medical Center      70       124      false       130          91               Fair             
    {'Gonzales' }    Male      48     County General Hospital        71       174      false       123          79               Good             
    {'Bryant'   }    Female    48     County General Hospital        66       134      false       129          73               Excellent        
    {'Alexander'}    Male      25     County General Hospital        69       171      true        128          99               Good             
    {'Russell'  }    Male      44     VA Hospital                    69       188      true        124          92               Good             
    {'Griffin'  }    Male      49     County General Hospital        70       186      false       119          74               Fair             
    {'Diaz'     }    Male      45     County General Hospital        68       172      true        136          93               Good             
    {'Hayes'    }    Male      48     County General Hospital        66       177      false       114          86               Fair             

Отобразите сводные данные импортированных данных. sqlread функция применяет настройки импорта к переменным в импортированных данных.

summary(data)
Variables:

    LastName: 100×1 cell array of character vectors

    Gender: 100×1 categorical

        Values:

            Female       53   
            Male         47   

    Age: 100×1 double

        Values:

            Min          25   
            Median       39   
            Max          50   

    Location: 100×1 categorical

        Values:

            County General Hospital         39   
            St. Mary s Medical Center       24   
            VA Hospital                     37   

    Height: 100×1 double

        Values:

            Min          60   
            Median       67   
            Max          72   

    Weight: 100×1 double

        Values:

            Min          111  
            Median     142.5  
            Max          202  

    Smoker: 100×1 logical

        Values:

            True        34   
            False       66   

    Systolic: 100×1 double

        Values:

            Min         109   
            Median      122   
            Max         138   

    Diastolic: 100×1 double

        Values:

            Min           68  
            Median      81.5  
            Max           99  

    SelfAssessedHealthStatus: 100×1 categorical

        Values:

            Excellent       34   
            Fair            15   
            Good            40   
            Poor            11   

Удалите patients таблица базы данных с помощью execute функция.

sqlquery = ['DROP TABLE ' tablename];
execute(conn,sqlquery)

Закройте соединение с базой данных.

close(conn)

Ограничения

Аргумент пары "имя-значение" 'VariableNamingRule' имеет эти ограничения:

  • SQLImportOptions функция возвращает ошибку, когда вы используете 'VariableNamingRule' аргумент пары "имя-значение" с SQLImportOptions объект opts.

  • Когда 'VariableNamingRule' аргумент пары "имя-значение" установлен в значение 'modify':

    • Имена переменных Properties'RowNames' , и VariableNames зарезервированные идентификаторы для table тип данных.

    • Длина каждого имени переменной должна быть меньше номера, возвращенного namelengthmax.

Введенный в R2018b