数据库 mysql
sql语法顺序和解析顺序的理解
- mysql查询时的书写顺序:
select...from...where...group by...having...order by... - mysql的执行顺序:
from...where...group by...having...select...order by...
-
from:需要从哪个数据表检索数据
-
where:过滤表中数据的条件
-
group by:如何将上面过滤出的数据分组
例句:select cid,count(*) from product group by cid //注释:cid为product表的外键,可以模拟查询统计每个分类产品的数量 -
having:对上面已经分组的数据进行过滤的条件
例句:select cid,avg(price) from product group by cid having avg(price)>60 -
select:查看结果集中的哪个列,或列的计算结果
-
order by :按照什么样的顺序来查看返回的数据 (desc为降序,asc为升序)
mysql架构分析和执行流程分析
逻辑架构
-
连接器(nacivate)
-
服务管理
select user();#查看当前登录用户
flush privileges;刷新授权表
mysql -uroot -p -h 127.0.0.1 -P 3306;指定mysql客户端登录指定服务器
- 数据库连接池
数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对连接池中的连接进行申请,使用,释放;
为什么要用连接池:创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患,效率低;
传统请求:创建连接---->访问数据库——>关闭连接;每一个请求都需要重新创建
连接池:创建连接池——>从连接池中获取连接——>访问数据库——>放回连接池等待下次调用