MySQL|表的复制、存储过程、触发器、视图、函数、数据库权限
1.表的复制
1.1 复制整张表
格式:create table 表名 as select * from 另一张表 where 1=1;
1.2 复制字段
格式:create table 表名 as select * from 另一张表 where 1=2;
1.3 复制部分字段
格式:create table 表名 as select 表名.字段名,表名.字段名2 from 另一张表 where 1=2;
1.4 将自查询结果复制到表格中
格式:create table 表名 as 子查询
2.存储过程
2.1 定义
存储过程是数据库中的一个对象,存储在服务端,用来封装多条SQL语句且带有逻辑性,可以实现一个功能,由于他在创建时,就已经对SQL进行了编译,所以执行效率高,而且可以重复调用,类似与我们Java中的方法
2.2 语法
DELIMITER $$
CREATE
PROCEDURE `performance_schema`.`myTestPro`()
BEGIN
END$$
DELIMITER ;
- 创建存储过程需要管理员分配权限
- END $$ : 用 $ $ 表示mysql语句结束,过程结束后肯定会有一句delimiter; 表示恢复成默认状态。
- delimiter是mysql定义结束标记的,在mysql客户端中结束标记默认是分号;
2.3 参数
- in:输入参数
- out:输出参数
- inout:输入输出参数
示例:
DELIMITER $$
USE `mysql3`$$
DROP PROCEDURE IF EXISTS `mypro`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `mypro`(IN num INT,OUT r INT)
BEGIN
DELETE FROM emp WHERE empno =num;
SELECT COUNT(*) FROM emp INTO r;
END$$
DELIMITER ;
2.4 调用存储过程 call
语法: