高级编程:数据库-高级操作

目录

分页查询

聚合函数

分组查询

连接查询


分页查询

        语法:select * from 表名 limit start,count

        limit 是分页查询关键字,

        start表示开始索引,默认是0

        count表示查询条数

        公式:已知每页显示m条数据,求第n也显示的数据:select * from students limit (n-1)*m,m;

        eg:查询前3行男生信息:select * from students where sex='男' limit 0,3;或者

                                                  select * from students where sex='男' limit 3;


聚合函数

        定义:聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算数据

        注意:聚合函数不会对空值进行统计

        常用的聚合函数有:求指定列的总行数count(col),最大值max(col),最小值min(col),求和sum(col),求平均值avg(col)。

指定列的总行数count(col):

        eg:求身高的一个总行数:select count(height) from students;

             返回总行数,包含null值记录:select count(*) from students;ents;

求最大值:

        eg:查询女生编号最大值:select max(id) from students where sex='女';

 求和:       

        eg:  查询男生的总身高:select sum(height) from students; 

求平均值:

         eg: avg(height) from students; 由于聚合函数不包括null值,平均值有误

​​​​​​​                  select avg(ifnull(height,0)) from students;  包含身高是null的

                  ifnull函数:表示判断指定字段的值是否为null,如果为空使用自己提供的值


分组查询

        分组查询就是将 查询结果 按照 指定字段 进行分组,字段中数据 相等 的分为一组

         语法格式如下:

           group by 列名 [having 条件表达式]  [with rollup]

           列名:是指按照指定字段的值进行分组

           having条件表达式:用来过滤分组后的数据

           with rollup :在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结                                 果

group by和 单字段分组 和 多字段分组使用 

            与使用:根据sex字段进行分组

            eg:select sex from students group by sex;

            与多字段分组使用:多字段分组:根据name 和 sex进行分组

             eg:select name,sex from students group by name,sex;

              注意:与多字段分组时,如果按什么字段去查询,只能使用指字段去分组,否则会报错         


group by 和group_concat()使用:

             group_concat(字段名):统计每个分组指定字段的信息集合,每个信息之间使用逗号进行                 分割

            eg:根据name 和 sex进行分组:

            select sex,group_concat(name) from stu1 group by sex;

             

           


group by 和聚合函数使用

            eg:统计不同性别的平均年龄,

            select sex,avg(ifnull(height,0)) from students group by sex;

        统计不同性别的人的个数:

          select sex,count(*) from stu1 group by sex;

        


 group by 和 having 使用

        eg:根据sex字段进行分组,统计分组条数大于2的人数

         select sex,count(*) from stu1 group by sex having count(*)>2;


 group by 和 with rollup 的使用

        eg1:根据sex字段进行分组,汇总总人数

        select sex,count(*) from stu1 group by sex with rollup;        

         eg2:根据sex字段进行分组,汇总所有人年龄

         select sex,count(age) from stu1 group by sex with rollup;        


连接查询

        主要包括:内连接、左连接、右连接和自连接

 内连接:查询两个表中符合条件的共有记录

        语法格式:select 字段 from 表1 inner join 表2  on表1.字段 = 表2.字段

              inner join: 就是内连接查询关键字        

              on 就是连接查询学生表与班级表

              eg:select * from stu1 inner join classes on stu1.c_id =classes.id;

        

update     修改表数据的
insert     添加表数据的


alter  add  添加字段(表结构)的

左连接:以左表为主根据条件查询右表数据,如果根据条件查询右表数据不存在使用null值                          填充

           select 字段 from 表1 left join 表2 on 表1.字段=表2.字段

           eg:  select * from students as s left join classes as c on  s.c_id = c.id;        


右连接:以右表为主根据条件查询右表数据,如果根据条件查询左表数据不存在使用null值                          填充

           select 字段 from 表1 left join 表2 on 表1.字段=表2.字段

           eg:  select * from students as s right join classes as c on  s.c_id = c.id;

怎么往 MySQL里面导入数据

        1.先创建表,创建表里 面的数据 必须跟 导入数据里面的一些内相同。才能导入。

        2.复制原表的位置,然后source  路径 \ tb_areas.sql;  导入成功 


自连接:左表和右表是同一个表,根据连接 查询条件 查询两个表中的数据(就是自己跟自己进行查询)

        eg:  select c.id ,c.title,c.pid,p.title from tb_areas c inner join tb_areas p on c.pid=p.id where p.title='山西省';     

       注释: c.id ,c.title,c.pid 别名为c的拿三个数据   就是c别名的pid 等不等于p别名的id,然后p.title 里面查山西省


第一个青春是上帝给的;第二个的青春是靠自己努力的

一起加油

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
<br>【原 书 名】 Professional Java Data <br>【原出版社】 Wrox <br>【作 者】[美] Danny Ayers ,John Bell ,Carl Calvert Bettis等 <br>【译 者】 戴英 张晓晖 王辉 等 <br>【丛 书 名】 乐思公司编程指南系列 <br><br>http://images.china-pub.com/ebook/5221/shupi.jpg<br><br>Java是一种功能强大的编程平台,带有大量的Application Programming Interfaces(APIs,应用程序编程接口)。在本书中,我们将研究Java用于访问和处理数据的各种技术。本书将向读者介绍如何使用Java开发企业级的分布式应用程序,其中涉及生成、处理、存储、 与检索各种类型的数据与不同的数据库。<br>本书按照一定的逻辑顺序分为六个部分。在相互的基础上,前四部分深入广泛地探讨了各种Java技术,它们可以组合或单独用于为各种数据访问与处理情况开发实际方案。第五部分中的案例研究包括了一些实际的围绕数据的应用程序范例。<br>本书只需要读者具有Java的使用知识,所有的技术与概念都会用图表与实际范例充分给予解释。<br><br>目录<br>第一部分 软件、对象、数据设计与建模<br>第1章 软件开发的方法与过程<br>为什么我们需要方法与过程<br>什么是软件方法与过程<br>方法的内容<br>过程模型<br>源代码管理的要素<br>软件缺陷与修改的跟踪和解决方案<br>软件品质<br>参考文献<br>第2章 面向对象的分析与设计<br>OOA、OOD与OOP<br>面向对象的分析<br>面向对象的设计<br>小结<br>第3章 用UML进行对象建模<br>为什么使用UML<br>什么是UML<br>UML图表<br>如何将UML建模图表配合在一起<br>如何将UML合并到我们的项目中<br>可以考虑的一些UML CASE工具<br>小结<br>第4章 数据建模<br>数据建模的阶段<br>可以考虑的一些数据建模工具<br>小结<br>第二部分 数据库访问<br>第5章 数据库的概念与技术<br>数据库设计 <br>数据库规格化与数据仓库<br>数据库视图<br>数据库元数据<br>临时表<br>约束<br>静态SQL与动态SQL<br>准备语句<br>事务处理与隔离级别<br>存储过程<br>触发器<br>复制<br>优化基础<br>小结<br>第6章 Java数据库连接(JDBC)<br>什么是JDBC<br>JDBC结构<br>开始起步<br>使用JDBC<br>一个简单的范例<br>对映JavaSQL类型<br>处理SQL错误<br>ResultSet与数据库元数据<br>JDBC中的事务处理<br>一个JDBC事务范例<br>JDBC事务隔离级别<br>保存点<br>使用光标<br>PreparedStatement接口<br>批更新<br>CallableStatement<br>JDBC Escape语法<br>JDBC支持类<br>小结<br>第7章 JDBC 2.0可选包<br>简介<br>DataSource与JNDI<br>连接池<br>RowSet<br>分布式事务与Optional Package<br>小结<br>第8章 SQLJ<br>简介<br>什么是SQLJ<br>准备开始<br>使用SQLJ<br>SQLJ定制<br>小结<br>第9章 数据库性能问题<br>本地编译机制<br>挑选适当的JDBC驱动程序<br>连接池<br>事务和批量查询<br>存储过程和JDBC准备语句<br>JDBC准备语句<br>在程序块上检索大数据集合<br>高速缓存频繁使用的数据<br>性能监控<br>小结<br>第10章 Java和ODMG 3.0规范<br>基础<br>ODMG的核心概念<br>对象定义语言<br>小结<br>第11章 目录服务与JNDI<br>命名与目录服务<br>使用JNDI<br>JAVA与LDAP<br>从理论到实践<br>标准的LDAP操作<br>LDAP服务器改进<br>在LDAP中存储并检索Java对象<br>其他目录服务<br>小结<br>第三部分 网络客户机上的数据显示<br>第12章 Web体系结构<br>引言<br>典型的Web中心体系结构<br>应用程序体系结构<br>Web中心应用程序的判定标准<br>小结<br>第13章 服务程序(Servlets)<br>概述<br>服务程序的结构<br>服务响应<br>服务程序Cookies<br>会话跟踪<br>深入性主题<br>小结<br>第14章 使用服务程序进行数据访问<br>引言<br>使用服务程序的数据库连接<br>范例应用程序<br>JDBC驱动器之结语<br>小结<br>第15章 JSP<br>JSP与服务程序<br>JSP与ASP<br>实现JSPs<br>JavaServer Page范例<br>JavaBeans综述<br>在JSPs中使用JavaBeans<br>JSP事宜<br>资源<br>小结<br>第16章 使用JSP进行数据访问<br>访问数据<br>范例应用程序<br>深入性主题<br>小结<br>第17章 分析和生成XML<br>文档和数据<br>XML概述<br>Java XML技术<br>生成XML<br>读取XML<br>小结<br>第18章 WAP客户机<br>WAP概览<br>WAP构成组件<br>WML基础<br>Java服务程序和WML<br>WML服务程序和JDBC<br>相关URLs<br>小结<br>第四部分 Enterprise JavaBeans与分布式应用程序<br>第19章 Enterprise JavaBeans<br>Enterprise JavaBean体系结构<br>一个简单的Enterprise JavaBean<br>会话Beaus<br>面向对象与关系模型<br>实体beans<br>数据映射<br>EJB事务置<br>EJB 2.0<br>小结<br>第20章 Java事务API(JTA)和Java事务服务(JTS)<br>进行事务处理的理由<br>使用事务处理的益处<br>事务处理的属性<br>事务服务<br>理论足已!一些Java细节<br>设计性事务处理<br>铭记要点<br>小结<br>第21章 开发EJB客户机<br>引言 <br>EJBs的客户机<br>小结<br>第22章 开发可扩缩的EJB应用程序<br>引言<br>Enterprise JavaBeans的优点<br>EJB的广阔开放空间<br>Enterprise JavaBeansas行范例<br>可扩缩性概念和目的<br>数据传输概念<br>传输简单对象<br>静态数据传输<br>复合对象传输和集合<br>ePIM的基本设计<br>测试代码<br>利用Facade和Proxy模式减少网络通量<br>进一步增强<br>小结<br>第23章 J2EE通<br>通概述<br>JMS的详细情况<br>消息驱动EJB<br>小结<br>第24章 Java数据对象(JDO)<br>概述<br>JDO对象模型<br>JDO API<br>JDO实例的生命周期<br>JDO和EJB<br>开发可持久类<br>范例应用程序<br>配置FFJ<br>配置数据源<br>捕获数据库模式<br>把类映射到数据库对象<br>编译类<br>小结<br>第五部分 案例分析<br>第25章 案例分析:XML网站入口<br>案例分析综述<br>XML-Client应用程序<br>XML跳过HTTP<br>配置<br>开始应用程序服务器<br>XML-RPC<br>小结<br>第26章 案例分析:网站通量的统计分析<br>案例分析综述<br>客户机网站<br>跟踪应用程序<br>配置<br>小结<br>第27章 案例分析:网络数据工具箱<br>任务<br>逐步实现工具箱<br>前进道路<br>小结<br>第28章 案例分析:WAP Tic-Tac-Toe游戏<br>纵览应用程序结构<br>玩游戏<br>存储并检索分数:JDBC连接<br>会话管理<br>安装应用程序组件<br>相关的URL<br>小结<br>第六部分 附录<br>附录A SQL入门<br>什么是SQL<br>什么是数据库<br>关系数据库基础<br>关系数据库的优点和缺点<br>SQL:数据定义<br>基本数据操作<br>数据完整性<br>表达式<br>连接<br>合并<br>子查询<br>小结<br>附录B 序列化<br>简介<br>序列化<br>可串行化的接口<br>小结<br>附录C Java和分布式应用程序<br>分布式系统<br>分布式数据库应用程序<br>在分布式应用程序Java<br>小结<br>附录D 配置Tomcat、JRun和Orion<br>Tomcat安装和配置<br>JRun 3.0安装和配置<br>安装检索<br>附录E 在WebLogic 6.0上配置并部署EJB<br>设置配置属性<br>生成EJB容器类<br>加载EJB类到WebLogic服务器<br>附录F UML符号<br>类和对象<br>关系<br>状态<br>对象相互作用<br><br><br>http://www.china-pub.com/5221<br><br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨某人...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值