Следующие примеры показывают, как создать запросы с помощью даты, текста, переменной MATLAB® и специальных символов. Создайте эти запросы с помощью командной строки.
Этот пример показывает, как отформатировать дату в SQL-запросе.
Чтобы записать SQL-оператор, который выбирает данные из вашей базы данных с помощью даты, отформатируйте дату согласно спецификациям базы данных. Консультируйтесь со своей документацией базы данных для правильного форматирования. Этот пример показывает форматирование даты для базы данных Oracle®.
Создайте соединение с базой данных conn
к базе данных Oracle с помощью драйвера ODBC. Следующий код принимает, что вы соединяете с источником данных под названием Oracle
с именем пользователя username
и пароль pwd
.
conn = database('Oracle','username','pwd');
Создайте SQL-запрос sqlquery
, который содержит полный запрос. Выполните запрос с помощью conn
. Следующий код использует таблицу TEST_TYPES
и столбцы TEST_DT1
и TEST_DT2
. Пункт WHERE
содержит код SQL Oracle для фильтрации записей на основе даты. Тип данных столбца TEST_DT1
является типом даты Oracle. Отфильтруйте записи для дат после 9 июня 2013 с помощью столбца TEST_DT1
. Чтобы преобразовать дату в тип даты Oracle, введите дату в функцию Oracle to_date
. Для даты '2013-06-09'
задайте формат как 'YYYY-MM-DD'
, один из форматов даты в Oracle. Консультируйтесь со своей документацией Oracle для альтернатив.
Импортируйте данные с помощью SQL-запроса и функции fetch
, и отобразите строки результатов. Запрос возвращает записи, где дата в столбце TEST_DT1
после 9 июня 2013.
sqlquery = ['SELECT * FROM TEST_TYPES ' ... 'WHERE TEST_DT1 > to_date(''2013-06-09'',''YYYY-MM-DD'')']; data = fetch(conn,sqlquery)
data = 2×2 table TEST_DT1 TEST_DT2 ____________________________ ____________________________ '2013-06-10 15:11:00.000000' '2013-06-10 15:11:22.500000' '2013-06-10 15:13:00.000000' '2013-06-10 15:13:21.870003'
Закройте соединение с базой данных.
close(conn)
Этот пример показывает, как включать текст в ваш SQL-запрос с помощью базы данных Microsoft® Access™.
Создайте соединение с базой данных conn
к Базе данных Microsoft Access с помощью драйвера ODBC. Следующий код принимает, что вы соединяетесь с источником данных под названием dbdemo
с пустым именем пользователя и паролем.
conn = database('dbdemo','','');
Выберите все записи из таблицы producttable
с описанием продукта 'Slinky'
. Создайте SQL-запрос sqlquery
, который встраивает описание продукта в SQL-запрос при помощи дополнительной пары одинарных кавычек.
sqlquery = ['SELECT * FROM producttable ' ... 'where productdescription = ''Slinky'''];
Или, можно записать SQL-запрос как конкатенацию двух векторов символов с помощью скобок: ['SELECT * FROM producttable where productdescription = ' '''Slinky''']
Выполните SQL-запрос с помощью функции fetch
, и импортируйте и отобразите данные. data
содержит запись продукта с описанием продукта 'Slinky'
.
data = fetch(conn,sqlquery)
data = 1×5 table productnumber stocknumber suppliernumber unitcost productdescription _____________ ___________ ______________ ________ __________________ 3 4.01e+05 1009 17 'Slinky'
Закройте соединение с базой данных.
close(conn)
Этот пример показывает, как включать переменную MATLAB в ваш SQL-запрос и использует базу данных Microsoft SQL Server®. Чтобы создать связь с этой базой данных, необходимо сконфигурировать источник данных JDBC. Для получения дополнительной информации смотрите, что configureJDBCDataSource
функционирует.
Создайте соединение с базой данных conn
к базе данных Microsoft SQL Server с помощью источника данных JDBC без аутентификации операционной системы. Задайте имя источника данных, имя пользователя и пароль.
datasource = "dbname"; username = "username"; password = "pwd"; conn = database(datasource,username,password);
Чтобы выбрать все данные о счете для первого продукта, создайте переменную MATLAB productID
и установите его на первый номер продуктов.
productId = 1;
Выберите все записи из таблицы invoice
, где номер продуктов равен первому продукту. Создайте SQL-запрос sqlquery
, который конкатенирует SQL-запрос с переменной MATLAB productID
при помощи скобок. productID
является числовой переменной, но SQL-запрос является вектором символов. Поэтому преобразуйте номер в вектор символов при помощи функции num2str
.
sqlquery = ['SELECT * FROM invoice ' ... 'where ProductNumber = ' num2str(productId)];
Выполните SQL-запрос с помощью функции fetch
, и импортируйте и отобразите данные. data
содержит запись данных счета для первого продукта.
data = fetch(conn,sqlquery)
data = 1×5 table InvoiceNumber InvoiceDate ProductNumber Paid Receipt _____________ _________________________ _____________ _____ _________________ 2101 '2010-08-01 00:00:00.000' 1 false [1948410×1 uint8]
Закройте соединение с базой данных.
close(conn)
Этот пример показывает, как записать SQL-запрос для имен таблиц и имен столбцов со специальными символами. Эти символы требуют символов ESC использования, которые характерны для вашей базы данных. Консультируйтесь со своей документацией базы данных для правильных символов ESC. Этот пример использует базу данных Microsoft SQL Server. Чтобы создать связь с этой базой данных, необходимо сконфигурировать источник данных JDBC. Для получения дополнительной информации смотрите, что configureJDBCDataSource
функционирует.
Создайте соединение с базой данных conn
к базе данных Microsoft SQL Server с помощью источника данных JDBC без аутентификации операционной системы. Задайте имя источника данных, имя пользователя и пароль.
datasource = "dbname"; username = "username"; password = "pwd"; conn = database(datasource,username,password);
Этот пример выбирает все данные в столбце, имя которого содержит пробелы. Этот столбец находится в таблице, имя которой также содержит пробелы. Пробел является специальным символом. Чтобы выбрать данные из этого столбца, необходимо заключить пробелы с символами ESC так, чтобы SQL-запрос выполнился успешно. Скобки являются символами ESC для базы данных Microsoft SQL Server.
Создайте SQL-запрос, который содержит имя столбца и имя таблицы, заключенное в скобках.
sqlquery = 'SELECT [column with spaces] FROM [table with spaces]';
Выполните SQL-запрос с помощью функции fetch
, и импортируйте и отобразите данные.
data = fetch(conn,sqlquery)
data = 2×1 table Data ___________ 'some text' 'some text'
Закройте соединение с базой данных.
close(conn)
close
| database
| fetch
| num2str