一、数据库概述
1.定义
存放数据的仓库,在计算机中需要对数据进行处理然后才存放到数据库中 。
数据库存储的基本特征:
- 永久存储
- 有组织
- 可共享
2.mysql数据库常用命令
- Show dabases:显示所有数据库
- Use 数据库名:使用当前数据库
- Show tables:查看当前数据库下的所有表
- Desc 表名:查看表结构
- 设置中文编码:set character_set_results=”GBK”;
- \h:显示命令行清单
3.sql语言分类
- 数据定义语言(DDL): create、drop、alter,对数据库对象结构的改变(创建表,删除表结构,修改表结构)
- 数据操纵语言(DML): 对数据的修改、insert(添加数据)、update(修改数据)、delete(删除数据)、select(查询数据)
- 事务控制语言(TCL Transcation Control Language):commit(提交事务)、
rollback(回滚事务) - 数据控制语言(DCL):对数据权限控制、grant(赋予权限)、revoke(撤销权限)
二、函数
1、文本处理函数
- left(str,n):表示截取str字符串左边n个字符
- right(str,n):表示截取str字符串右边n个字符
- length(str):返回str字符串的长度
- locate(substr,str):返回substr在str中出现的位置
- lower(str):将str全部转成小写
- upper(str):将str全部转大写
- reveres(str):将str字符串的顺序反过来
- ltrim(str):去掉str左边的空格
- rtrim(str):去掉str右边的空格
- trim(str):去掉str两边的空格
2 、日期时间处理函数
- 返回当前日期:curdate()、current_date()
- 获取当前时间:curtime()、current_time()
- 获取当前日期和时间:now()、CURRENT_TIMESTAMP()、LOCALTIME() SYSDATE()
- month(n) | monthname(n):返回n时间中的月份
- 返回星期几:DAYNAME(d)、DAYOFWEEK(d)、WEEKDAY(d)
- 获取当前星期是这一年的第多少个:WEEK(d)、WEEKOFYEAR(d)
- 获取某个日期是当前年的第多少天:DAYOFYEAR(d)
- 获取时分秒:hour(n)、minute(n)、secoud(n)
- 将n这个日期增加10天:adddate(n,10)
- 两个日期相减的时间:datediff(n,m)
- 日期格式化:DATE_FORMAT(date,format)
3、聚集函数:
使用聚集函数的查询时候,如果没有分组则不能跟其他属性一起查找。使用聚集函数时,可以使用distinct一起使用,表示去掉重复项再统计聚集函数中,除了count,其他的函数只对数字来统计。where的后面不能直接使用聚集函数
1、求平均值:avg(字段)
2、求最大值:max(字段)
3、求最小值:min(字段)
4、求和:sum(字段)
5、统计个数:count(字段)
三、JDBC连接数据库
1、核心API :(来自 java.sql.*包)
· DriverManager 类 : 用于管理驱动类,从而可以获取连接对象
· Connection 接口: 表示某个数据库的连接对象,如果要访问数据,必须获取该对象
· Statement 接口: SQL执行器对象 ,可以执行sql语句(insert ,update ,delete,select。。。)
· PreparedStatement 接口:预编译的sql执行器, 属于Statement的子接口 ,用于参数化执行sql语句
· ResultSet 接口: 结果集对象,用户查询返回的结果封装 ,是一个集合
掌握它们的常用方法
2、连接步骤
步骤1: 导入jar包
步骤2: 加载驱动类
Class.forName(“驱动类全类名”)
步骤3 :通过DriverManager获取连接对象,此时需要指定数据库url , 用户名 , 密码
String url="jdbc:mysql://localhost:3306/j1905?useUnicode=true&characterEncoding=UTF-8";
String user="root";
String password="123456";
Connection conn= DriverManager.getConnection(url, user, password);
步骤4:获取sql执行器 Statement
Statement st = conn.createStatement();
步骤5 执行sql语句,并返回结果
// 对于添加,删除,修改,都是 executeUpdate(sql)
int count = st.executeUpdate(sql);
// 对于查询 executeQuery
ResultSet rs = st.executeQuery(sql);
// rs.getInt(1) : 获取第一个字段 ,且int类型
//rs.getString(2) 获取第二个字段 String类型
// rs.getString("loc") 获取 字段名是 loc 的 String类型
步骤6 关闭数据库连接
try {
//关闭连接
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}