DQL:数据查询语言:select
 1.确定查找范围:* 字段
 2.去重:DISTINCT
 3.别名:保证字段安全 as 用as在字段之后进行连接(不用as也可以)。
 4.带条件进行查询:where
  算术运算符:< > <= >= <>/!= =
  逻辑运算符:and,or,is null/is not null,in(),between..and..

模糊查询:like
           like '字符串':全字段匹配。跟等号'='效果一样
           like '字段_' : 只匹配后一个字段,例'ab_':abc abd ab1,不匹配abcd。
           like '字段%' :匹配后续字段
 分组查询:group by:进行分组数据统计。搭配函数进行使用
           count():总数
           max()/min():最大值/最小值
           avg():平均数
           sum():求和
           注意:group by在where之后使用
           group_concat():列举值

级联更新:on update cascade
  alter table kc add CONSTRAINT ss FOREIGN KEY (fskc) REFERENCES kc (kcid) on update cascade;
删除置空:on delete set null

分组统计并排序:group by 字段名 asc/desc
数据筛选/条件:having
order by 字段/别名 asc/desc:排序
分页查询:limit

例子:创建数据库开始

CREATE DATABASE xxdb;
CREATE TABLE emp(
 eid TINYINT PRIMARY KEY,
 ename VARCHAR (10) NOT NULL,
 etype ENUM ('后勤','教务','学管')
);
-- 班级表
CREATE TABLE cls(
 clid TINYINT PRIMARY KEY,
 clname VARCHAR (10) NOT NULL,
 clzy VARCHAR (10),
 clbzr TINYINT,
 CONSTRAINT bzr FOREIGN KEY (clbzr) REFERENCES emp(eid)
 ON UPDATE CASCADE ON DELETE SET NULL
);
-- 学生表
CREATE TABLE stu(
 sid INT PRIMARY KEY,
 sname VARCHAR (10) NOT NULL,
 scls TINYINT,
 sage TINYINT UNSIGNED,
 ssex ENUM ('男','女'),
 sjg VARCHAR (10) COMMENT '籍贯',
 sphone VARCHAR (11),
 CONSTRAINT cls FOREIGN KEY (scls) REFERENCES cls(clid)
 ON UPDATE CASCADE ON DELETE SET NULL
);
-- 楼栋
CREATE TABLE ld(
 lid TINYINT PRIMARY KEY,
 lname VARCHAR (10),
 lnemp TINYINT,
 CONSTRAINT ldemp FOREIGN KEY (lnemp) REFERENCES emp(eid)
 ON UPDATE CASCADE ON DELETE SET NULL
);
-- 寝室
CREATE TABLE qsb(
 qsid INT PRIMARY KEY,
 qsld TINYINT,
 qslc TINYINT UNSIGNED,
 qsstu INT,
 CONSTRAINT ld FOREIGN KEY(qsld) REFERENCES ld(lid)
 ON UPDATE CASCADE ON DELETE SET NULL,
 CONSTRAINT qsz FOREIGN KEY(qsstu) REFERENCES stu(sid)
 ON UPDATE CASCADE ON DELETE SET NULL
);
-- 住宿表
CREATE TABLE zsb(
 zsstu INT,
 zsqs INT,
 PRIMARY KEY (zsstu,zsqs),
 CONSTRAINT student FOREIGN KEY (zsstu) REFERENCES stu(sid)
 ON UPDATE CASCADE,
 CONSTRAINT qsdent FOREIGN KEY (zsqs) REFERENCES qsb(qsid)
 ON UPDATE CASCADE
);
INSERT INTO emp VALUES
(1,'张1','后勤'),
(2,'张2','教务'),
(3,'张3','学管'),
(4,'张4','后勤');
INSERT INTO cls VALUES
(11,'大数据1','大数据',3),
(12,'大数据2','大数据',3),
(13,'网络营销1','网络营销',2),
(14,'大数据4','大数据',3),
(15,'电竞1','电竞',2);
INSERT INTO stu VALUES
(201,'张三',11,21,'男','贵州',NULL),
(202,'张四',12,21,'男','贵州',NULL),
(203,'张吴',11,21,'女','四川',NULL),
(204,'张六',13,21,'女','四川',NULL),
(205,'张七',14,21,'男','贵州',NULL),
(206,'张八',15,21,'女','四川',NULL),
(207,'张久',11,21,'男','四川',NULL);
INSERT INTO ld VALUES
(11,'幻月1',1),
(12,'幻月2',4),
(13,'幻月3',1);
INSERT INTO qsb VALUES
(101,11,1,201),
(102,12,2,202),
(103,11,3,203),
(104,13,4,204);
INSERT INTO zsb VALUES
(201,101),
(202,102),
(203,103),
(204,104),
(205,101),
(206,101),
(207,102);
-- 查各个班住校人数
SELECT COUNT(sid) '人数',clname '班级'
FROM zsb,cls,stu
WHERE zsb.`zsstu`=stu.`sid` AND stu.`scls`=cls.`clid`
GROUP BY clname;
-- 分组统计各个楼栋的班级人数
SELECT COUNT(sid),lname '楼栋',clname '班级'
FROM stu,ld,cls,qsb,zsb
WHERE zsb.`zsstu`=stu.`sid`
AND stu.`scls`=cls.`clid`
AND zsb.`zsqs`=qsb.`qsid`
AND qsb.`qsld`=ld.`lid`
GROUP BY clname,lname;    
-- 分组统计各个寝室的人数
SELECT COUNT(sid) '人数',qsstu '寝室名'
FROM qsb,zsb,stu
WHERE zsb.`zsqs`=qsb.`qsid` 
AND stu.`sid`=zsb.`zsstu`
GROUP BY qsstu;
-- 更新一个寝室信息
INSERT INTO qsb VALUES (101,11,1,201) ON DUPLICATE KEY UPDATE qslc=99;
-- 分组计算各个寝室的平均年龄
SELECT AVG(sage) '平均年龄',qsstu '寝室名'
FROM qsb,zsb,stu
WHERE zsb.`zsqs`=qsb.`qsid` 
AND stu.`sid`=zsb.`zsstu`
GROUP BY qsstu;
-- 分组统计1号楼各个寝室四川的人数
SELECT COUNT(sid) '人数',qsstu '寝室名',sjg '籍贯'
FROM qsb,zsb,stu
WHERE stu.`sjg`='四川'
AND qsb.`qsld`='11' 
AND stu.`sid`=zsb.`zsstu`
AND zsb.`zsqs`=qsb.`qsid`
GROUP BY qsstu;
-- 分组后进行排序:group by 字段 desc/asc
-- 分组查询各班住校人数,并按班级编号降序显示
SELECT COUNT(sid)'人数' ,clname '班级'
FROM qsb,cls,zsb,stu
WHERE  zsb.`zsqs`=qsb.`qsid` 
AND stu.`scls`=cls.`clid`
AND stu.`sid`=zsb.`zsstu`
GROUP BY clname ASC;
-- order by
-- 分组统计各班人数,并按降序显示
SELECT COUNT(sid)'cou' ,clname '班级'
FROM cls,zsb,stu
WHERE  stu.`scls`=cls.`clid`
AND stu.`sid`=zsb.`zsstu`
GROUP BY clname  -- group by之前是对磁盘数据进行处理
-- group by之后是对进入内存的数据进行处理
HAVING cou>1 OR cou=1
ORDER BY cou ASC -- 进入内存后的数据才能使用别名
LIMIT 1,4;-- 分页查询:limit 数值/limit 其始值,数值

数据库-统计select的使用相关推荐

  1. 达梦数据库统计信息的导出导入

    一.统计信息 对象统计信息描述了对象数据的分布特征.统计信息是优化器的代价计算的依据,可以帮助优化器较精确地估算成本,对执行计划的选择起着至关重要的作用.统计信息的收集频率是一把双刃剑,频率太低导致统 ...

  2. oracle 数据统计收集,Oracle 10g收集数据库统计信息

    1.需求概述 某数据库由于整体统计信息不准确,多次出现部分业务SQL选错执行计划,从而导致性能下降影响到最终用户体验,目前通过SQL_PROFILE绑定执行计划临时解决,但此方法不够灵活,后续维护工作 ...

  3. nba数据库统计_NBA板块的价值-从统计学上讲

    nba数据库统计 The idea is not to block every shot. The idea is to make your opponent believe that you mig ...

  4. Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用

    Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用 1,首先切换到Oracle用户,并进入数据库#sql / as sysdba2,启动数据库,并连接样例及表格,启动命令#s ...

  5. 常用的数据库统计SQL语句(2)

    1.解决被零除(零做除数时) --来自百度问吧 在统计系统中,需要求百分数, 如(sum(baseprice)-sum(quote))/sum(baseprice)*100)中, 如果sum(base ...

  6. 常用的数据库统计SQL语句

    1.解决被零除(零做除数时) --来自百度问吧 在统计系统中,需要求百分数, 如(sum(baseprice)-sum(quote))/sum(baseprice)*100)中, 如果sum(base ...

  7. 图数据库统计、趋势2023

    近年来,随着企业和组织寻求更有效的方式来存储和处理数据,图形数据库变得越来越流行. 随着大数据的兴起,了解图形数据库的趋势和统计数据非常重要,尤其是涉及到图形数据库类别时. 在这篇博文中,我们将深入研 ...

  8. 数据库语句 select * from table where 1=1 的用法和作用

    数据库语句 select * from table where 1=1 的用法和作用        这是一种怎样的查询语句呢?首先说明,1=1不是查询语句中的任何关键词,所以,请您放心,不管你会不会使 ...

  9. mysql查询语句习题._MySql数据库基本select查询语句练习题,初学者易懂。

    在数据库建立四个表:分别为 student(sid,sname,sage,ssex) teacher(tid,tname) course(cid,cname,tid) sc(sid,cid,score ...

最新文章

  1. 一个java高级工程师的进阶之路【转】
  2. 微信推送模板消息的PHP代码整理
  3. 多线程并发:每个开发人员都应了解的内容
  4. 【Binder 机制】AIDL 分析 ( AIDL 通信完整流程梳理 )
  5. sharepoint2013保存当前输入的列表
  6. GCC对C++标准的实现情况
  7. JZOJ 5697. 【gdoi2018 day1】农场(farm)
  8. 【背包】逃亡的准备 (ssl 1236)
  9. 判断图像局部过暗_CVPR 2020丨基于记忆增强的全局局部整合网络:更准确的视频物体检测方法...
  10. Naïve UI——一个 Vue 3 组件库
  11. 阿里巴巴java开发手册pdf
  12. 机械制图国家标准的绘图模板_JS制图:映射
  13. 博士申请 | 美国弗吉尼亚理工大学周大为老师招收图神经网络方向全奖博士生...
  14. 2021年中国上牌和驾驶员数量分析:新注册登记机动车3674万辆 新领证驾驶人2750万人[图]
  15. linux media v4l2,Overview of the V4L2 driver framework (v4l2_subdev)
  16. 年终奖买啥最合适?马上安排降噪耳机界的扛把子,索尼WF-1000XM4
  17. 幽默的最高境界——这才叫幽默
  18. 操作系统正则符号知识点总结
  19. NBA表格_NBA球星大排位16—季后赛荣誉汇总
  20. Android 获取设备号

热门文章

  1. gis中的加权求和工具在哪里_干货分享 | 地理加权回归介绍及其arcgis软件操作
  2. Docker服务让容器自启动 | restart参数
  3. 2022-2028全球与中国密封微动开关市场现状及未来发展趋势
  4. ubuntu11.10 安装网卡驱动
  5. 第七章 输入与输出 ——python导引编译之八
  6. 057-Java连接MySQL数据库封装实训-实现通讯录程序
  7. 动态交叉神经网络的特点,什么是动态神经网络
  8. 整数在计算机中是如何存储的?
  9. Linux _ Shell编程 — 功能语句
  10. 时间序列模型中,哪一个模型可以较好地拟合波动性的分析和预测