Linux命令:MySQL系列之六视图/mysql -e

2017-05-05 14:46


视图VIEW命令简介:

     VIEW视图就是存储下来的SELECT语句数据

1.创建视图命令格式:

   CREATE

    [OR REPLACE]

    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

    [DEFINER = { user | CURRENT_USER }]

    [SQL SECURITY { DEFINER | INVOKER }]

    VIEW view_name [(column_list)]

    AS select_statement

    [WITH [CASCADED | LOCAL] CHECK OPTION]

  格式:CREATE VIEW view_name AS select_statement 创建一个名为view_name

      视图,视图的内容,是select语句查询出来的内容。

Usage: CREATE VIEW sct AS SELECT Name,Cname,Tname FROM students,courses,teachers WHERE

students.CID1=courses.CID AND courses.CID=teachers.TID;

把查询students,courses,teachers表中CID相等的数据存储在sct视图中。


2.命令功能:

对数据库的SELECT数据进行存储为视图,视图也是相当于一个虚表,视图存储的SELECT语句中的表叫基表,视图不能修改,只能基于基表进行修改。所以一般不建议MySQL创建视图。

3.命令参数:

DISTING 独特的,不重复的

SELECT [DISTINCT] * FROM tb_name WHERE qualification;

从tb_name表中选择符合条件的独特的不重复 的条目。

4. 实例

  1.查看所创建的表是如何创建的;

mysql> SHOW CREATE TABLE class \G;

*************************** 1. row ***************************

       Table: class

Create Table: CREATE TABLE `class` (

  `ID` int(11) NOT NULL AUTO_INCREMENT,

  `Name` char(20) NOT NULL,

  `Age` tinyint(4) NOT NULL,

  `Gender` varchar(10) NOT NULL,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gbk

1 row in set (0.00 sec)


ERROR: 

No query specified


  5.直接不登录mysql客户端,实现修改mysql数据库中的数据

[root@lamp ~]# mysql -e 'CREATE DATABASE edb;' 直接建立数据库edb

[root@lamp ~]# mysql -e 'SHOW DATABASES;'

+--------------------+

| Database           |

+--------------------+

| information_schema |

| edb                |

| hellodb            |

| mydb               |

| mysql              |

| performance_schema |

| students           |

| test               |

| testdb             |

+--------------------+

[root@lamp ~]# mysql -e 'DROP DATABASE edb;' 直接删除edb数据库

[root@lamp ~]# mysql -e 'SHOW DATABASES;'       

+--------------------+

| Database           |

+--------------------+

| information_schema |

| hellodb            |

| mydb               |

| mysql              |

| performance_schema |

| students           |

| test               |

| testdb             |

+--------------------+

[root@lamp ~]# mysql -e 'SELECT * FROM students.class;'#不登录mysql客户端,直接查询students数据库中class表中的数据。

+----+-------------+-----+--------+

| ID | Name        | Age | Gender |

+----+-------------+-----+--------+

|  1 | Yang Guo    |  22 |        |

|  2 | Guo Jing    |  46 |        |

|  3 | Xiao Longnv |  18 |        |

|  4 | Huang Rong  |  40 |        |

+----+-------------+-----+--------+