2019-06-18 SQL的基础应用2

DML应用

1.select

1.1 作用

获取MySQL中的数据行

1.2 单独使用select


1.2.1  select  @@xxxx;##获取参数信息

select  @@port;

show  variables  like  '%innodb%';

1.2.2  select  函数();

select  database();

select  now();

select  version();

1.3 SQL92 标准使用方法

1.3.1  select 语法执行顺序(单表)

select 开始

from子句---------> 

use  表名 ;  select *  from 表名;

select  *  from  库名.表名;

where子句-------->

select  *  from  表名   where  列名='xxxx' ;##配合><=等符号进行匹配

select  *  from  表名   where  列名  like  'C%' ;##用like进行模糊匹配

select * from  表名  where  列名 >10000 and  列名< 20000;##使用and进行匹配

select * from  表名  where  列名 between  10000 and   20000;##与上条等同

select * from 表名 where  列名='xxxx'  or  列名='xxxx';##使用or进行匹配

select *  from 表名  where  列名  ('xxxx','xxxx'); ##等同上一条

group by子句------>

常用聚合函数:

AVG()##平均值

COUNT()##计数

统计每个国家的城市数量

SELECT CountryCode,COUNT(id) FROM city GROUP BY CountryCode;

SUM()##求和

统计每个国家总人口

select  contrycode,SUM(population)  from  city 

统计每个省的总人口

SELECT District,SUM( Population ) FROM city WHERE CountryCode = 'CHN' GROUP BY District;

MAX()##最大值

MIN()##最小值

GROUP_CONCAT()##列转行显示

统计中国每个省的市都有哪些

SELECT District,GROUP_CONCAT( `Name` ) FROM city WHERE CountryCode = 'CHN' GROUP BY District;

select后执行条件

having 子句-------->##在group by处理后进行过滤

--- 统计中国,每个省的总人口大于1000w的省及人口数

SELECT  district ,SUM(population) FROM city

WHERE countrycode='CHN'

GROUP BY district

HAVING  SUM(population)>10000000

order by子句------->##排序

SELECT district ,SUM(population) FROM city

WHERE countrycode='CHN'

GROUP BY district

ORDER BY SUM(population) DESC;


LIMIT  子句---------->##分段显示

LIMIT M,N 跳过M行,显示N行

LIMIT X OFFSET Y 跳过Y行,显示X行

显示中国每个市的人口数,并显示人口最多的5个市

SELECT Name,Population FROM city WHERE CountryCode='CHN' ORDER BY Population DESC LIMIT 0,5;



多表连接查询

1.4.1 什么时候用?

需要查询数据是来自多张表的时候

1.4.2 怎么去多表连接查询

传统连接:基于wehere条件

1)找表之间的关系列

2)排列查询条件

传统连接方式:

select city .name ,country.name ,country.surfacearea

from city,country

where city.countrycode =country.code

and city.population <100;

内连接

1)找表之间的关系列

2)将两表放在join左右

3)将关联条件放在on后面

4)将所有的查询条件进行罗列

select A.m,B.n

from

A join B

on A.x=B.y

where

group by

order by

limit

3.统计一下每门课的总成绩

select course.cname,SUM(score.score)

from

course join score

on course.cno=score.cno

GROUP BY cname;







刚入职时,DBA的任务

1.搞清楚架构

通过公司的架构图,搞清楚数据库的物理架构

生产库的信息

库下表的信息

    1.何开发和业务人员,搞好关系

    2.搞到ER图

    3.找到建表语句,如果有注释,读懂注释,如果没有注释,只能根据列名翻译。

    4.找到表中部分数据,分析数据特点,达到了解功能的目录。

你可能感兴趣的:(2019-06-18 SQL的基础应用2)