黑马程序员技术交流社区
标题: 【石家庄校区】Mysql&JDBC学习笔记 [打印本页]
作者: 马三保 时间: 2018-5-9 17:24
标题: 【石家庄校区】Mysql&JDBC学习笔记
本帖最后由 马三保 于 2018-5-21 15:23 编辑
【石家庄校区】Mysql&JDBC学习笔记
1. char和varchar的区别:char代表是固定长度的字符或字符串;varchar代表的是可变长度的字符串.
2. Sql中的日期类型:1)datetime类型和timestamp类型的区别:datetime就是既有日期又有时间的日期类型,如果没有向这个字段中存值,默认存入null,而timestamp默认存入的是当前系统时间.2)date类型只有日期,time类型只有时间没有日期.
3. 数据库添加记录注意事项:1)值的类型与列的类型一致;2)值与列的顺序一一对应;3)字符串类型或者日期类型要家长单引号;4)值的长度不能超过列的定义的长度.
4. Delete和truncate都能删除表中的全部数据,区别:delete是将表中的记录一条一条的删除,truncate是将表删除,然后创建一个相同结构的表,但是delete是一个事务,可以回滚,删除数据后能够恢复,truncate不是事务,不能回滚,删除后不能恢复.delete属于DML,truncate属于DDL.事务不能控制DDL.
6. Sql中where后面不能跟聚合函数.
7. 选择器是用来寻找标签的是从上往下找的过程,例如标签选择器,假如寻找input标签,那么会从上往下找到所有的标签,每一个标签都是一个独立的节点,选择器不会返回一个数组,如果要对标签进行操作,直接操作就行;在假如根据标签找到了一个下拉列表,那么这个下拉列表的options属性就是一个数组,要想单独操每一个option,就要遍历options数组来实现.
8. 一对多的关系借助外键进行关联,多对多的关系借助第三张表进行关联.一对一的关系可以建成一张表,如果一定要分开建表,那就设置外键唯一的约束.
9. 多表查询:1)内连接(得到两个表中的共有的部分;根据写法的不同分为显示内连接和隐式内连接,得到的结果一样,只是写法不同);2)外连接(分为左外连接和右外连接,左外连接查寻到的是左边表的的所有数据,即使右边表没有与之匹配的数据,右外连接查询到的是右边表的所有数据,即使左边表没有与之匹配的数据);3)子查询.
10. 事务的特性:1)原子性(事务的不可分割,组成事务的各个逻辑单元不可分割);2)一致性(事务执行的前后,数据完整性保持一致);3)隔离性(事务执行不应该受到其他事务的干扰);4)持久性(事务一旦结束,数据就持久化到数据库中).
11. group by必须在最后面,而且根据该列分组,那么这一列必须在select里面.
12. 单元测试工具的使用:必须使用public修饰,没有返回值,没有参数.
13. 如果sql语句中给字段取了别名,结果集中获取该字段时要使用别名.
14. 配置文件中是键值对的形式,没有引号,不能有空格,不能有分号.
15. Statement与preparedStatement的区别:preparedStatement存在一个预编译的过程(固定sql的格式,关键字不会再增加),而且可以防止sql注入.
16. 使用preparedStatement进行模糊查询时,like的后面要写成”?”,然后使用方法设置的时候加上”%”.
17. JDBC使用流程:1)加载驱动(Class.forname(“com.mysql.jdbc.Driver”););2)获取连接(Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/数据库名称”,”数据库账户”,”密码”););3)编辑SQL语句(值使用?占位符);4)创建执行sql语句对象(PreparedStatement pstmt=conn.prepareStatement(sql语句););5)添加数据;6)执行语句(两个方法:第一个executeQuery();第二个executeUpdate());7)遍历输出.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |