execute

Выполните SQL-оператор с помощью связи реляционной базы данных

Описание

пример

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

пример

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

Примеры

свернуть все

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

Этот пример использует базу данных Microsoft® SQL Server® Version 11.00.2100 и Драйвер Microsoft SQL Server 11.00.5058.

Создайте соединение с базой данных к базе данных 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® запустите хранимую процедуру при помощи нативного соединения с базой данных ODBC conn.

Задайте хранимую процедуру под названием 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)

Входные параметры

свернуть все

Соединение с базой данных в виде connection объект создается с database функция.

SQL-оператор в виде вектора символов или строкового скаляра. SQL-оператор может быть любым допустимым non-SELECT SQL-оператор.

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

Для получения информации о языке SQL-запроса см. Пример по SQL.

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

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

SQL подготовил оператор в виде SQLPreparedStatement объект.

Введенный в R2018b