Выполнить SQL SELECT оператор и импорт данных в MATLAB
возвращает импортированные данные из подключения к базе данных data = select(conn,selectquery)conn для указанного SQL SELECT заявление selectquery.
указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Например, data = select(conn,selectquery,Name,Value)'MaxRows',10 устанавливает максимальное количество строк, возвращаемых к 10 строкам.
Импорт данных из базы данных за один шаг с помощью select функция. Можно получить доступ к данным и выполнить немедленный анализ данных.
Код предполагает наличие таблицы базы данных Patients хранится в базе данных Microsoft ® SQL Server ®. Эта таблица содержит данные пациента в 10 столбцах и строках. Определение таблицы:
CREATE TABLE Patients( LastName VARCHAR(50), Gender VARCHAR(10), Age TINYINT, Location VARCHAR(300), Height SMALLINT, Weight SMALLINT, Smoker BIT, Systolic FLOAT, Diastolic NUMERIC, SelfAssessedHealthStatus VARCHAR(20))
В этом примере используется база данных 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,'','');
Импорт всех данных из Patients путем выполнения SQL SELECT оператор с использованием select функция. data - таблица, содержащая импортированные данные.
selectquery = 'SELECT * FROM Patients';
data = select(conn,selectquery)
data =
10×10 table
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ________ ___ __________________________ ______ ______ ______ ________ _________ ________________________
'Smith' 'Male' 38 'Country General Hospital' -32768 176 true 124 93 'Excellent'
'Johnson' 'Male' 43 'VA Hospital' 69 163 false NaN 77 'Fair'
'Williams' 'Female' 38 '' 64 131 false 125 83 'Good'
'Jones' 'Female' 0 'VA Hospital' 67 133 false 117 75 'Fair'
'Broen' 'Female' 49 'Country General Hospital' 64 119 false 122 80 'Good'
'Davis' 'Female' 46 'St Mary's Medical Center' 68 142 false 121 NaN 'Good'
'Miller' 'Female' 33 'VA Hospital' 64 142 true 130 88 'Good'
'Wilson' 'Male' 40 'VA Hospital' -32768 180 false 115 82 'Good'
'Moore' 'Male' 28 'St Mary's Medical Center' 68 -32768 false 115 78 'Excellent'
'Taylor' 'Female' 31 'Country General Hospital' 68 132 false NaN 86 'Excellent'
Определите количество пациентов мужского пола, немедленно получив доступ к данным. Используйте count функция для поиска вхождений в гендерных данных вектора символов, который представляет мужчину. Определите общее количество вхождений.
males = count(data.Gender,'Male');
sum(males)
ans =
4
Закройте подключение к базе данных.
close(conn)
Импорт ограниченного числа строк из базы данных за один шаг с помощью select функция. Toolbox™ базы данных импортирует данные с использованием числовых типов данных MATLAB ®, соответствующих типам данных в таблице базы данных. После импорта данных можно получить доступ к данным и выполнить немедленный анализ данных.
Код предполагает наличие таблицы базы данных Patients хранится в базе данных Microsoft ® SQL Server ®. Эта таблица содержит данные пациента в 10 столбцах и строках. Определение таблицы:
CREATE TABLE Patients( LastName VARCHAR(50), Gender VARCHAR(10), Age TINYINT, Location VARCHAR(300), Height SMALLINT, Weight SMALLINT, Smoker BIT, Systolic FLOAT, Diastolic NUMERIC, SelfAssessedHealthStatus VARCHAR(20))
Подключитесь к базе данных 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,'','');
Импорт данных из Patients путем выполнения SQL SELECT оператор с использованием select функция. Ограничение количества импортированных строк с помощью аргумента пары имя-значение 'MaxRows'.
data является таблицей. Типы данных MATLAB ® в таблице соответствуют типам данных в базе данных. Здесь ,Age имеет тип данных uint8 которая соответствует TINYINT в определении таблицы.
metadata - таблица, содержащая дополнительную информацию о каждой переменной в data.
VariableType -- Тип данных MATLAB ®
MissingValue -- NULL представление значения
MissingRows -- Вектор индексов строк, содержащих отсутствующее значение
selectquery = 'SELECT * FROM Patients'; [data,metadata] = select(conn,selectquery,'MaxRows',5)
data =
5×10 table
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ________ ___ __________________________ ______ ______ ______ ________ _________ ________________________
'Smith' 'Male' 38 'Country General Hospital' -32768 176 true 124 93 'Excellent'
'Johnson' 'Male' 43 'VA Hospital' 69 163 false NaN 77 'Fair'
'Williams' 'Female' 38 '' 64 131 false 125 83 'Good'
'Jones' 'Female' 0 'VA Hospital' 67 133 false 117 75 'Fair'
'Broen' 'Female' 49 'Country General Hospital' 64 119 false 122 80 'Good'
metadata =
10×3 table
VariableType MissingValue MissingRows
____________ ____________ ____________
LastName 'char' '' [0×1 double]
Gender 'char' '' [0×1 double]
Age 'uint8' [ 0] [ 4]
Location 'char' '' [0×1 double]
Height 'int16' [-32768] [ 1]
Weight 'int16' [-32768] [0×1 double]
Smoker 'logical' [ 0] [0×1 double]
Systolic 'single' [ NaN] [ 2]
Diastolic 'double' [ NaN] [0×1 double]
SelfAssessedHealthStatus 'char' '' [0×1 double]
Определите количество пациентов мужского пола, немедленно получив доступ к данным. Используйте count функция для поиска вхождений в гендерных данных вектора символов, который представляет мужчину. Определите общее количество вхождений.
males = count(data.Gender,'Male');
sum(males)
ans =
2
Закройте подключение к базе данных.
close(conn)
Импорт данных из базы данных за один шаг с помощью select функция. Toolbox™ базы данных импортирует данные с использованием числовых типов данных MATLAB ®, соответствующих типам данных в таблице базы данных. Информацию о типе данных можно просмотреть в импортированных данных. Также можно получить доступ к данным и выполнить немедленный анализ данных.
Код предполагает наличие таблицы базы данных Patients хранится в базе данных Microsoft ® SQL Server ®. Эта таблица содержит данные пациента в 10 столбцах и строках. Определение таблицы:
CREATE TABLE Patients( LastName VARCHAR(50), Gender VARCHAR(10), Age TINYINT, Location VARCHAR(300), Height SMALLINT, Weight SMALLINT, Smoker BIT, Systolic FLOAT, Diastolic NUMERIC, SelfAssessedHealthStatus VARCHAR(20))
Подключитесь к базе данных 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,'','');
Импорт всех данных из Patients путем выполнения SQL SELECT оператор с использованием select функция.
data является таблицей. Типы данных MATLAB ® в таблице соответствуют типам данных в базе данных. Здесь ,Age имеет тип данных MATLAB ®uint8 которая соответствует TINYINT в определении таблицы.
metadata - таблица, содержащая дополнительную информацию о каждой переменной в data.
VariableType -- Тип данных MATLAB ®
MissingValue -- Представление нулевого значения
MissingRows -- Вектор индексов строк, содержащих отсутствующее значение
selectquery = 'SELECT * FROM Patients';
[data,metadata] = select(conn,selectquery)
data =
10×10 table
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ________ ___ __________________________ ______ ______ ______ ________ _________ ________________________
'Smith' 'Male' 38 'Country General Hospital' -32768 176 true 124 93 'Excellent'
'Johnson' 'Male' 43 'VA Hospital' 69 163 false NaN 77 'Fair'
'Williams' 'Female' 38 '' 64 131 false 125 83 'Good'
'Jones' 'Female' 0 'VA Hospital' 67 133 false 117 75 'Fair'
'Broen' 'Female' 49 'Country General Hospital' 64 119 false 122 80 'Good'
'Davis' 'Female' 46 'St Mary's Medical Center' 68 142 false 121 NaN 'Good'
'Miller' 'Female' 33 'VA Hospital' 64 142 true 130 88 'Good'
'Wilson' 'Male' 40 'VA Hospital' -32768 180 false 115 82 'Good'
'Moore' 'Male' 28 'St Mary's Medical Center' 68 -32768 false 115 78 'Excellent'
'Taylor' 'Female' 31 'Country General Hospital' 68 132 false NaN 86 'Excellent'
metadata =
10×3 table
VariableType MissingValue MissingRows
____________ ____________ ____________
LastName 'char' '' [0×1 double]
Gender 'char' '' [0×1 double]
Age 'uint8' [ 0] [ 4]
Location 'char' '' [0×1 double]
Height 'int16' [-32768] [2×1 double]
Weight 'int16' [-32768] [ 9]
Smoker 'logical' [ 0] [0×1 double]
Systolic 'single' [ NaN] [2×1 double]
Diastolic 'double' [ NaN] [ 6]
SelfAssessedHealthStatus 'char' '' [0×1 double]
Просмотр типов данных каждой переменной в таблице.
metadata.VariableType
ans =
10×1 cell array
'char'
'char'
'uint8'
'char'
'int16'
'int16'
'logical'
'single'
'double'
'char'
Определите количество пациентов мужского пола, немедленно получив доступ к данным. Используйте count функция для поиска вхождений в гендерных данных вектора символов, который представляет мужчину. Определите общее количество вхождений.
males = count(data.Gender,'Male');
sum(males)
ans =
4
Закройте подключение к базе данных.
close(conn)
Импорт данных из базы данных за один шаг с помощью select функция. Во время импорта select устанавливает значения по умолчанию для отсутствующих данных в каждой строке. Для изменения значений по умолчанию используется информация об импортированных данных.
Код предполагает наличие таблицы базы данных Patients хранится в базе данных Microsoft ® SQL Server ®. Эта таблица содержит данные пациента в 10 столбцах и строках. Определение таблицы:
CREATE TABLE Patients( LastName VARCHAR(50), Gender VARCHAR(10), Age TINYINT, Location VARCHAR(300), Height SMALLINT, Weight SMALLINT, Smoker BIT, Systolic FLOAT, Diastolic NUMERIC, SelfAssessedHealthStatus VARCHAR(20))
Подключитесь к базе данных 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,'','');
Импорт всех данных из Patients путем выполнения SQL SELECT оператор с использованием select функция.
data - таблица, содержащая импортированные данные.
metadata - таблица, содержащая дополнительную информацию о каждой переменной в data.
VariableType -- Тип данных MATLAB ®
MissingValue -- NULL представление значения
MissingRows - Вектор индексов строк, указывающих местоположение отсутствующих значений
selectquery = 'SELECT * FROM Patients';
[data,metadata] = select(conn,selectquery)
data =
10×10 table array
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ________ ___ __________________________ ______ ______ ______ ________ _________ ________________________
'Smith' 'Male' 38 'Country General Hospital' -32768 176 true 124 93 'Excellent'
'Johnson' 'Male' 43 'VA Hospital' 69 163 false NaN 77 'Fair'
'Williams' 'Female' 38 '' 64 131 false 125 83 'Good'
'Jones' 'Female' 0 'VA Hospital' 67 133 false 117 75 'Fair'
'Broen' 'Female' 49 'Country General Hospital' 64 119 false 122 80 'Good'
'Davis' 'Female' 46 'St Mary's Medical Center' 68 142 false 121 NaN 'Good'
'Miller' 'Female' 33 'VA Hospital' 64 142 true 130 88 'Good'
'Wilson' 'Male' 40 'VA Hospital' -32768 180 false 115 82 'Good'
'Moore' 'Male' 28 'St Mary's Medical Center' 68 -32768 false 115 78 'Excellent'
'Taylor' 'Female' 31 'Country General Hospital' 68 132 false NaN 86 'Excellent'
metadata =
10×3 table array
VariableType MissingValue MissingRows
____________ ____________ ____________
LastName 'char' '' [0×1 double]
Gender 'char' '' [0×1 double]
Age 'uint8' [ 0] [ 4]
Location 'char' '' [0×1 double]
Height 'int16' [-32768] [2×1 double]
Weight 'int16' [-32768] [ 9]
Smoker 'logical' [ 0] [0×1 double]
Systolic 'single' [ NaN] [2×1 double]
Diastolic 'double' [ NaN] [ 6]
SelfAssessedHealthStatus 'char' '' [0×1 double]
Извлекать индексы, указывающие расположение отсутствующих значений в Height с использованием переменной metadata выходной аргумент.
values = metadata.MissingRows{'Height'}
values =
1
8
Изменение значения по умолчанию для отсутствующих данных из -32768 кому 0 с использованием цикла for. Доступ к импортированным данным с помощью индексов.
for i = 1:length(values) data.Height(values(i)) = 0; end
Просмотр импортированных данных.
data.Height
ans =
10×1 int16 column vector
0
69
64
67
64
68
64
0
68
68
Отсутствующие значения отображаются как 0.
Закройте подключение к базе данных.
close(conn)
Импорт данных из базы данных за один шаг с помощью select функция. Во время импорта select устанавливает значения по умолчанию для отсутствующих данных в каждой строке. Используйте информацию об импортированных данных для изменения значений по умолчанию путем индексирования в вектор.
Код предполагает наличие таблицы базы данных Patients хранится в базе данных Microsoft ® SQL Server ®. Эта таблица содержит данные пациента в 10 столбцах и строках. Определение таблицы:
CREATE TABLE Patients( LastName VARCHAR(50), Gender VARCHAR(10), Age TINYINT, Location VARCHAR(300), Height SMALLINT, Weight SMALLINT, Smoker BIT, Systolic FLOAT, Diastolic NUMERIC, SelfAssessedHealthStatus VARCHAR(20))
Подключитесь к базе данных 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,'','');
Импорт всех данных из Patients путем выполнения SQL SELECT оператор с использованием select функция.
data - таблица, содержащая импортированные данные.
metadata - таблица, содержащая дополнительную информацию о каждой переменной в data.
VariableType -- Тип данных MATLAB ®
MissingValue -- NULL представление значения
MissingRows - Вектор индексов строк, указывающих местоположение отсутствующих значений
selectquery = 'SELECT * FROM Patients';
[data,metadata] = select(conn,selectquery)
data =
10×10 table array
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ________ ___ __________________________ ______ ______ ______ ________ _________ ________________________
'Smith' 'Male' 38 'Country General Hospital' -32768 176 true 124 93 'Excellent'
'Johnson' 'Male' 43 'VA Hospital' 69 163 false NaN 77 'Fair'
'Williams' 'Female' 38 '' 64 131 false 125 83 'Good'
'Jones' 'Female' 0 'VA Hospital' 67 133 false 117 75 'Fair'
'Broen' 'Female' 49 'Country General Hospital' 64 119 false 122 80 'Good'
'Davis' 'Female' 46 'St Mary's Medical Center' 68 142 false 121 NaN 'Good'
'Miller' 'Female' 33 'VA Hospital' 64 142 true 130 88 'Good'
'Wilson' 'Male' 40 'VA Hospital' -32768 180 false 115 82 'Good'
'Moore' 'Male' 28 'St Mary's Medical Center' 68 -32768 false 115 78 'Excellent'
'Taylor' 'Female' 31 'Country General Hospital' 68 132 false NaN 86 'Excellent'
metadata =
10×3 table array
VariableType MissingValue MissingRows
____________ ____________ ____________
LastName 'char' '' [0×1 double]
Gender 'char' '' [0×1 double]
Age 'uint8' [ 0] [ 4]
Location 'char' '' [0×1 double]
Height 'int16' [-32768] [2×1 double]
Weight 'int16' [-32768] [ 9]
Smoker 'logical' [ 0] [0×1 double]
Systolic 'single' [ NaN] [2×1 double]
Diastolic 'double' [ NaN] [ 6]
SelfAssessedHealthStatus 'char' '' [0×1 double]
Извлекать индексы, указывающие расположение отсутствующих значений в Height с использованием переменной metadata выходной аргумент.
values = metadata(5,3)
valuesindex = values.MissingRows{1}
values =
table
MissingRows
____________
Height [2×1 double]
valuesindex =
1
8
Изменение значения по умолчанию для отсутствующих данных из -32768 кому 0 использование векторной индексации.
data.Height(valuesindex) = 0;
Просмотр импортированных данных.
data.Height
ans =
10×1 int16 column vector
0
69
64
67
64
68
64
0
68
68
Отсутствующие значения отображаются как 0.
Закройте подключение к базе данных.
close(conn)
conn - Подключение к базе данныхconnection объектПодключение к базе данных, указанное как ODBC connection объект или JDBC connection объект, созданный с помощью database функция.
selectquery - SQL SELECT заявлениеSQL SELECT оператор, указанный как символьный вектор или строка. select функция выполняет только SQL SELECT заявления. Для выполнения других инструкций SQL используйте exec функция.
Пример: 'SELECT * FROM inventoryTable'
Типы данных: char | string
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'MaxRows',100,'QueryTimeOut',5 возвращает 100 строк данных и ожидает выполнения SQL в течение 5 секунд SELECT заявление.'MaxRows' - Максимальное количество возвращаемых строкМаксимальное количество возвращаемых строк, указанное как пара, разделенная запятыми, состоящая из 'MaxRows' и положительный числовой скаляр. По умолчанию select функция возвращает все строки из выполненного SQL-запроса. Этот аргумент пары имя-значение используется для ограничения количества строк, импортированных в MATLAB ®.
Пример: 'MaxRows',10
Типы данных: double
'QueryTimeOut' - время ожидания запроса SQLТайм-аут запроса SQL, указанный как пара, разделенная запятыми, состоящая из 'QueryTimeOut' и положительный числовой скаляр. По умолчанию select функция игнорирует значение тайм-аута. Используйте этот аргумент пары имя-значение, чтобы указать количество секунд ожидания выполнения SQL-запроса selectquery.
Пример: 'QueryTimeOut',15
data - Импортированные данныеИмпортированные данные, возвращенные в виде таблицы. Строки таблицы соответствуют строкам данных, возвращенным из выполненного SQL-запроса selectquery. Имена переменных таблицы определяют столбцы в SQL-запросе.
select функция возвращает данные даты или времени в виде символьных векторов в таблице. Эта функция возвращает текст в виде символьных векторов или массива ячеек символьных векторов. Строки не поддерживаются в таблице.
Если данных для импорта не существует, то data является пустой таблицей.
metadata - Сведения об импортированных данныхСведения об импортированных данных, возвращаемые в виде таблицы. Имена строк metadata являются именами переменных в data. Эта функция сохраняет каждое имя переменной в metadata таблица как массив ячеек. metadata имеет следующие имена переменных:
VariableType - Типы данных каждой переменной в data
MissingValue - Представление отсутствующего значения для каждой переменной в data
MissingRows - Вектор индексов строк, указывающих местоположения отсутствующих значений для каждой переменной в data
В этой таблице показано, как MATLAB представляет NULL значения в базе данных по умолчанию после импорта данных.
| Тип данных базы данных | Дефолт NULL Стоимость |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Булев |
|
Дата, время или текст |
|
Чтобы изменить NULL представление значения в импортированных данных, замените значение по умолчанию путем закольцовывания импортированных данных или с помощью векторной индексации.
Невозможно настроить отсутствующие значения в выходном аргументе data с использованием select функция. Индексировать в импортированные данные с помощью metadata вместо этого выходной аргумент.
Выходной аргумент data не поддерживает cell и struct типы данных. select функция поддерживает только table.
Используйте exec и fetch для полной функциональности при импорте данных. Для различий между select и эту альтернативу см. в разделе Импорт данных с помощью приложения Database Explorer или командной строки.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.