exponenta event banner

выполнить

Выполнение инструкции SQL с использованием реляционного подключения к базе данных

Описание

пример

execute(conn,sqlquery) выполняет SQL-запрос, содержащий не-SELECT Инструкция SQL с использованием соединения реляционной базы данных.

пример

execute(conn,pstmt) выполняет подготовленную инструкцию SQL, содержащую не-SELECT Инструкция SQL с использованием соединения реляционной базы данных.

Примеры

свернуть все

Используя соединение реляционной базы данных, создайте и выполните не--SELECT Инструкция SQL, удаляющая таблицу базы данных.

В этом примере используется база данных 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)

Импорт данных из patients таблица базы данных.

data = sqlread(conn,tablename);

Удалить patients таблицы базы данных с использованием execute функция.

sqlquery = ['DROP TABLE ' tablename];
execute(conn,sqlquery)

Закройте подключение к базе данных.

close(conn)

Работа с базой данных Microsoft ® SQL Server ®, запуск хранимой процедуры с использованием собственного подключения к базе данных ODBCconn.

Определение хранимой процедуры с именем create_table которая создает таблицу с именем test_table путем выполнения следующего кода. Эта процедура не имеет входных или выходных аргументов. Код предполагает, что используется база данных Microsoft SQL Server.

CREATE PROCEDURE create_table 
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

CREATE TABLE test_table
	 (
		CATEGORY_ID     INTEGER     IDENTITY PRIMARY KEY,
		CATEGORY_DESC   CHAR(50)    NOT NULL
        );
	
END
GO

Подключение к базе данных Microsoft SQL Server. Этот код предполагает, что вы подключаетесь к источнику данных с именем MS SQL Server с именем пользователя и паролем.

conn = database('MS SQL Server','username','pwd');

Вызов хранимой процедуры create_table.

execute(conn,'create_table')

Создайте инструкцию SQL, подготовленную для вставки данных из MATLAB ® в базу данных Microsoft ® SQL Server ® с использованием подключения к базе данных JDBC. Используйте INSERT Инструкция SQL для запроса SQL. Выполните подготовленную инструкцию SQL и просмотрите результаты.

Создайте подключение базы данных JDBC к базе данных SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль .

datasource = 'MSSQLServerJDBCAuth';
conn = database(datasource,'','');

Импорт данных из базы данных с помощью sqlread функция. Отображение последних нескольких строк данных в таблице базы данных inventoryTable.

tablename = "inventoryTable";
data = sqlread(conn,tablename);
tail(data,3)
ans=3×4 table
    productNumber    Quantity    Price         inventoryDate     
    _____________    ________    _____    _______________________

         11             567         0     {'2012-09-11 00:30:24'}
         12            1278         0     {'2010-10-29 18:17:47'}
         13            1700      14.5     {'2009-05-24 10:58:59'}

Создайте инструкцию SQL, подготовленную для вставки данных с помощью подключения к базе данных JDBC. Вопросительные знаки в INSERT Инструкция SQL указывает, что она является подготовленной инструкцией SQL. Эта инструкция вставляет данные из MATLAB в таблицу базы данных inventoryTable.

query = "INSERT INTO inventoryTable VALUES(?,?,?,?)";
pstmt = databasePreparedStatement(conn,query)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "INSERT INTO inventoryTable values(?,?,?,?)"
     ParameterCount: 4
     ParameterTypes: ["numeric"    "numeric"    "numeric"    "string"]
    ParameterValues: {[]  []  []  []}

pstmt является SQLPreparedStatement объект со следующими свойствами:

  • SQLQuery - Запрос подготовленной инструкции SQL

  • ParameterCount - Счетчик параметров

  • ParameterTypes - Типы параметров

  • ParameterValues - Значения параметров

Привязка значений параметров в подготовленной инструкции SQL. Выберите все параметры в подготовленной инструкции SQL, используя их числовые индексы. Укажите значения для привязки к номеру продукта, количеству, цене и дате инвентаризации. Сопоставление формата дат в базе данных. bindParamValues функция обновляет значения в ParameterValues имущества pstmt объект.

selection = [1 2 3 4];
values = {20,1000,55,"2019-04-25 00:00:00.000"};
pstmt = bindParamValues(pstmt,selection,values)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "INSERT INTO inventoryTable values(?,?,?,?)"
     ParameterCount: 4
     ParameterTypes: ["numeric"    "numeric"    "numeric"    "string"]
    ParameterValues: {[20]  [1000]  [55]  ["2019-04-25 00:00:00.000"]}

Вставка данных из MATLAB в базу данных с использованием связанных значений параметров. Выполнение SQL INSERT оператор с использованием execute функция.

execute(conn,pstmt)

Отображение вставленных данных в таблице базы данных inventoryTable. Последняя строка таблицы содержит вставленные данные.

tablename = "inventoryTable";
data = sqlread(conn,tablename);
tail(data,4)
ans=4×4 table
    productNumber    Quantity    Price           inventoryDate       
    _____________    ________    _____    ___________________________

         11             567         0     {'2012-09-11 00:30:24'    }
         12            1278         0     {'2010-10-29 18:17:47'    }
         13            1700      14.5     {'2009-05-24 10:58:59'    }
         20            1000        55     {'2019-04-25 00:00:00.000'}

Закройте подготовленную инструкцию SQL и подключение к базе данных.

close(pstmt)
close(conn)

Входные аргументы

свернуть все

Подключение к базе данных, указанное как ODBC connection объект или JDBC connection объект, созданный с помощью database функция.

Инструкция SQL, заданная как вектор символов или скаляр строки. Инструкция SQL может быть любой допустимойSELECT Инструкция SQL.

Инструкция SQL может быть хранимой процедурой, которая не возвращает результирующих наборов. Для хранимых процедур, возвращающих один или несколько результирующих наборов, используйте fetch функция. Для процедур, возвращающих выходные аргументы, используйте runstoredprocedure функция.

Сведения о языке запросов SQL см. в руководстве по SQL.

Пример: 'DROP TABLE patients'

Типы данных: char | string

Подготовленная инструкция SQL, указанная как SQLPreparedStatement объект.

Представлен в R2018b