SQL语法
- 视图view
- 常用函数
- 三张重要的表
接SQL语法第一篇文章,接下来所有的操作都基于safe这张表进行。
视图view
语法:create view 视图名称 as select 原表中的列名 from 原表名;
删除视图:
语法:drop view 视图名;
常用函数
AVG函数,用于求平均值。
语法:select avg(列名) from 表名;
SUM函数,用于求和:
语法:select sum(列名) from 表名;
COUNT函数,用于返回满足条件的行数:
语法:select conunt( * ) from 列名。其中count( * )代表从全表进行匹配寻找,也可以将*换成相应的列名。
最大值最小值,用于求最大值最小值:
语法:select max(列名) from 表名;select min(列名) from 表名;
GROUP BY:与合计函数,根据一个或者多个列对结果集进行分组。
语法:select 列名 from 表名 group by 列名;注意select和group by后面的列要保持一致。
但是我们只能看到有身高为165、177…,但是并不知道具体的有多少人。
使用count(*)就可以看到一共有多少人了。
用于查找男性和女性里面,身高最高的。
Having子句:
用于在分组之后,再进行筛选。为什么会有Having子句呢?是因为where关键字无法与合计函数一起用。
执行顺序:
当语句中同时出现:where,group by,having,order by的时候,执行的顺序是:
- 执行where xx对全表数据做筛选,返回第1个结果集。
- 针对第1个结果集使用group by分组,返回第2个结果集。
- 针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。
- 针对第3个结集执行having xx进行筛选,返回第4个结果集。
- 针对第4个结果集排序。
其它常用的函数:
select version();//查看数据库版本
select database();//查看目前使用的是哪个数据库
select user();//查看目前登录的用户
select current_time;//查看目前时间
三张重要的表
SCHEMATA:
当前所有Mysql中数据库的信息,当我们执行show databases;命令时,返回的结果就是来自此表。该表中的SCHEMA_NAME就是对应的数据库名称。
SELECT SCHEMA_NAME FROM information_schema.schemata ;
TABLES:
提供了数据库中表的信息,也包含视图,描述哪张表属于哪个schema,表类型、表引擎、所创建的时间等重要信息;当我们执行show tables from schema名称这个命令时候,返回的结果就是来自于此。
COLUMNS:
提供表的列信息,描述了某张表的所有列和每个列的信息,当我们执行show columns fromschemaname.tablename命令时,返回的结果就是来自于此表。这个表更加的全面,其次MySQL本身内部也是要有一个统计信息来统计列。