发表于: 2018-03-26 18:57:10
1 426
今天完成的事情:
1.入学
2.练习SQL排序,分组查询,学习并练习多表查询
排序:
SELECT 语句搭配 ORDER BY 子句
SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
倒序查询 关键字DESC
正序查询 关键字ASC
如果加入WHERE...LIKE..条件查询,排序语句要放在最后
分组查询
group by 被分组的列名
必须跟随聚合函数
select 查询的时候,被分组的列必须,出现在select选择列的后边
多表查询
使用JOIN关键字
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
ON子句连接:连接条件放在ON子句中指定,每个ON子句只指定一个连接条件(可以是等值连接,也可以是非等值连接)
INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)
等价与WHERE子句:
SELECT s.id,s.s_name,t.t_name FROM student1 s,teacher t WHERE s.id = t.t_id;
LEFT JOIN,RIGHT JOIN同理
3.学习JDBC,给JDBC流程写注释
明天计划的事情:
1.学习JDBC部分的结果集,事务处理,连接池
2.开始Java语法的学习
遇到的问题:
收获:
1.熟悉了表的排序,分页,简单的联表查询
2.了解了JDBC常用接口和类
1.DriverManager——用于管理JDBC驱动的服务类
主要功能是获取Connection对象
2.Connection(接口)——代表数据库连接对象,想要访问数据库必须先获得连接
常用方法:
Statement createStatement() throws SQLExcetpion;
//返回一个Statement对象
PreparedStatement preparedStatement(String sql) throws SQLExcetpion;
//返回一个预编译的Statement对象
3.Statement——用于执行SQL语句的工具接口,该对象就是用于执行我们的增删改查,执行查询时,会返回查询到的结果集
常用方法:
ResultSet executeQuery(String sql) throws SQLExcetpion;
//只能用于执行SQL查询语句,返回查询结果对应的Result对象
int execute(String sql) hrows SQLExcetpion;
//用于执行DML语句,返回受影响的行数
//用于执行DDL语句,返回0
boolean execute (String sql) hrows SQLExcetpion;
//可以执行任何SQL语句,如果执行后第一个结果为Result对象,则返回true
//第一个结果为受影响的行数或没有结果,返回false
4.PreparedStatement——预编译的Statement对象,是Statement的子接口
PreparedStatement对象已经预编译了SQL命令,只需传入命令参数,避免了数据库每次都要编译SQL语句,性能更好
还可以解决SQL注入问题,比Statement多了如下方法
void setXxx(int paramenterIndex,Xxx value)
5.ResultSet——结果集对象,包含访问查询结果的方法(一般只用在查询中)
常用方法(移动指针):
void close();释放ResultSet对象
boolean next();将ResultSet指针定位到下一行,移动后的指针指向一条有效记录,返回true;
2.JDBC编程步骤
加载驱动 我要去超市买东西
连接数据库 建造超市道路
创造Statement载体 造一辆车
传输SQL语句,带回结果集 开车带着钱去,带着东西开车回来
处理结果 卸货
关闭数据库资源 毁掉建的路,造的车
评论