查询语句分组:根据指定的规则对数据进行分组:
--group by 分组字段
语法:select 数据 from 数据源 where 行过滤条件 group by 分组having 组过滤信息 order by 排序字段;
执行流程:from ->where ->group by ->having ->select ->order by
如果select 后面一旦出现组函数,不能使用非分组字段
如果一旦分组,只能使用分组字段或者组函数
where中 不能使用字段别名,不能使用组函数,因为执行流程问题
99语法
--自然连接:自动做等值连接(同名字段|主外键字段)natural join
注意:在自然连接中同名字段的不能使用限定词
--join ...using(同名字段)指定使用哪个同名字段做等值连接
注意:在join...using中同名字段不能使用限定词
--既能做等值连接也能做非等值连接
--数据源1 join 数据源2 on 连接条件
注意:在join..on中同名字段必须使用限定词
--内连接:(inner) join
--外连接:主表中的数据无论是否满足连接条件都显示
--左外连接|左连接:left join
--右外连接|右连接:right join
--全连接:两张表都是主表 full join
320问题
JDBC技术相关接口
作用:JDBC要通过Java代码操作数据库,JDBC中定义了操作数据库的各种接口和类型:
接口 | 作用 |
Driver | 驱动接口,定义建立链接的方式 |
DriverManager | 工具类,用于管理驱动,可以获取数据库的链接 |
Connection | 表示Java与数据库建立的连接对象(接口) |
PreparedStatement | 发送SQL语句的工具 |
ResultSet | 结果集,用于获取查询语句的结果 |
JDBC是规范(接口)不是实现(类)
JDBC 是一种规范,由Sum公司它提供了一套完整的接口,由数据库厂商根据特点予以实现,因此只要学会接口的使用就可以轻松的用 JDBC编写适用于各种数据库的程序。
Mysql提供的JDBC实现
Mysql提供的JDBC实现称为Mysql Connector,不同的数据库版本需要使用不同的Connector。
实际开发时根据数据库版本、JDK版本、选择不同的Connector。
为什么JDBC只有接口,没有提供实现?
不同数据库的底层技术不同,不少数据库是闭源的,源代码不公开的。Sun公司无力为所有数据库提供具体实现,只能提供接口而由数据库厂商提供具体实现,Sun公司只是制定JDBC标准,各个厂商准守标准提供具体的实现。JDBC和数据库实现的关系就好比List接口和ArrayList、LinkedList之间的关系。
面向JDBC接口规范编程,写出的JDBC代码可以在不同的数据库间轻松的迁移。
JDBC优缺点
优点:
JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。
JDBC支持不同的关系数据库,这使得程序的可移植性大大加强。
JDBC API是面向对象的,可以让用户把常用的方法封装为—个类,以备后用。
缺点:
使用JDBC,访问数据记录的速度会受到一定程度的影响。
JDBC结构中包含不同厂家的产品,这就给更改数据源带来了很大的麻烦。