Импорт данных в MATLAB из таблицы базы данных
настраивает параметры для импорта данных из таблицы базы данных с помощью data = sqlread(conn,tablename,opts)SQLImportOptions объект.
задает дополнительные параметры, использующие один или несколько аргументов пары имя-значение и любую из предыдущих комбинаций входных аргументов. Например, data = sqlread(___,Name,Value)'Catalog','cat' импортирует данные из таблицы базы данных, хранящейся в 'cat' каталог.
Используйте подключение ODBC для импорта данных продукта из таблицы базы данных в MATLAB ® с помощью базы данных Microsoft ® SQL Server ®. Затем выполните простой анализ данных.
Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль. База данных содержит таблицуproductTable.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Проверьте подключение к базе данных. Если Message пустое свойство, подключение выполнено успешно.
conn.Message
ans =
[]
Импорт данных из таблицы базы данных productTable. sqlread функция возвращает таблицу MATLAB ®, содержащую данные продукта.
tablename = 'productTable';
data = sqlread(conn,tablename);
Просмотрите первые несколько продуктов.
head(data,3)
ans =
3×5 table
productNumber stockNumber supplierNumber unitCost productDescription
_____________ ___________ ______________ ________ __________________
9 1.2597e+05 1003 13 'Victorian Doll'
8 2.1257e+05 1001 5 'Train Set'
7 3.8912e+05 1007 16 'Engine Kit'
Закройте подключение к базе данных.
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 таблица базы данных с использованием информации о пациенте.
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
Отображение сводки импортированных данных. 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)
Используйте подключение ODBC для импорта данных продукта из таблицы базы данных в MATLAB ® с помощью базы данных Microsoft ® SQL Server ®. Укажите схему, в которой хранится таблица базы данных. Затем выполните сортировку и фильтрацию строк в импортированных данных и выполните простой анализ данных.
Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль. База данных содержит таблицуproductTable.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Проверьте подключение к базе данных. Если Message пустое свойство, подключение выполнено успешно.
conn.Message
ans =
[]
Импорт данных из таблицы productTable. Укажите схему базы данных dbo. data таблица содержит данные продукта.
tablename = 'productTable'; data = sqlread(conn,tablename,'Schema','dbo');
Просмотрите первые несколько продуктов.
data(1:3,:)
ans =
3×5 table
productNumber stockNumber supplierNumber unitCost productDescription
_____________ ___________ ______________ ________ __________________
9 1.2597e+05 1003 13 'Victorian Doll'
8 2.1257e+05 1001 5 'Train Set'
7 3.8912e+05 1007 16 'Engine Kit'
Просмотрите первые несколько описаний продуктов.
data.productDescription(1:3)
ans =
3×1 cell array
{'Victorian Doll'}
{'Train Set' }
{'Engine Kit' }
Сортировка строк в data по столбцу описания продукта в алфавитном порядке.
column = 'productDescription';
data = sortrows(data,column);
Просмотрите первые несколько описаний продуктов после сортировки.
data.productDescription(1:3)
ans =
3×1 cell array
{'Building Blocks'}
{'Convertible' }
{'Engine Kit' }
Закройте подключение к базе данных.
close(conn)
Используйте подключение ODBC для импорта данных продукта из таблицы базы данных в MATLAB ® с помощью базы данных Microsoft ® SQL Server ®. Укажите максимальное количество строк для импорта из таблицы базы данных.
Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль. База данных содержит таблицуproductTable.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Проверьте подключение к базе данных. Если Message пустое свойство, подключение выполнено успешно.
conn.Message
ans =
[]
Импорт данных из таблицы productTable. Импорт только трех строк данных из таблицы базы данных. data таблица содержит данные продукта.
tablename = 'productTable'; data = sqlread(conn,tablename,'MaxRows',3)
data =
3×5 table
productNumber stockNumber supplierNumber unitCost productDescription
_____________ ___________ ______________ ________ __________________
9 1.2597e+05 1003 13 'Victorian Doll'
8 2.1257e+05 1001 5 'Train Set'
7 3.8912e+05 1007 16 'Engine Kit'
Закройте подключение к базе данных.
close(conn)
Импорт данных продукта из таблицы базы данных Microsoft ® SQL Server ® в MATLAB ® с помощью подключения ODBC. Таблица содержит имя переменной с символом, отличным от ASCII. При импорте данных сохраните имена всех переменных.
Создайте подключение базы данных ODBC к базе данных SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль. База данных содержит таблицуproductTable.
datasource = "MSSQLServerAuth"; conn = database(datasource,"","");
Проверьте подключение к базе данных. Если Message пустое свойство, подключение выполнено успешно.
conn.Message
ans =
[]
Добавление столбца в таблицу базы данных productTable. Имя столбца содержит символ, отличный от ASCII.
sqlquery = "ALTER TABLE productTable ADD tamaño varchar(30)";
execute(conn,sqlquery)Импорт данных из таблицы базы данных productTable. sqlread функция возвращает таблицу MATLAB, содержащую данные продукта. Просмотрите первые три строки данных в таблице.
tablename = "productTable";
data = sqlread(conn,tablename);
head(data,3)ans=3×6 table
productNumber stockNumber supplierNumber unitCost productDescription tama_o
_____________ ___________ ______________ ________ __________________ __________
9 1.2597e+05 1003 13 {'Victorian Doll'} {0×0 char}
8 2.1257e+05 1001 5 {'Train Set' } {0×0 char}
7 3.8912e+05 1007 16 {'Engine Kit' } {0×0 char}
sqlread функция преобразует имя новой переменной в символы ASCII.
Сохраните имя переменной, содержащей символ, отличный от ASCII, указав VariableNamingRule аргумент пары имя-значение. Импортируйте данные еще раз.
data = sqlread(conn,tablename, ... 'VariableNamingRule',"preserve"); head(data,3)
ans=3×6 table
productNumber stockNumber supplierNumber unitCost productDescription tamaño
_____________ ___________ ______________ ________ __________________ __________
9 1.2597e+05 1003 13 {'Victorian Doll'} {0×0 char}
8 2.1257e+05 1001 5 {'Train Set' } {0×0 char}
7 3.8912e+05 1007 16 {'Engine Kit' } {0×0 char}
sqlread функция сохраняет символ, отличный от ASCII, в имени переменной.
Закройте подключение к базе данных.
close(conn)
Получение метаданных при импорте данных из таблицы базы данных. Импорт данных с помощью sqlread и исследовать информацию метаданных с помощью точечной нотации.
В этом примере используется outages.csv файл, содержащий данные об отключении. В примере также используется база данных 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 ®.
outages = readtable("outages.csv");Создать outages таблицу базы данных с использованием информации об отключении.
tablename = "outages";
sqlwrite(conn,tablename,outages)Импортируйте данные в рабочую область MATLAB и возвращайте метаданные об импортированных данных.
[data,metadata] = sqlread(conn,tablename);
Просмотр имен переменных в импортированных данных.
metadata.Properties.RowNames
ans = 6×1 cell array
{'Region' }
{'OutageTime' }
{'Loss' }
{'Customers' }
{'RestorationTime'}
{'Cause' }
Просмотр типа данных каждой переменной в импортированных данных.
metadata.VariableType
ans = 6×1 cell array
{'char' }
{'char' }
{'double'}
{'double'}
{'char' }
{'char' }
Просмотрите отсутствующее значение данных для каждой переменной в импортированных данных.
metadata.FillValue
ans = 6×1 cell array
{0×0 char}
{0×0 char}
{[ NaN]}
{[ NaN]}
{0×0 char}
{0×0 char}
Просмотрите индексы отсутствующих данных для каждой переменной в импортированных данных.
metadata.MissingRows
ans = 6×1 cell array
{ 0×1 double}
{ 0×1 double}
{604×1 double}
{328×1 double}
{ 29×1 double}
{ 0×1 double}
Отображение первых восьми строк импортированных данных, содержащих отсутствующее время восстановления. data содержит время восстановления в пятой переменной. Используйте числовые индексы для поиска строк с отсутствующими данными.
index = metadata.MissingRows{5,1};
nullrestoration = data(index,:);
head(nullrestoration)ans=8×6 table
Region OutageTime Loss Customers RestorationTime Cause
___________ _________________________ ______ __________ _______________ __________________
'SouthEast' '2003-01-23 00:49:00.000' 530.14 2.1204e+05 '' 'winter storm'
'NorthEast' '2004-09-18 05:54:00.000' 0 0 '' 'equipment fault'
'MidWest' '2002-04-20 16:46:00.000' 23141 NaN '' 'unknown'
'NorthEast' '2004-09-16 19:42:00.000' 4718 NaN '' 'unknown'
'SouthEast' '2005-09-14 15:45:00.000' 1839.2 3.4144e+05 '' 'severe storm'
'SouthEast' '2004-08-17 17:34:00.000' 624.1 1.7879e+05 '' 'severe storm'
'SouthEast' '2006-01-28 23:13:00.000' 498.78 NaN '' 'energy emergency'
'West' '2003-06-20 18:22:00.000' 0 0 '' 'energy emergency'
Удалить outages таблицы базы данных с использованием execute функция.
sqlstr = "DROP TABLE ";
sqlquery = strcat(sqlstr,tablename);
execute(conn,sqlquery)Закройте подключение к базе данных.
close(conn)
conn - Подключение к базе данныхconnection объектПодключение к базе данных, указанное как ODBC connection объект или JDBC connection объект, созданный с помощью database функция.
tablename - Имя таблицы базы данныхИмя таблицы базы данных, указанное как вектор символов или скаляр строки, обозначающий имя таблицы в базе данных.
Пример: 'employees'
Типы данных: char | string
opts - Параметры импорта базы данныхSQLImportOptions объектПараметры импорта базы данных, указанные как SQLImportOptions объект.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
data = sqlread(conn,'inventoryTable','Catalog','toy_store','Schema','dbo','MaxRows',5) импортирует пять строк данных из таблицы базы данных inventoryTable хранится в toy_store каталог и dbo схема.'Catalog' - Имя каталога базы данныхИмя каталога базы данных, указанное как разделенная запятыми пара, состоящая из 'Catalog' и вектор символов или строковый скаляр. Каталог служит контейнером для схем в базе данных и содержит связанные метаданные. База данных может иметь множество каталогов.
Пример: 'Catalog','toy_store'
Типы данных: char | string
'Schema' - Имя схемы базы данныхИмя схемы базы данных, указанное как разделенная запятыми пара, состоящая из 'Schema' и вектор символов или строковый скаляр. Схема определяет таблицы базы данных, представления, связи между таблицами и другие элементы. Каталог базы данных может иметь множество схем.
Пример: 'Schema','dbo'
Типы данных: char | string
'MaxRows' - Максимальное количество возвращаемых строкМаксимальное количество возвращаемых строк, указанное как пара, разделенная запятыми, состоящая из 'MaxRows' и положительный числовой скаляр. По умолчанию sqlread функция возвращает все строки из выполненного SQL-запроса. Этот аргумент пары имя-значение используется для ограничения количества строк, импортированных в MATLAB.
Пример: 'MaxRows',10
Типы данных: double
'VariableNamingRule' - Правило именования переменных"modify" (по умолчанию) | "preserve"Правило именования переменных, указанное как пара, разделенная запятыми, состоящая из 'VariableNamingRule' и одно из этих значений:
"modify" - Удаление символов, отличных от ASCII, из имен переменных sqlread функция импортирует данные.
"preserve" - Сохранение большинства имен переменных при sqlread функция импортирует данные. Дополнительные сведения см. в разделе Ограничения.
Пример: 'VariableNamingRule',"modify"
Типы данных: string
data - Импортированные данныеИмпортированные данные, возвращенные в виде таблицы. Строки таблицы соответствуют строкам в таблице базы данных tablename. Переменные в таблице соответствуют каждому столбцу в таблице базы данных. Для столбцов, имеющих numeric типы данных в таблице базы данных, переменные типы данных в data являются double по умолчанию. Для столбцов с текстом: date, time, или timestamp типы данных в таблице базы данных, переменные типы данных являются массивами ячеек символьных векторов по умолчанию.
Если таблица базы данных не содержит данных для импорта, то data является пустой таблицей.
metadata - Информация о метаданныхМетаданные, возвращаемые в виде таблицы с этими переменными.
| Имя переменной | Описание переменной | Тип данных переменной |
|---|---|---|
| Тип данных каждой переменной в импортированных данных | Массив ячеек символьных векторов |
| Значение отсутствующих данных для каждой переменной в импортированных данных | Массив ячеек с отсутствующими значениями данных |
| Индексы для каждого вхождения отсутствующих данных в каждой переменной импортированных данных | Массив ячеек числовых индексов |
По умолчанию sqlread функция импортирует текстовые данные как символьный вектор и числовые данные как двойные. FillValue - пустой символьный массив (для текстовых данных) или NaN (для числовых данных) по умолчанию. Чтобы изменить отсутствующее значение данных на другое, используйте SQLImportOptions объект.
RowNames имущества metadata содержит имена переменных в импортированных данных.
Аргумент пары имя-значение 'VariableNamingRule' имеет следующие ограничения:
sqlread функция возвращает ошибку при использовании 'VariableNamingRule' аргумент пары имя-значение с SQLImportOptions объект opts.
Когда 'VariableNamingRule' аргумент пары имя-значение установлен в значение 'modify':
Имена переменных Properties, RowNames, и VariableNames являются зарезервированными идентификаторами для table тип данных.
Длина каждого имени переменной должна быть меньше числа, возвращаемого namelengthmax.
close | database | databaseImportOptions | execute | fetch | getoptions | reset | select | setoptions | sqlfind | sqlinnerjoin | sqlouterjoin
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.