Выполнение SQL- SELECT
оператор и импорт данных в MATLAB
возвращает импортированные данные из подключения к базе данных data
= select(conn
,selectquery
)conn
для заданного SELECT SQL
оператор 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
функция. Database 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
функция. Database 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 строк данных и ожидает 5 секунд, чтобы выполнить SQL- 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.