ビューの削除
23320 ワード
#
/*
: , ( )
, SQL
:
create view
as
select
from 1
【 】join 2
on
【where 】
。。。
;
:
1、 SQL : 、distinct、group by、having、union、union all
2、
3、select
4、join( 92 ,)
5、from
6、where from (from、where )
:
view ( ) ,
table
*/
# 、
-- -------------------------------------------------------
# 1、
-- ---------- -------------
SELECT
`studentname`,
`majorname`
FROM
`student` AS s
INNER JOIN `major` AS m
ON s.`majorid` = m.`majorid`
WHERE s.`studentname` LIKE ' %' ;
-- ---------- -----------------
CREATE VIEW s_m #
AS
SELECT `studentname`,`majorname`
FROM `student` AS s
INNER JOIN `major` AS m
ON s.`majorid`=m.`majorid`;
SELECT `studentname`,`majorname`
FROM s_m
WHERE `studentname` LIKE ' %'; #
-- ----------------------------------------------------
# 2、 a ,
#
CREATE VIEW mydeg
AS
SELECT `last_name`,`department_name`,`job_title`
FROM `departments` AS d
INNER JOIN `employees` AS e ON d.`department_id`=e.`department_id`
INNER JOIN `jobs` AS j ON e.`job_id`=j.`job_id`;
#
SELECT `last_name`,`department_name`,`job_title`
FROM mydeg
WHERE `last_name` LIKE '%a%';
-- --------------------------------------------------
# 2、
-- ----------- --------------
SELECT av.`department_id`,`grade_level`
FROM `job_grades` AS jg
INNER JOIN(
SELECT `department_id`,AVG(`salary`) AS avs
FROM `employees`
GROUP BY `department_id`) AS av
ON av.avs BETWEEN jg.`lowest_sal` AND jg.`highest_sal`;
-- ----------- -----------------
#
CREATE VIEW myv2
AS
SELECT `department_id`,AVG(`salary`) AS avs
FROM `employees`
GROUP BY `department_id`;
#
SELECT myv2.`avs`,g.`grade_level`
FROM myv2
INNER JOIN `job_grades` AS g
ON myv2.`avs` BETWEEN g.`lowest_sal` AND g.`highest_sal`;
-- ---------------------------------------------
# 3、
SELECT * FROM myv2
WHERE avs=(SELECT MIN(avs) FROM myv2); # +
SELECT d.*,myv2.`avs`
FROM myv2
INNER JOIN `departments` AS d
ON d.`department_id`=myv2.`department_id`
WHERE avs=(SELECT MIN(avs) FROM myv2);
-- ------------------------------------------
SELECT * FROM myv2 ORDER BY avs LIMIT 1; # +
SELECT d.*,myv2.`avs`
FROM myv2
INNER JOIN `departments` AS d
ON d.`department_id`=myv2.`department_id`
ORDER BY avs LIMIT 1;
-- ---------------------------------------------------------
# 4、
# ------- ---------
CREATE VIEW myv3
AS
SELECT * FROM myv2 ORDER BY avs LIMIT 1;
# ------- -----------
SELECT d.`department_name`,m.`avs`
FROM myv3 AS m
INNER JOIN `departments` AS d
ON d.`department_id`=m.`department_id`;
# 、
-- -------------------------------------------------------
/*
:
create or replace view
as
;
*/
-- -------- --------------
CREATE OR REPLACE VIEW myv3
AS
SELECT AVG(`salary`),`job_id`
FROM `employees`
GROUP BY `job_id`;
-- ----------------------------------------------------------
/*
:
alter view
as
;
*/
-- -------- --------------
ALTER VIEW myv3
AS
SELECT * FROM `job_grades`;
SELECT * FROM myv3;
# 、
-- -------------------------------------------------------
/*
:
drop view 1, 2......;
*/
DROP VIEW myv1,myv2,myv3;
# 、
-- --------------------------------------------------------
#1、desc
DESC myv3;
#2、show
SHOW CREATE VIEW myv3;
# 、
-- --------------------------------------------------------
CREATE OR REPLACE VIEW myv1
AS
SELECT `last_name`,`email`,salary*12*(1+IFNULL(commission_pct,0)) AS "annual salary"
FROM `employees`;
CREATE OR REPLACE VIEW myv1
AS
SELECT `last_name`,`email`
FROM `employees`;
-- ---------------------------------
#1、
INSERT INTO myv1 VALUES(' ','[email protected]');
-- ---------------------------------
#2、
UPDATE myv1 SET`last_name`=' ' WHERE `last_name`=' ';
-- ---------------------------------
#3、
DELETE FROM myv1 WHERE `last_name`=' ';
-- ---------------------------------
SELECT * FROM myv1;
SELECT * FROM `employees`;