mysqlビューの管理ビュー(削除・変更)
18225 ワード
mysqlは、ビュー定義を表示するための
ビューの定義を表示するには、
以上のビューからデータをクエリーし、次の結果を得ます.
ビューの定義を表示するには、
また、ノートなどの純粋なテキストエディタを使用して、データベースフォルダ内のビュー定義ファイルを開くこともできます.たとえば、
次の文は、
変更を検証するには、
修正時にビューがすでに存在する場合、mysqlはビューのみを変更することに注意してください.ビューが存在しない場合、mysqlは新しいビューを作成します.では、上記のsql実行の結果を見てみましょう.
職階(
上記のクエリ文を実行すると、次のようにデータの列が追加されます.
では、
SHOW CREATE VIEW
文を提供します.構文構造を見てみましょう.SHOW CREATE VIEW [database_name].[view_ name];
ビューの定義を表示するには、
SHOW CREATE VIEW
句の後にビューの名前を指定する必要があります.まず、employees
表に基づいて、企業の組織構造を表示するための簡単なビューを作成し、プレゼンテーションを行います.CREATE VIEW organization AS
SELECT
CONCAT(E.lastname, E.firstname) AS Employee,
CONCAT(M.lastname, M.firstname) AS Manager
FROM
employees AS E
INNER JOIN
employees AS M ON M.employeeNumber = E.ReportsTo
ORDER BY Manager;
以上のビューからデータをクエリーし、次の結果を得ます.
mysql> SELECT * FROM organization;
+------------------+------------------+
| Employee | Manager |
+------------------+------------------+
| BondurLoui | BondurGerard |
| CastilloPamela | BondurGerard |
| JonesBarry | BondurGerard |
| HernandezGerard | BondurGerard |
....... many many .......
| KatoYoshimi | NishiMami |
| KingTom | PattersonWilliam |
| MarshPeter | PattersonWilliam |
| FixterAndy | PattersonWilliam |
+------------------+------------------+
24 rows in set
ビューの定義を表示するには、
SHOW CREATE VIEW
文を使用します.SHOW CREATE VIEW organization;
また、ノートなどの純粋なテキストエディタを使用して、データベースフォルダ内のビュー定義ファイルを開くこともできます.たとえば、
organization
ビュー定義を開くには、データベースフォルダの下のdataフォルダにデータベースフォルダを見つけて、ビュー名に従って.frm
ファイルを探します.ALTER VIEW
とCREATE OR REPLACE VIEW
でビューを変更してみましょう.まずalertview構文を見てみましょう.ALTER
[ALGORITHM = {MERGE | TEMPTABLE | UNDEFINED}]
VIEW [database_name]. [view_name]
AS
[SELECT statement]
次の文は、
email
列を追加して、organization
ビューを変更する方法を示します.ALTER VIEW organization
AS
SELECT CONCAT(E.lastname,E.firstname) AS Employee,
E.email AS employeeEmail,
CONCAT(M.lastname,M.firstname) AS Manager
FROM employees AS E
INNER JOIN employees AS M
ON M.employeeNumber = E.ReportsTo
ORDER BY Manager;
変更を検証するには、
organization
ビューからデータをクエリーできます.CREATE OR REPLACE VIEW v_contacts AS
SELECT
firstName, lastName, extension, email
FROM
employees;
--
SELECT * FROM v_contacts;
修正時にビューがすでに存在する場合、mysqlはビューのみを変更することに注意してください.ビューが存在しない場合、mysqlは新しいビューを作成します.では、上記のsql実行の結果を見てみましょう.
+-----------+-----------+-----------+--------------------------------+
| firstName | lastName | extension | email |
+-----------+-----------+-----------+--------------------------------+
| Diane | Murphy | x5800 | [email protected] |
| Mary | Hill | x4611 | [email protected] |
| Jeff | Firrelli | x9273 | [email protected] |
| William | Patterson | x4871 | [email protected] |
| Gerard | Bondur | x5408 | [email protected] |
| Anthony | Bow | x5428 | [email protected] |
| Leslie | Jennings | x3291 | [email protected] |
.............. many many ..................................
| Martin | Gerard | x2312 | [email protected] |
| Lily | Bush | x9111 | [email protected] |
| John | Minsu | x9112 | [email protected] |
+-----------+-----------+-----------+--------------------------------+
25 rows in set
職階(
jobtitle
)列をv_contacts
ビューに追加するには、次の文を使用します.CREATE OR REPLACE VIEW v_contacts AS
SELECT
firstName, lastName, extension, email, jobtitle
FROM
employees;
--
SELECT * FROM v_contacts;
上記のクエリ文を実行すると、次のようにデータの列が追加されます.
+-----------+-----------+-----------+--------------------------------+----------------------+
| firstName | lastName | extension | email | jobtitle |
+-----------+-----------+-----------+--------------------------------+----------------------+
| Diane | Murphy | x5800 | dmurphy@yiibai.com | President |
| Mary | Hill | x4611 | mary.hill@yiibai.com | VP Sales |
| Jeff | Firrelli | x9273 | jfirrelli@yiibai.com | VP Marketing |
................... ....................................................
| Yoshimi | Kato | x102 | ykato@gmail.com | Sales Rep |
| Martin | Gerard | x2312 | mgerard@gmail.com | Sales Rep |
| Lily | Bush | x9111 | lilybush@yiiibai.com | IT Manager |
| John | Minsu | x9112 | johnminsu@classicmodelcars.com | SVP Marketing |
+-----------+-----------+-----------+--------------------------------+----------------------+
25 rows in set
では、
DROP VIEW
文を使用してビューを削除し、構文構造を見てみましょう.DROP VIEW [IF EXISTS] [database_name].[view_name]
sql ,IF EXISTS
は、 しないビューを するエラーを するためにビューが するかどうかを できる のオプションの です.organization
ビューを します.
DROP VIEW IF EXISTS organization;
ビューを または するたびにmysqlは、ビュー ファイルを/database_name/arc/
ディレクトリにバックアップすることに してください.ビューを って または した は、/database_name/arc/
フォルダからバックアップを できます.
はい、 の はここまでです.
いい じだったら、 よろしくね..