mysql联合查询视图实现方法

mysql教程联合查询视图实现方法

mysql>
mysql> create table employee(
    ->     id            int,
    ->     first_name    varchar(15),
    ->     last_name     varchar(15),
    ->     start_date    date,
    ->     end_date      date,
    ->     salary        float(8,2),
    ->     city          varchar(10),
    ->     description   varchar(15)
    -> );
query ok, 0 rows affected (0.02 sec)

mysql>
mysql> create table job (
    ->   id         int,
    ->   title      varchar(20)
    -> );
query ok, 0 rows affected (0.06 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->              values (1,'jason',    'martin',  '19960725',  '20060725', 1234.56, 'toronto',  'programmer');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->               values(2,'alison',   'mathews',  '19760321', '19860221', 6661.78, 'vancouver','tester');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->               values(3,'james',    'smith',    '19781212', '19900315', 6544.78, 'vancouver','tester');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->               values(4,'celia',    'rice',     '19821024', '19990421', 2344.78, 'vancouver','manager');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->               values(5,'robert',   'black',    '19840115', '19980808', 2334.78, 'vancouver','tester');
query ok, 1 row affected (0.01 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->               values(6,'linda',    'green',    '19870730', '19960104', 4322.78,'new york',  'tester');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->               values(7,'david',    'larry',    '19901231', '19980212', 7897.78,'new york',  'manager');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> insert into employee(id,first_name, last_name, start_date, end_date,   salary,  city,       description)
    ->               values(8,'james',    'cat',     '19960917',  '20020415', 1232.78,'vancouver', 'tester');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> insert into job (id, title) values (1,'tester');
query ok, 1 row affected (0.01 sec)

mysql> insert into job (id, title) values (2,'accountant');
query ok, 1 row affected (0.00 sec)

mysql> insert into job (id, title) values (3,'developer');
query ok, 1 row affected (0.00 sec)

mysql> insert into job (id, title) values (4,'coder');
query ok, 1 row affected (0.00 sec)

mysql> insert into job (id, title) values (5,'director');
query ok, 1 row affected (0.00 sec)

mysql> insert into job (id, title) values (6,'mediator');
query ok, 1 row affected (0.00 sec)

mysql> insert into job (id, title) values (7,'proffessor');
query ok, 1 row affected (0.00 sec)

mysql> insert into job (id, title) values (8,'programmer');
query ok, 1 row affected (0.02 sec)

mysql> insert into job (id, title) values (9,'developer');
query ok, 1 row affected (0.00 sec)

mysql>
mysql> select * from job;
+------+------------+
| id   | title      |
+------+------------+
|    1 | tester     |
|    2 | accountant |
|    3 | developer  |
|    4 | coder      |
|    5 | director   |
|    6 | mediator   |
|    7 | proffessor |
|    8 | programmer |
|    9 | developer  |
+------+------------+
9 rows in set (0.00 sec)

mysql> select * from employee;
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
|    1 | jason      | martin    | 1996-07-25 | 2006-07-25 | 1234.56 | toronto   | programmer  |
|    2 | alison     | mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | vancouver | tester      |
|    3 | james      | smith     | 1978-12-12 | 1990-03-15 | 6544.78 | vancouver | tester      |
|    4 | celia      | rice      | 1982-10-24 | 1999-04-21 | 2344.78 | vancouver | manager     |
|    5 | robert     | black     | 1984-01-15 | 1998-08-08 | 2334.78 | vancouver | tester      |
|    6 | linda      | green     | 1987-07-30 | 1996-01-04 | 4322.78 | new york  | tester      |
|    7 | david      | larry     | 1990-12-31 | 1998-02-12 | 7897.78 | new york  | manager     |
|    8 | james      | cat       | 1996-09-17 | 2002-04-15 | 1232.78 | vancouver | tester      |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
8 rows in set (0.00 sec)

mysql>
mysql>
mysql> create algorithm = temptable view myview
    -> (id, first_name, title) as
    -> select o.id, o.first_name, c.title
    -> from job c, employee o
    -> where o.id = c.id;
query ok, 0 rows affected (0.00 sec)

mysql>
mysql> select * from myview;
+------+------------+------------+
| id   | first_name | title      |
+------+------------+------------+
|    1 | jason      | tester     |
|    2 | alison     | accountant |
|    3 | james      | developer  |
|    4 | celia      | coder      |
|    5 | robert     | director   |
|    6 | linda      | mediator   |
|    7 | david      | proffessor |
|    8 | james      | programmer |
+------+------------+------------+
8 rows in set (0.00 sec)

mysql>
mysql> drop view myview;
query ok, 0 rows affected (0.00 sec)

mysql>
mysql>
mysql>
mysql>
mysql> drop table job;
query ok, 0 rows affected (0.02 sec)

mysql> drop table employee;
query ok, 0 rows affected (0.00 sec)

mysql>

时间: 2024-08-30 21:27:30

mysql联合查询视图实现方法的相关文章

MySQL联合查询语法内联、左联、右联、全联

MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户id,用户名,密码)    userid   username  password 1   jack jackpwd    2   owen   owenpwd    T2表结构(用户id,用户积分,用户等级)    userid(int)   jifen   dengji      1    20   3        3    50    6    第一:内联( inner join ) 如

mysql慢查询的分析方法

本文主要介绍的是MySQL慢查询分析方法,前一段日子,我曾经设置了一次记录在MySQL数据库中对慢于1秒钟的SQL语句进行查询.想起来有几个十分设置的方法,有几个参数的名称死活回忆不起来了,于是重新整理一下,自己做个笔记. 对于排查问题找出性能瓶颈来说,最容易发现并解决的问题就是MySQL慢查询以及没有得用索引的查询. OK,开始找出MySQL中执行起来不"爽"的SQL语句吧. MySQL慢查询分析方法一: 这个方法我正在用,呵呵,比较喜欢这种即时性的. MySQL5.0以上的版本可以

实例讲解MySQL联合查询

sql内联语法基础语法(inner join) SELECT * FROM 表1 inner join 表2 on 表1.userid=表2.userid sql内联语法说明:上面的语句就是查询表1和表2两个表,只要两个表中的userid字段相同的话就拼成一行显示出来. 注:以上语法同等select * from 表1,表2 where 表1.userid=表2.userid,而使用sql内联的话,将会提高很多效率. sql左联语法基础语法(left outer join) SELECT * F

MySQL慢查询 mysqldumpslow分析方法

mysql教程优化的第一步应该做的就是排查问题,找出瓶颈,而通常情况下的瓶颈和问题都需要通过观察mysql的运行情况来进行分析,<查看mysql运行状况>这篇文章罗列了一些常用的查看mysql运行信息的方式. 而对于大多数的程序员来说,最容易发现并解决的问题就是mysql的慢查询或者没有利用索引的查询,所以这里主要给大家介绍如何利用官方的mysqldumps教程low工具方便的查看这些信息.如何打开mysql的慢查询,请点击 最简单的方式,在php教程myadmin直接点击状态查看,详细如下图

Mysql联合查询UNION和UNION ALL的使用介绍_Mysql

一.UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行.UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同.SQL UNION 语法: 复制代码 代码如下: SELECT column_name FROM table1UNIONSELECT column_name FROM table2 注释:默认地,UNION 操作符选取不同的值.如

Mysql联合查询UNION和Order by同时使用报错问题的解决办法_Mysql

因此,常常出现这样的错误 复制代码 代码如下: select * from [IND] where INDID>10unionselect * from [IND] where INDID<9 目前为止,还没有出现问 之后,也许有人会用到类似的查询 复制代码 代码如下: select * from [IND] where INDID>10 order by INDID descunionselect * from [IND] where INDID<9 order by INDID

Mysql join查询的优化方法

Mysql4.1开始支持SQL的子查询.这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中.使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,同时也可以避免事务或者表锁死,并且写起来也很容易.但是,有些情况下,子查询可以被更有效率的连接JOIN替代. join的实现原理 join的实现是采用Nested Loop Join算法,就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查

MySQL慢查询日志配置方法详解

查看 MySQL 服务器的慢查询状态是否开启:     1 show variables like '%slow%';   slow_launch_time,表示超过2秒定义为慢查询 log_slow_queries 和 slow_query_log,表示慢查询已经开启 slow_query_log_file,表示慢查询日志的文件的位置   在 mysql 的配置文件 my.cnf 或 my.ini 的 [mysqld]下加入慢查询的配置语句的设置即可开启慢查询状态:   1 #定义超过指定时间

mysql字符集查询与设置方法

说到底mysql 乱码的根源是的 mysql 字符集设置不当的问题. 有关查看 mysql 字符集的命令. 包括查看 mysql 数据库服务器字符集.查看 mysql 数据库字符集,以及数据表和字段的字符集.当前安装的 mysql 所支持的字符集等. 一.查看 mysql 数据库服务器和数据库字符集. mysql> show variables like '%char%';  +--------------------------+--------------------------------