Импортируйте данные в 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
. The 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
Отображение сводных данных импортированных данных. 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)
Используйте подключение 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
. The 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
. Импортируйте только три строки данных из таблицы базы данных. The 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
. The 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}
The 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}
The 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
функция импортирует текстовые данные как вектор символов, а числовые как double. FillValue
является пустым символьным массивом (для текстовых данных) или NaN
(для числовых данных) по умолчанию. Чтобы изменить отсутствующее значение данных на другое, используйте SQLImportOptions
объект.
The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.