基础复习05

来源:互联网 发布:淘宝搜索模型 编辑:程序博客网 时间:2024/06/03 14:00

1.什么是MySQL,是用来干什么的
是一种关系型数据库管理系统,用来存放实体和实体之间的关系的.

2.是怎么来储存数据的
一般一个应用对应一个数据库,一个数据库中有很多表,一个类可以对应一个表,比如商品什么的.
一个表里面会有很多数据,一个商品实例对应一条数据.
总结就是: 数据库管理系统 -- 数据库 -- 表 -- 数据

3.什么是sql
结构化编程语言,是一种特殊的编程语言.

4.对数据库的crud
创建数据库: create database 数据库名称
查看数据库: show databases  
删除数据库: drop database 数据库名称
切换数据库: use 数据库名称
显示正在使用的数据库名称: select database();

java的数据类型对应到sql中的数据类型

byte/short/int/long    tinyint/smallint/int/bigint
float   float
double   double
boolean   bit
char/String   char/varchar
data                datetime/timestemp

char/varchar 的区别: char(8)"hello" -- "hello   "    varchar(8) "hello" -- "hello"

5.对表的crud
单表的约束:用来规范数据的完整性
常用的单表约束:
primary key  主键约束
unique       唯一性约束
not null     非空约束
auto-increment 自增长
注意: 一个表中的主键约束只有一个,自增长也只有一个

查看表: show tables 
删除表: drop table 表名
添加表: 添加列 add 删除列 drop 修改列的长度 modify  更改列名 change
更改表: alter table 表名  更改表名: rename to 修改表的字符集 character set


6.对表的记录的crud
添加表记录:  insert into  表名字 values(记录一,记录二,记录三)
删除表记录: delete from 表名 [where条件]  删除是删除一条记录,如果不带条件就是删除整个表记录
修改表记录:  update 表面 set 列名1=值1,列名2=值2 ...[where条件] 注意: 如果不加条件就是修改这个表的所有记录


****************    查看表记录:**************
查看所有记录: select * from 表名
查看某列记录: select 列名1,列名2 from 表名 
条件查询:     select * from 表名 where 条件
排序查询:     select * from 表名 where 条件 order by 列名 asc(升序)  desc(降序)
聚合函数查询 求和查询: select sum() from 表名
统计查询: select count() from 表名
最大值查询: select max() from 表名
最小值查询: select min() from 表名
求名均值:   select avg() from 表名
分组查询:     select * from 表名 group by 列名   


注意where语句不能使用聚合查询,使用聚合查询可以用having语句

 

1多变设计之外键约束
用来表示数据之间的关系,用来保持数据的完整性和完整性.如果一个表的字段和其他表的字段的关系,就需要给这个字段添加外键指向
其他字段有关系的主键

2.多表设计的关系
一对多的关系:
建表原则,在多的一方创建外键指向一的一方的主键
多对多的关系:
建表原则,建立第三方表表示多对多的关系,至少要有两个字段作为外键分别指向双方的主键.
一对一的关系:
先假设一对一的关系是一对多的关系,在多的一方创建外键指向一的一方的主键,并把这个外键设置成唯一

3.多表查询(一定掌握)****
分为连接查询和子查询:

4.多表查询之连接查询(一定掌握)****
交叉连接:查询到的是两个表的积卡尔迪
内连接:查询到的是两个表公共的数据
外连接之左外连接:以左边表为基准,查询到两个表公共的数据和左边表的所有数据
外连接之右外连接:以右边表为基准,查询到两个表公共的数据和右边表的所有数据

5.多表查询之子查询
一个查询语句里面嵌套一个查询语句

6.事物:
什么是事物: 指的是逻辑上的一组操作,要么全部成功,要么全部失败
怎么使用事物:开启事物,start transaction
提交事物,commit
 
事物的特征:
原子性, 组成事物的最小单元是不可分割的,要么同时成功要么同时失败
一致性, 执行事物前后,数据的完整性是一致的
隔离性, 在数据库中,各个事物是独立的,不受其他事物的影响
持久性, 事物一旦结束,

脏读: 一个事物读到了另一个事物未提交的数据
不可重复读: 一个事物读到了另一个事物已提交的数据的update数据
幻读,虚读: 一个事物读到了另一个事物已提交的数据的insert数据

事物的隔离级别:
read uncommitted  脏读,不可重复读,幻读/虚读都有可能发生
read committed 避免了脏读,但是不可重复读和幻读有可能会发生
repeatable-read 避免了脏读和不可重复读,但是幻读有可能会发生
serializable  脏读,不可重复读,幻读/虚读都避免了



1.什么是JDBC,有什么作用
java database connection java数据库连接.是java语言编写的一组用来实现连接数据库的类和接口.作用是使用java来连接数据库和接口

什么是驱动:两个设备之间的通信桥梁.

2.入门案例的编写   (先把工作空间的编码改为utf8,再导入驱动)
步骤:
1.注册驱动
2.获取连接
3.执行sql
4.释放资源

3.driverManager的作用
是用来注册驱动和获取连接的

4.connection的作用
是用来获取执行语句的管理事物的

5.statement的作用
是用来执行sql语句和批处理的

6.ResultSet
查询操作会得到一个结果集.我们可以遍历这个结果集

7.jdbcutils工具类的提取:
为什么要提取工具类:
使用jdbc对数据库进行操作时发现,有些代码的内容是重复的.在java中如果有重复的代码出现,我们可以将这些相同的代码提取出来
写一个方法.对于jdbc,其中的注册驱动,获取连接和释放资源的内容是相同的,就可以可以把他们提取出来,写一个工具类.

8.什么是注入漏洞:
当网站有登录的操作时,用户之所以能够登录成功,是因为在数据库中能够找到对应的一条用户名和密码信息.假设用户只通过输入用户名就可以登录成功,就称为注入漏洞.



1.JDBC的事物管理
步骤: 同过connection建立连接
 关闭自动提交, setautocommit(),传入false
 提交事物, commit()
 回滚事物, rollback()

2.连接诶池
什么是连接池: 就是一个容器,用来储存Connection连接对象的.
为什么要使用连接池: 创建和销毁连接是需要时间的,我们在初始化服务器的时候可以先创建一些连接,把这些连接存放在内存中.
使用的时候从内存中获取,使用完毕归还到连接池中.从内存中获取和归还的效率要远远高于创建和销毁的效率.

3.druid开源连接池
是阿里巴巴研发的开源项目

使用步骤:
1.导入jar包
2.创建DruidDataSourse对象
3.设置连接参数

4.C3P0连接池
使用步骤1: 创建连接池对象  ComboPooledDataSource dataSource = new ComboPooledDataSource();
手动设置参数 
获取连接

使用步骤2:  配置文件
创建连接池对象  ComboPooledDataSource dataSource = new ComboPooledDataSource();
获取连接

5.JDBC工具类的改进
把创建连接池的代码放到工具类中. 创建连接很好资源,创建连接池更耗资源,一个应用只需要创建一个连接池就可以了.

6.DButils
什么是dbutils  是工具类,封装了增删改查的操作,简化了编程

DBUtils的API
1.两个核心对象 DBUtils对象和QueryRunner对象
原创粉丝点击