DML應(yīng)用
1.select
1.1 作用
獲取MySQL中的數(shù)據(jù)行
1.2 單獨(dú)使用select
1.2.1? select? @@xxxx寨闹;##獲取參數(shù)信息
select? @@port;
show? variables? like? '%innodb%';
1.2.2? select? 函數(shù)()君账;
select? database();
select? now();
select? version();
1.3 SQL92 標(biāo)準(zhǔn)使用方法
1.3.1? select 語法執(zhí)行順序(單表)
select 開始
from子句--------->?
use? 表名 繁堡;? select *? from 表名;
select? *? from? 庫名.表名乡数;
where子句-------->
select? *? from? 表名? ?where? 列名='xxxx' 椭蹄;##配合><=等符號(hào)進(jìn)行匹配
select? *? from? 表名? ?where? 列名? like? 'C%' ;##用like進(jìn)行模糊匹配
select * from? 表名? where? 列名 >10000 and? 列名< 20000;##使用and進(jìn)行匹配
select * from? 表名? where? 列名 between? 10000 and? ?20000净赴;##與上條等同
select * from 表名 where? 列名='xxxx'? or? 列名='xxxx'绳矩;##使用or進(jìn)行匹配
select *? from 表名? where? 列名? ('xxxx','xxxx');?##等同上一條
group by子句------>
常用聚合函數(shù):
AVG()##平均值
COUNT()##計(jì)數(shù)
統(tǒng)計(jì)每個(gè)國家的城市數(shù)量
SELECT CountryCode,COUNT(id) FROM city GROUP BY CountryCode;
SUM()##求和
統(tǒng)計(jì)每個(gè)國家總?cè)丝?/p>
select? contrycode,SUM(population)? from? city?
統(tǒng)計(jì)每個(gè)省的總?cè)丝?/p>
SELECT District,SUM( Population ) FROM city WHERE CountryCode = 'CHN' GROUP BY District;
MAX()##最大值
MIN()##最小值
GROUP_CONCAT()##列轉(zhuǎn)行顯示
統(tǒng)計(jì)中國每個(gè)省的市都有哪些
SELECT District,GROUP_CONCAT( `Name` ) FROM city WHERE CountryCode = 'CHN' GROUP BY District;
select后執(zhí)行條件
having 子句-------->##在group by處理后進(jìn)行過濾
--- 統(tǒng)計(jì)中國劫侧,每個(gè)省的總?cè)丝诖笥?000w的省及人口數(shù)
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行
顯示中國每個(gè)市的人口數(shù)写妥,并顯示人口最多的5個(gè)市
SELECT Name,Population FROM city WHERE CountryCode='CHN' ORDER BY Population DESC LIMIT 0,5;
多表連接查詢
1.4.1 什么時(shí)候用拳球?
需要查詢數(shù)據(jù)是來自多張表的時(shí)候
1.4.2 怎么去多表連接查詢
傳統(tǒng)連接:基于wehere條件
1)找表之間的關(guān)系列
2)排列查詢條件
傳統(tǒng)連接方式:
select city .name ,country.name ,country.surfacearea
from city,country
where city.countrycode =country.code
and city.population <100;
內(nèi)連接
1)找表之間的關(guān)系列
2)將兩表放在join左右
3)將關(guān)聯(lián)條件放在on后面
4)將所有的查詢條件進(jìn)行羅列
select A.m,B.n
from
A join B
on A.x=B.y
where
group by
order by
limit
3.統(tǒng)計(jì)一下每門課的總成績
select course.cname,SUM(score.score)
from
course join score
on course.cno=score.cno
GROUP BY cname;
剛?cè)肼殨r(shí)肛冶,DBA的任務(wù)
1.搞清楚架構(gòu)
通過公司的架構(gòu)圖欺缘,搞清楚數(shù)據(jù)庫的物理架構(gòu)
生產(chǎn)庫的信息
庫下表的信息
? ? 1.何開發(fā)和業(yè)務(wù)人員差油,搞好關(guān)系
? ? 2.搞到ER圖
? ? 3.找到建表語句静陈,如果有注釋,讀懂注釋商架,如果沒有注釋湖雹,只能根據(jù)列名翻譯勤庐。
? ? 4.找到表中部分?jǐn)?shù)據(jù)嗜桌,分析數(shù)據(jù)特點(diǎn)奥溺,達(dá)到了解功能的目錄。