8.1.11.1 產生 SQL 語句

MySQL Workbench 可用於產生 SQL,最常見的是作為 INSERT 語句或 SELECT 語句。

以下是在 MySQL Workbench 中產生 SQL 語句的常見方法。

注意

所有 MySQL Workbench 的匯出選項都包含匯出為 SQL 的選項。

在結構描述視圖中,於 schema 上按一下滑鼠右鍵後的上下文選單選項,以 sakila 欄位為例。

建立語句

CREATE DATABASE `sakila` /*!40100 DEFAULT CHARACTER SET latin1 */;

名稱

`sakila`

在結構描述視圖中,於 table 上按一下滑鼠右鍵後的上下文選單選項,以 sakila.actor 欄位為例

名稱(短)

`actor`

名稱(長)

`sakila`.`actor`

選取所有語句

SELECT `actor`.`actor_id`,
    `actor`.`first_name`,
    `actor`.`last_name`,
    `actor`.`last_update`
FROM `sakila`.`actor`;

選取參考

SET @actor_id_to_select = <{row_id}>;
SELECT film_actor.*
    FROM film_actor, actor
    WHERE `actor`.`actor_id` = `film_actor`.`actor_id`
          AND actor.actor_id = @actor_id_to_select;
SELECT actor.*
    FROM actor
    WHERE actor.actor_id = @actor_id_to_select;

插入語句

INSERT INTO `sakila`.`actor`
  (`actor_id`,
  `first_name`,
  `last_name`,
  `last_update`)
VALUES
  (<{actor_id: }>,
  <{first_name: }>,
  <{last_name: }>,
  <{last_update: CURRENT_TIMESTAMP}>);

更新語句

UPDATE `sakila`.`actor`
SET
`actor_id` = <{actor_id: }>,
`first_name` = <{first_name: }>,
`last_name` = <{last_name: }>,
`last_update` = <{last_update: CURRENT_TIMESTAMP}>
WHERE `actor_id` = <{expr}>;

刪除語句

DELETE FROM `sakila`.`actor`
WHERE <{where_expression}>;

刪除參考

-- All objects that reference that row (directly or indirectly)
-- will be deleted when this snippet is executed.
-- To preview the rows to be deleted, use Select Row Dependencies
START TRANSACTION;
-- Provide the values of the primary key of the row to delete.
SET @actor_id_to_delete = <{row_id}>;

DELETE FROM film_actor
    USING film_actor, actor
    WHERE `actor`.`actor_id` = `film_actor`.`actor_id`
          AND actor.actor_id = @actor_id_to_delete;
DELETE FROM actor
    USING actor
    WHERE actor.actor_id = @actor_id_to_delete;
COMMIT;

建立語句

CREATE TABLE `actor` (
  `actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `first_name` varchar(45) NOT NULL,
  `last_name` varchar(45) NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`actor_id`),
  KEY `idx_actor_last_name` (`last_name`)
) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8;

在結構描述視圖中,於 column 上按一下滑鼠右鍵後的上下文選單選項,以 sakila.actor.first_name 欄位為例

名稱(短)

`first_name`

名稱(長)

`actor`.`first_name`

選取欄位語句

SELECT `first_name` FROM `sakila`.`actor`;

插入語句

INSERT INTO `sakila`.`actor`
(`first_name`)
VALUES
(<{first_name}>);

更新語句

UPDATE `sakila`.`actor`
SET
`first_name` = <{first_name}>
WHERE <{where_expression}>;

在結果視圖中,於 field 上按一下滑鼠右鍵後的上下文選單選項,以 sakila.actor 表格中的記錄 #1 為例

複製列(含名稱)

# actor_id, first_name, last_name, last_update
'1', 'PENELOPE', 'GUINESS', '2006-02-15 04:34:33'

複製列(含名稱,不加引號)

# actor_id, first_name, last_name, last_update
1, PENELOPE, GUINESS, 2006-02-15 04:34:33

複製列(Tab 分隔)

1	PENELOPE	GUINESS	2006-02-15 04:34:33

複製欄位

'GUINESS'