前言:
mySQL的知识比较独立,也比较散乱,本篇文章主要目的是以最少的文字回顾整个MySQL的知识,用来查漏补缺的,对于不清楚的地方好针对性的去强化巩固。
1.能够说出数据库的作用
存储数据
2.能够对使用SQL创建、删除数据库
创建:
create database 数据库名 character set 编码表
--mysql中utf8.不是utf-8
删除:
drop database 数据库名;
使用数据库:use 数据库名
查看正在使用的数据库:select database();
3.能够使用SQL对表进行增、删、改、查操作
增: create table 表名;
删: drop table 表名
改:alter table 表名 。。。。
查:show tables;
4.能够使用SQL对表中数据增、删、改操作
增: insert into 表名(字段名,...) values(值) 或者 insert into 表名 values(值)
批量增加:insert into 表名 values(值), (值),(值)...
删: delete from 表名 where 条件
改:update 表名 set 字段名=字段值,字段名=字段值,字段名=字段值... where 条件
5.能够对使用SQL对表中数据基础查询操作
select * from 表名
6.能够对使用SQL对表中数据条件查询操作
select * from 表名 where 条件
7.能够对使用SQL对表中数据分组查询操作
select * from 表名 where 先筛选条件 group by 字段名,字段名,... having 分组后筛选条件
8.能够对使用SQL对表中数据排序查询操作
select * from 表名 where 先筛选条件 group by 字段名,字段名,... having 分组后筛选条件 order by 字段名 asc(升序,默认)/desc(降序)
9.能够对使用SQL对表中数据分页查询操作
select * from 表名 where 先筛选条件 group by 字段名,字段名,... having 分组后筛选条件 order by 字段名 asc(升序,默认)/desc(降序) limit 起始索引,每页显示数据行数
10. 约束:
主键约束:唯一+非空 primary key , 主键自动增长:auto_increment 非空约束:not null 唯一约束:unique 默认约束:添加数据不给值,使用默认值。 default 外键约束:使用在多表中,维护表关系。 [constraint 外键约束名] foreign key(作为外键的字段名) references 主表(主键); constraint fk_order_id foreign key(order_id) references tb_order(id);
11.多表设计:
表关系:
1)一对一:在任意一方将另一方的主键作为外键
2)一对多:将一方的主键作为多方的外键
3)多对多:创建中间表,在中间表中将主表的主键作为外键
12.多表查询:
1)连接查询:
I:内连接查询:
a:隐式内连接 select * from 表名1,表名2,... where 条件
b:显示内连接 select * from 表名1 inner join 表名2 on 条件
II:外连接查询
a:左外连接 :查询表公共部分和左表的全部内容
select * from 表名1 left outer join 表名2 on 条件
b:右外连接 :查询表公共部分和右表的全部内容
select * from 表名1 right outer join 表名2 on 条件
2)子查询:
13.能够为表添加主键约束、非空约束、唯一约束
字段名 数据类型 primary key -- 主键约束
字段名 数据类型 not null -- 非空约束
字段名 数据类型 unique -- 唯一约束
14.能够为表添加外键约束
[constraint 外键约束名] foreign key(中间表的外键字段名) references 主表(主键)
15.能够说出表与表的三种关系
一对一:将任意一方的主键作为另一方的外键
一对多:将一方的主键作为多方的外键
多对多:创建中间表维护两张主表的关系,在中间表中至少含有两个主表的主键作为外键
16.能够使用SQL从多张表中查询数据
子查询:
1.单行单列:使用比较运算符作为条件
2.多行单列:使用in作为条件
3.多行多列:作为临时表,使用as起别名,可以省略as
连接查询:
1.确定几张表
2.分析条件
3.分析查询的字段
17.能够说出事务的作用
主要使用针对增删改语句,要成功都成功,要失败都失败
18.能够使用SQL开启事务、提交事务、回滚事务
start transaction; -- SQL开启事务
commit; -- 提交事务
rollback; -- 回滚事务
19.能够说出JDBC的作用
使用java代码操作数据库 java database connection
20.能够使用Connection对象管理事务
conn.setAutoCommit(false); 开启事务
conn.commit();提交事务
conn.rollback();回滚事务
21.能够使用JDBC对数据库进行增删改查操作
1)注册驱动
2)获取连接
3)获取发送sql语句的预编译对象
4)发送sql executeUpdate()
5) 处理结果
6)释放资源
22.能够使用ResultSet对象遍历结果集
while(rs.next()){
rs.getXxx(第几列或者字段名,如果有别名只能书写别名)
}
23.能够使用PreparedStatement防止SQL注入
PreparedStatement pst = conn.prepareStatement(sql);
给占位符赋值 pst.setXxx(第几个占位符,实际值);
pst.executeUpdate(); 增删改
pst.executeQuery();查询
24.能够说出数据库连接池作用
优化获取连接,将连接放到连接池中,使用的时候直接从连接池中获取连接,使用完毕将连接放到连接池中
25.能够使用Driud数据库连接池获取Connection对象
创建属性集对象
Properties p = new Properties();
加载配置文件
p.load(new FileInputStream(配置文件相对路径));
获取德鲁伊连接池对象
DataSource ds=DruidDataSourceFactory.createDataSource(p);
获取连接
Connection conn = ds.getConnection();
26.能够获取Connection对象
DriverManager.getConnection(url,username,password);