参考网址: https://www.cnblogs.com/Neeo/articles/13597433.html
视图是虚拟表,是从数据库中一个或多个表中导出来的表,其内容由查询定义;同真实表(基表)一样,视图包含一系列带有名称的字段和记录,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图(insert、update、delete
)。
视图可以查询、修改和删除,但不允许通过视图向基表插入数据。
# < 导入.sql中的sql语句,数据 [root@cs ~]# mysql -uroot -p123 < world.sql # 1.创建视图 -- create -- 基本语法: create view 视图名称 as sql语句 -- 示例:查询中国所有城市信息,只展示前10条 mysql> create view v1 as select * from city where countrycode='CHN' limit 10; # 2.查看视图 mysql> select * from v1; # 3.修改视图 -- alter alter view 视图名称 as sql语句 mysql> alter view v1 as select * from city where countrycode='CHN' limit 20; # 4.删除视图 -- drop mysql> drop view v1;
表由两部分组成:
我们主要对information_schema.TABLES
表进行学习,这个表存储了整个数据库中所有表的元数据。
-- information_schema.TABLES中常用的字段 DESC infoRmation_schema.TABLES; TABLE_SCHEMA -- 库名 TABLE_NAME -- 表名 NEGINE -- 引擎 TABLE_ROWS -- 表行数 AVG_ROW_LENGTH -- 表中行平均长度(字节) INDEX_LENGTH -- 索引的占用空间大小(字节) -- 查询information_schema.TABLES表信息 SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE,TABLE_ROWS,AVG_ROW_LENGTH,INDEX_LENGTH FROM information_schema.TABLES; -- 查询整个数据库中所有库和对应的表信息 SELECT TABLE_SCHEMA, GROUP_CONCAT(TABLE_NAME) FROM information_schema.TABLES GROUP BY TABLE_SCHEMA; -- 统计所有库下表的个数 SELECT TABLE_SCHEMA,COUNT(TABLE_NAME) FROM information_schema.TABLES GROUP BY TABLE_SCHEMA; -- 查询所有使用innodb引擎的表及所在的库 SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE FROM information_schema.TABLES WHERE ENGINE='innodb'; -- 统计指定数据库(world)下每张表的磁盘空间占用 SELECT TABLE_SCHEMA,TABLE_NAME,(TABLE_ROWS * AVG_ROW_LENGTH + INDEX_LENGTH) / 1024 AS 'size(KB)' FROM information_schema.TABLES WHERE TABLE_SCHEMA='world'; -- 统计所有数据库的总磁盘空间占用 SELECT COUNT(TABLE_SCHEMA) AS '数据库个数',SUM((TABLE_ROWS * AVG_ROW_LENGTH + INDEX_LENGTH) / 1024) AS 'size(KB)' FROM information_schema.TABLES;
内置函数
参考网址: https://www.cnblogs.com/Neeo/articles/13685832.html
# 创建一个函数,返回两个整数之和 mysql> delimiter // -- 修改mysql语句结束符 mysql> create function f1(n1 int,n2 int) -- 创建函数 f1 参数可以是MySQL支持的那些类型 -> returns int -- 该函数的返回值也是 int 类型 -> begin -- 标识函数体开始 -> declare num int; -- 定义一个int类型的变量 -> set num = n1 + n2; -> return(num); -> end // -- 标识函数体结束 mysql> delimiter ; -- 修改回mysql语句结束符 # 使用函数 mysql> select f1(1,3); +---------+ | f1(1,3) | +---------+ | 4 | +---------+ # 删除函数 mysql> drop function f1;