databaseImportOptions

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

Синтаксис

opts = databaseImportOptions(conn,source)
opts = databaseImportOptions(conn,source,Name,Value)

Описание

пример

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

пример

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

Примеры

свернуть все

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

Этот пример использует файл patients.xls, который содержит столбцы Gender, Location, 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)

Отобразите текущие настройки импорта для переменных, выбранных в свойстве 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'
  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. Because, переменная 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'
  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)

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

Этот пример использует файл employees_database.mat , который содержит столбцы first_name, hire_date и DEPARTMENT_NAME. Пример также использует базу данных Microsoft® SQL Server® Version 11.00.2100 и Драйвер Microsoft SQL Server 11.00.5058.

Создайте соединение с базой данных ODBC к базе данных 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)

Отобразите текущие настройки импорта для переменных, выбранных в свойстве 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'
  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'
  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 00:00:00         IT        
    "Bruce"        21-May-2007 00:00:00         IT        
    "David"        25-Jun-2005 00:00:00         IT        
    "Valli"        05-Feb-2006 00:00:00         IT        
    "Diana"        07-Feb-2007 00:00:00         IT        
    "John"         01-Oct-2004 00:00:00         Sales     
    "Karen"        05-Jan-2005 00:00:00         Sales     
    "Alberto"      10-Mar-2005 00:00:00         Sales     
    "Gerald"       15-Oct-2007 00:00:00         Sales     
    "Eleni"        29-Jan-2008 00:00:00         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 и Драйвер Microsoft SQL Server 11.00.5058.

Создайте соединение с базой данных к базе данных 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'
  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. Because, переменная 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'
  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             

Отобразите сводные данные импортированных данных. Функция 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.

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

Пример: 'inventorytable'

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Введенный в R2018b