Задайте настройки импорта для данных базы данных
После создания SQLImportOptions
можно настроить настройки импорта для импорта данных из базы данных в MATLAB®. Настройки импорта включают определение типов данных и значений заливки для недостающих данных.
Создайте SQLImportOptions
объект с databaseImportOptions
функция.
ExcludeDuplicates
- Флаг для исключения дубликатовfalse
(по умолчанию) | true
Флаг для исключения дубликатов из импортированных данных, заданный как false
или true
. Чтобы исключить дубликаты из данных в таблице базы данных или результатах SQL-запроса, установите ExcludeDuplicates
свойство к true
использование записи через точку.
Установка этого свойства эквивалентна использованию DISTINCT
SQL- оператора в ANSI SQL.
Типы данных: logical
VariableNames
- Имена переменныхИмена переменных, заданные как массив ячеек из векторов символов. Каждый вектор символов в массиве ячеек указывает имя импортированного столбца базы данных из SQL-запроса или таблицы базы данных.
Для таблицы или SQL-запроса с одним столбцом базы данных массив ячеек содержит только один вектор символов.
Имена переменных по умолчанию являются именами столбцов в SQL-запросе или таблице базы данных.
Пример:
{'productNumber','stockNumber'}
Типы данных: cell
VariableTypes
- Типы переменныхТипы переменных, заданные как массив ячеек из векторов символов. Каждый вектор символов в массиве ячеек указывает тип данных импортированного столбца базы данных из SQL-запроса или таблицы базы данных. Каждый вектор символов должен быть допустимым типом данных MATLAB.
Для таблицы или SQL-запроса с одним столбцом базы данных массив ячеек содержит только один вектор символов.
Когда вы создаете SQLImportOptions
объект, databaseImportOptions
функция автоматически определяет тип данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
Тип данных базы данных | Тип обнаруженных данных MATLAB |
---|---|
|
|
|
|
|
|
|
|
Если вы используете MySQL® собственный интерфейс, эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
Тип данных MySQL | Тип данных MATLAB |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если вы используете собственный интерфейс PostgreSQL, эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
Тип данных PostgreSQL | Тип данных MATLAB |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Как обновить VariableTypes
свойство, используйте setoptions
функция.
Пример:
{'int64','int32'}
Типы данных: cell
SelectedVariableNames
- Подмножество переменных для импортаПодмножество переменных для импорта, заданное как вектор символов, массив ячеек из векторов символов или числовой массив, содержащий индексы. Используйте SelectedVariableNames
свойство для определения столбцов базы данных для импорта в рабочее пространство MATLAB.
Значения в SelectedVariableNames
свойство должно быть равно значениям в VariableNames
свойство или подмножество этих значений. По умолчанию в SelectedVariableNames
свойство содержит все имена переменных, указанные в VariableNames
свойство. Когда SelectedVariableNames
свойство задает все имена переменных, sqlread
, fetch
, и функции импорта DatabaseDatastore
импортировать все столбцы базы данных.
Пример:
{'productNumber','stockNumber'}
Пример:
[1,2,3]
Типы данных: double
| char
| cell
FillValues
- Заполните значение для отсутствующих данныхЗаполните значение для отсутствующих данных, заданное как массив ячеек, содержащий одно или несколько значений. Каждое значение может быть одним из следующих типов данных:
Все целочисленные классы
single
double
char
string
скаляр
logical
datetime
массив
categorical
массив
missing
Когда вы создаете SQLImportOptions
объект, databaseImportOptions
функция автоматически определяет значение заливки недостающих данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных с обнаруженным значением заливки MATLAB.
Тип данных базы данных | MATLAB обнаружило значение заливки |
---|---|
| '' |
| '' |
| NaN |
| false |
Если вы используете собственный интерфейс MySQL, эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
Тип данных MySQL | MATLAB обнаружило значение заливки |
---|---|
| '' (если VariableTypes свойство char ) или <missing> (если VariableTypes свойство string ) |
| NaT |
| NaN |
| NaN |
| <undefined> |
Если вы используете собственный интерфейс PostgreSQL, эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
Тип данных PostgreSQL | MATLAB обнаружило значение заливки |
---|---|
| false |
| NaN |
| <missing> |
| NaT |
| NaN |
| NaN |
| undefined |
Как обновить FillValues
свойство, используйте setoptions
функция.
Пример:
{'',NaN}
Типы данных: cell
VariableOptions
- Зависящие от типа настройки импорта переменныхСпецифичные для типа настройки импорта, возвращенные как массив объектов настроек импорта. Массив содержит объект, соответствующий каждой переменной, заданной в VariableNames
свойство. Каждый объект в массиве содержит свойства, поддерживающие импорт данных с определенным типом данных.
Чтобы запросить текущие (или обнаруженные) опции для переменной, используйте getoptions
функция.
Чтобы задать и настроить опции для переменной, используйте setoptions
функция.
Пример:
opts.VariableOptions
возвращает набор SQLVariableImportOptions
объекты, по одному, соответствующий каждой переменной в данных.
VariableNamingRule
- Правило именования переменных"modify"
(по умолчанию) | "preserve"
Правило именования переменной, заданное в качестве одного из следующих значений:
"modify"
- Удалите символы, отличные от ASCII, из имен переменных, когда SQLImportOptions
функция импортирует данные.
"preserve"
- Сохраните большинство имен переменных, когда SQLImportOptions
функция импортирует данные. Для получения дополнительной информации смотрите Ограничения.
Если вы используете собственный интерфейс MySQL или PostgreSQL, "preserve"
является значением по умолчанию.
The VariableNamingRule
свойство имеет следующие ограничения:
Имена переменных Properties
, RowNames
, и VariableNames
являются зарезервированными идентификаторами для table
тип данных.
Длина каждого имени переменной должна быть меньше, чем число, возвращаемое namelengthmax
.
Пример: 'VariableNamingRule',"modify"
Типы данных: string
getoptions | Извлечение настроек импорта для данных базы данных |
preview | Предварительный просмотр восьми строк из базы данных с помощью настроек импорта |
reset | Сбросьте значение по умолчанию настроек импорта для данных базы данных |
setoptions | Настройка настроек импорта для данных базы данных |
Настройте настройки импорта при импорте данных из таблицы базы данных. Управляйте настройками импорта путем создания 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)
Область аргумента пары "имя-значение" 'VariableNamingRule'
имеет следующие ограничения:
SQLImportOptions
функция возвращает ошибку, когда вы используете 'VariableNamingRule'
аргумент пары "имя-значение" со SQLImportOptions
opts объекта
.
Когда 'VariableNamingRule'
Аргумент пары "имя-значение" задано значение 'modify'
:
Имена переменных Properties
, RowNames
, и VariableNames
являются зарезервированными идентификаторами для table
тип данных.
Длина каждого имени переменной должна быть меньше, чем число, возвращаемое namelengthmax
.
close
| database
| databaseDatastore
| execute
| fetch
| sqlread
| sqlwrite
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.