Mysql——DML语言、视图

DML(数据管理语言)

插入数据

#插入指定的值
	INSERT INTO 表名(要添加的列段) VALUES (列段对应值);
#从其它表中拷贝数据
	INSERT INTO 要插入数据的表 
	SELECT * FROM 目标表
	WHERE 条件筛选;

更改数据

#需要更新的数据。
	UPDATESET id=70#对应列=值
	WHERE id = 113;#筛选
#一次修改多表的数据
	UPDATE1 bo
	INNER JOIN2 b 
	ON bo.1=b.2SET b.22='119',bo.12=1000
	WHERE b.2='张无忌';#筛选

删除数据

#删除指定数据
	DELETE FROMWHERE='值';#筛选
#一次删除多表的数据
	DELETE b FROM1 b
	INNER JOIN2 bo ON b.1= bo.2WHERE bo.2='张无忌';

视图

含义:虚拟表,和普通表一样使用

创建视图

#语法:
create view 视图名
as
查询语句;

视图的修改

#方式一:
	create or replace view  视图名
	as
	查询语句;
#方式二:
	alter view 视图名
	as 
	查询语句;

删除、查看视图

#删除视图
DROP VIEW 视图名,视图名,...;
#查看视图
DESC myv3;
SHOW CREATE VIEW myv3;

视图的更新

#1.插入
INSERT INTO myv1 VALUES('张飞','[email protected]');
#2.修改
UPDATE myv1 SET last_name = '张无忌' WHERE last_name='张飞';
#3.删除
DELETE FROM myv1 WHERE last_name = '张无忌';

不允许更新的视图

#①包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union all
	CREATE OR REPLACE VIEW myv1
	AS
	SELECT MAX() m,FROMGROUP BY;
#②常量视图
	CREATE OR REPLACE VIEW myv2
	AS
	SELECT 'john' NAME;
#③Select中包含子查询
	CREATE OR REPLACE VIEW myv3
	AS
	SELECT,(SELECT MAX() FROM) 最高工资 FROM;
#④join
	CREATE OR REPLACE VIEW myv4
	AS
	SELECT,FROM 表 e
	JOIN 表 d
	ON e.=d.;
#⑤from一个不能更新的视图
	CREATE OR REPLACE VIEW myv5
	AS
	SELECT * FROM myv3;
#⑥where子句的子查询引用了from子句中的表
	CREATE OR REPLACE VIEW myv6
	AS
	SELECTFROMWHEREIN(
		SELECTFROMWHEREIS NOT NULL
	);

猜你喜欢

转载自blog.csdn.net/ZhiCun_java/article/details/106835057