databaseImportOptions

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

Описание

пример

opts = databaseImportOptions(conn,source) создает SQLImportOptions объект с использованием подключения к базе данных и источника, который является именем таблицы базы данных или SQL-запросом.

пример

opts = databaseImportOptions(conn,source,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Для примера, 'Catalog',"toystore_doc" извлекает данные из toystore_doc каталог базы данных.

Примеры

свернуть все

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

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

Отображение сводных данных импортированных данных. The 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)

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

Этот пример использует employees_database.mat файл, содержащий столбцы first_name, hire_date, и DEPARTMENT_NAME. В этом примере также используется база данных 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 ®.

employeedata = load('employees_database.mat');

Создайте employees и departments таблицы базы данных с использованием информации о сотруднике.

emps = employeedata.employees;
depts = employeedata.departments;

sqlwrite(conn,'employees',emps)
sqlwrite(conn,'departments',depts)

Создайте SQLImportOptions объект с использованием SQL-запроса и databaseImportOptions функция. Этот запрос извлекает всю информацию для сотрудников, являющихся менеджерами по продажам или программистами.

sqlquery = ['SELECT * from employees e join departments d ' ...
    'on (e.department_id = d.department_id) where job_id ' ...
    'in (''IT_PROG'',''SA_MAN'')'];
opts = databaseImportOptions(conn,sqlquery)
opts = 
  SQLImportOptions with properties:

           ExcludeDuplicates: false
          VariableNamingRule: 'modify'

               VariableNames: {'employee_id', 'first_name', 'last_name' ... and 13 more}
               VariableTypes: {'double', 'char', 'char' ... and 13 more}
       SelectedVariableNames: {'employee_id', 'first_name', 'last_name' ... and 13 more}
                  FillValues: { NaN, '', ''  ... and 13 more }

             VariableOptions: Show all 16 VariableOptions

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

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

   Variable Options:
                         (1) |          (2) |         (3) |     (4) |            (5) |         (6) |      (7) |      (8) |              (9) |         (10) |            (11) |        (12) |            (13) |              (14) |         (15) |          (16)
         Name: 'employee_id' | 'first_name' | 'last_name' | 'email' | 'phone_number' | 'hire_date' | 'job_id' | 'salary' | 'commission_pct' | 'manager_id' | 'department_id' | 'temporary' | 'DEPARTMENT_ID' | 'DEPARTMENT_NAME' | 'MANAGER_ID' | 'LOCATION_ID'
         Type:      'double' |       'char' |      'char' |  'char' |         'char' |      'char' |   'char' | 'double' |         'double' |     'double' |        'double' |    'double' |        'double' |            'char' |     'double' |      'double'
  MissingRule:        'fill' |       'fill' |      'fill' |  'fill' |         'fill' |      'fill' |   'fill' |   'fill' |           'fill' |       'fill' |          'fill' |      'fill' |          'fill' |            'fill' |       'fill' |        'fill'
    FillValue:           NaN |           '' |          '' |      '' |             '' |          '' |       '' |      NaN |              NaN |          NaN |             NaN |         NaN |             NaN |                '' |          NaN |           NaN

	To access sub-properties of each variable, use getoptions

Измените типы данных для hire_date, DEPARTMENT_NAME, и first_name переменные, использующие setoptions функция. Затем отобразите обновленные настройки импорта. Потому что hire_date сохраняет данные о дате и времени, меняет тип данных этой переменной на datetime. Потому что DEPARTMENT_NAME определяет конечный набор повторяющихся значений, изменяет тип данных этой переменной на categorical. Кроме того, измените имя этой переменной на строчное. Потому что first_name сохраняет текстовые данные, меняет тип данных этой переменной на string.

opts = setoptions(opts,'hire_date','Type','datetime');
opts = setoptions(opts,'DEPARTMENT_NAME','Name','department_name', ...
    'Type','categorical');
opts = setoptions(opts,'first_name','Type','string');

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

   Variable Options:
                         (1) |          (2) |         (3) |     (4) |            (5) |         (6) |      (7) |      (8) |              (9) |         (10) |            (11) |        (12) |            (13) |              (14) |         (15) |          (16)
         Name: 'employee_id' | 'first_name' | 'last_name' | 'email' | 'phone_number' | 'hire_date' | 'job_id' | 'salary' | 'commission_pct' | 'manager_id' | 'department_id' | 'temporary' | 'DEPARTMENT_ID' | 'department_name' | 'MANAGER_ID' | 'LOCATION_ID'
         Type:      'double' |     'string' |      'char' |  'char' |         'char' |  'datetime' |   'char' | 'double' |         'double' |     'double' |        'double' |    'double' |        'double' |     'categorical' |     'double' |      'double'
  MissingRule:        'fill' |       'fill' |      'fill' |  'fill' |         'fill' |      'fill' |   'fill' |   'fill' |           'fill' |       'fill' |          'fill' |      'fill' |          'fill' |            'fill' |       'fill' |        'fill'
    FillValue:           NaN |    <missing> |          '' |      '' |             '' |         NaT |       '' |      NaN |              NaN |          NaN |             NaN |         NaN |             NaN |       <undefined> |          NaN |           NaN

	To access sub-properties of each variable, use getoptions

Выберите три измененные переменные с помощью SelectVariableNames свойство.

opts.SelectedVariableNames = {'first_name','hire_date','department_name'};

Импорт и отображение результатов SQL-запроса с помощью fetch функция.

employees_data = fetch(conn,sqlquery,opts)
employees_data=10×3 table
    first_name      hire_date     department_name
    ___________    ___________    _______________

    "Alexander"    03-Jan-2006         IT        
    "Bruce"        21-May-2007         IT        
    "David"        25-Jun-2005         IT        
    "Valli"        05-Feb-2006         IT        
    "Diana"        07-Feb-2007         IT        
    "John"         01-Oct-2004         Sales     
    "Karen"        05-Jan-2005         Sales     
    "Alberto"      10-Mar-2005         Sales     
    "Gerald"       15-Oct-2007         Sales     
    "Eleni"        29-Jan-2008         Sales     

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

execute(conn,'DROP TABLE employees')
execute(conn,'DROP TABLE departments')

Закройте подключение к базе данных.

close(conn)

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

Этот пример использует patients.xls файл, содержащий столбцы Gender, Location, SelfAssessedHealthStatus, и Smoker. В этом примере также используется база данных 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 таблица базы данных в toy_store каталог и dbo базы данных схема базы данных с использованием информации о пациенте.

tablename = 'patients';
sqlwrite(conn,tablename,patients, ...
    'Catalog','toy_store','Schema','dbo')

Создайте SQLImportOptions объект с использованием patients таблица базы данных и databaseImportOptions функция. Задайте toy_store каталог и dbo базы данных схема базы данных для расположения таблицы базы данных.

opts = databaseImportOptions(conn,tablename, ...
    'Catalog','toy_store','Schema','dbo');

Отобразите текущие настройки импорта для переменных, выбранных в 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, Location, SelfAssessedHealthStatus, и Smoker переменные, использующие setoptions функция. Потому что Gender, Location, и 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,'Catalog','toy_store','Schema','dbo');
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             

Отображение сводных данных импортированных данных. The 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 таблица базы данных из toy_store каталог базы данных и dbo схема базы данных при помощи execute функция.

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

Закройте подключение к базе данных.

close(conn)

Входные параметры

свернуть все

Подключение к базе данных, заданное как connection объект, созданный с помощью database функция, connection объект, созданный с помощью mysql функции, или connection объект, созданный с помощью postgresql функция.

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

Пример: "inventorytable"

Пример: "SELECT * FROM inventorytable"

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: opts = databaseImportOptions(conn,"inventorytable",'Catalog',"toystore_doc",'Schema',"dbo") определяет настройки импорта для импорта данных из inventorytable таблица базы данных, расположенная в toystore_doc каталог и dbo схема.

Имя каталога базы данных, заданное как разделенная разделенными запятой парами, состоящая из 'Catalog' и вектор символов или строковый скаляр. Каталог служит контейнером для схем в базе данных и содержит связанную информацию о метаданных. База данных может иметь множество каталогов.

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

Пример: 'Catalog','toy_store'

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

Имя схемы базы данных, заданное как разделенная разделенными запятой парами, состоящая из 'Schema' и вектор символов или строковый скаляр. Схема определяет таблицы базы данных, представления, связи между таблицами и другими элементами. Каталог базы данных может иметь множество схем.

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

Пример: 'Schema','dbo'

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

Выходные аргументы

свернуть все

Настройки импорта базы данных, возвращенные как SQLImportOptions объект.

Введенный в R2018b