石家庄网站建设雨点牛,wordpress案例讲解,公司网站建设推广,那些做测评的网站好目录数据库数据和信息Data数据数据库数据库管理系统总结常见的数据库管理系统关系型数据库连接查询交叉连接、笛卡尔积内连接左连接右连接嵌套查询Jar在Java项目中使用.jar文件JDBC核心接口单表查询SQL注入简化JDBC视图View创建视图使用视图删除视图事务transaction事务的特性A…
目录数据库数据和信息Data数据数据库数据库管理系统总结常见的数据库管理系统关系型数据库连接查询交叉连接、笛卡尔积内连接左连接右连接嵌套查询Jar在Java项目中使用.jar文件JDBC核心接口单表查询SQL注入简化JDBC视图View创建视图使用视图删除视图事务transaction事务的特性ACIDAtomicity原子性Consistency一致性Isolation隔离性Durability持久性存储引擎数据库
顾名思义保存数据
数据和信息
Data数据
任何描述事物的文字或符号都可以称为数据。软件开发就是为了收集数据从中筛选出有用的信息。信息就是进过分析筛选后的数据。数据需要保存保存的介质有内存或硬盘。内存中的数据是临时的随着系统的关闭数据也会消失。硬盘中的数据是永久就算系统关闭数据依然保留。excel等文件保存数据是一种保存到硬盘中的途径如果需要大量数据保存文件系统就不再方便。使用一个系统化的数据仓库才能高效地管理数据。
数据库
DataBase ,称为数据库简称DB运行在操作系统上按照一定的数据结构保存数据的仓库。是一个电子化的文件柜。数据永久保存在硬盘中。
数据库管理系统
DataBase Manager System简称DBMS 通常所说的数据库其实是指数据库管理系统如MySQL、SQLServer、Oracle等。是一种操作和管理数据库的大型软件用于建立、使用和维护数据库。
总结
数据Data需要永久保存在数据库中 学号(字段) 姓名(字段) 专业(字段) 1001 小王 计算机 1002 小李 计算机 1003 小赵 计算机 数据库DB是运行在操作系统上的一个软件 数据库管理系统DBMS是管理数据库的一个软件 学习数据库就是学习如何使用DBMS创建、使用数据仓库来管理数据
常见的数据库管理系统
关系型数据库
关系型数据库是主流的数据库类型。数据通过行row和列column的形式(表格)保存。
每行称为一条记录。 每列称为一个字段。
连接查询
交叉连接、笛卡尔积
将两张表中的数据两两组合得到的结果就是交叉连接的结果也称为笛卡尔积。
集合A{a,b}
集合B{1,2,3}
集合A x 集合B {a1,a2,a3,b1,b2,b3}
select * from 表1,表2;
select * from 表1 cross join 表2;
select * from 表1 inner join 表2;以上三种方式都能将两张表中的数据互相组合其中有很多无效数据。
内连接
在交叉连接的基础上筛选出关联的数据。
select * from 表1,表2 where 表1.字段 表2.字段;
select * from 表1 inner join 表2 on 表1.字段 表2.字段;-- 如查询所有图书详情和类型名
select * from 图书详情表 t1图书类型表 t2 where t1.类型编号 t2.类型编号;select * from 图书详情表 t1 inner join 图书类型表 t2 on t1.类型编号 t2.类型编号;通常是通过主表的主键字段关联从表的外键字段如果两张表中关联的字段名一致一定要通过表名.字段名进行区分通常还会给表重命名如果使用inner join带条件时需要加入where子句;如果使用,隔开多个表带条件时需要使用and拼接条件内连接只会显示两张表中有关联的数据
左连接
-- 保证左表数据显示完整的情况下关联右表中的数据没有关联的用null表示
select * from 表1 left join 表2 on 表1.字段 表2.字段
-- 最终显示表1中的所有数据关联表2中的数据右连接
-- 保证右表数据显示完整的情况下关联左表中的数据没有关联的用null表示
select * from 表1 right join 表2 on 表1.字段 表2.字段
-- 最终显示表2中的所有数据关联表1中的数据嵌套查询
将查询出的结果继续使用在另一个查询语句中
-- 查询价格最低的图书信息
select * from book_info where book_price (select min(book_price) from book_info)
-- 按类型分组查询每组中图书价格大于平均价格的图书
select * from book_info bi inner join
(select type_id,avg(book_price) as avg from book_info group by type_id)temp
on bi.type_id temp.type_id where book_price avgJar
以.jar为后缀的文件称为Java的归档文件。保存的是Java的字节码.class文件
在Java程序中导入某个.jar文件后就能使用其中的.class文件。
在Java项目中使用.jar文件
1.创建一个Java项目在其中最好新建一个文件夹将.jar文件保存在里面
2.在.jar文件上右键点击“add as library”
JDBC
Java DataBase Connectivity Java数据库连接
用于Java程序连接不同的数据库。
实际是Java中定义的相关数据库连接时所需的接口的集合不同的数据库对其进行了实现。
核心接口 Connection用于设置连接的数据库的地址、账号、密码 PreparedStatement用于预处理、执行SQL语句 **ResultSet**用于保存查询后的数据
以上接口都来自于java.sql包中
单表查询
import java.sql.*;public class Main {public static void main(String[] args) throws ClassNotFoundException, SQLException {//连接mysql数据库实现单表查询//1.加载连接MySQL的驱动Class.forName(com.mysql.cj.jdbc.Driver);//2.连接数据库,提供要连接的数据库的URL、用户名、密码String url jdbc:mysql://localhost:3306/gamedb?serverTimezoneAsia/Shanghai;Connection conn DriverManager.getConnection(url, root, root);//3.构造查询的sql语句String sql select * from hero;//4.处理sql语句PreparedStatement pst conn.prepareStatement(sql);//5.处理执行sql语句后的结果ResultSet rs pst.executeQuery();//6.循环遍历读取查询后的数据while (rs.next()) {//根据字段名获取int id rs.getInt(id);//根据字段顺序获取String name rs.getString(2);String sex rs.getString(3);int price rs.getInt(4);String makeTime rs.getString(5);String position rs.getString(6);System.out.println(id\tname\tsex\tprice\tmakeTime\tposition);}//7.关闭连接rs.close();pst.close();conn.close();}
}SQL注入
在构造sql语句时如果使用字符串拼接的方式构造可变的sql语句可能会造成sql注入的风险导致执行不是预期的sql语句
-- 如删除的sql String sqldelete from 表 where 主键参数;
-- 实际传递 or 11
delete from 表 where 主键 or 11
-- 导致条件永远成立最终删除了所有数据-- 查询的sql String sqlselect * from 表 where namename and pwdpwd;
-- 实际第一个参数传递 or 11 --
select * from 表 where name or 11 -- pwd
-- 导致第二个参数被注释第一个参数永远成立在构造sql语句时使用?占位通过preparestatement方法防止sql注入的风险
简化JDBC
DBUtil数据库工具类
import java.sql.*;/** 定义数据库工具类简化JDBC操作* 可以简化的操作* 1.加载驱动 √* 2.连接数据库 √* 6.关闭 √* */
public class DBUtil {/** 定义静态代码块用于加载驱动* */static {try {Class.forName(com.mysql.cj.jdbc.Driver);} catch (ClassNotFoundException e) {System.out.println(驱动不存在 e);}}//定义静态常量保存连接数据库的字符串private final static String URL jdbc:mysql://localhost:3306/gamedb?serverTimezoneAsia/Shanghai;private final static String USERNAME root;private final static String PASSWORD root;/** 定义静态方法获取连接对象* */public static Connection getConn() {Connection connection null;try {connection DriverManager.getConnection(URL, USERNAME, PASSWORD);} catch (SQLException e) {System.out.println(连接数据库信息异常 e);}return connection;}/** 定义静态方法释放资源* */public static void release(Connection conn, PreparedStatement pst, ResultSet rs) {//使用了哪个接口就关闭那个接口try {if (rs ! null) {rs.close();}if (pst ! null) {pst.close();}if (conn ! null) {conn.close();}} catch (SQLException e) {System.out.println(关闭异常 e);}}
}视图View
视图可以当做数据库中的一个临时表保存一些较为复杂的查询后的结果。 之后可以直接通过该视图查询数据不需要再次编写复杂的sql语句。 视图同时可以隐藏一些查询细节定制查询数据。
创建视图
create view 视图名 as
查询的sql语句;使用视图
修改视图中的数据会直接修改原始表中的数据。
select * from 视图名;删除视图
drop view 视图名;事务transaction
事务是由一组sql语句组成的执行单元这些sql之间一般都互相依赖。 如A给B转账 1.update 表 set money money-1000 where id1 2.update 表 set money money1000 where id2 以上两句sql组成了一个转账的事务。一个事务要么全部执行要么全部不执行。
事务的特性ACID
Atomicity原子性
事务是最小的执行单元要么全部执行要么全部不执行。
Consistency一致性
事务执行前后必须让所有数据保持一致状态。(总体数据守恒) create view 视图名 as 查询的sql语句; select * from 视图名; drop view 视图名;
Isolation隔离性
多个事务并发执行时应该互相隔离互不影响。
Durability持久性
事务一旦提交对数据的改变是永久的。
存储引擎
MySQL5.5版本之前默认使用MyIsam存储引擎不支持事务MySQL5.5版本之后默认使用InnoDB存储引擎支持事务 文章转载自: http://www.morning.gnyhc.cn.gov.cn.gnyhc.cn http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.zwyuan.com.gov.cn.zwyuan.com http://www.morning.hdqqr.cn.gov.cn.hdqqr.cn http://www.morning.wrkcw.cn.gov.cn.wrkcw.cn http://www.morning.ryrgx.cn.gov.cn.ryrgx.cn http://www.morning.qglqb.cn.gov.cn.qglqb.cn http://www.morning.yymlk.cn.gov.cn.yymlk.cn http://www.morning.wdpt.cn.gov.cn.wdpt.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.kstlm.cn.gov.cn.kstlm.cn http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn http://www.morning.chfxz.cn.gov.cn.chfxz.cn http://www.morning.pmghz.cn.gov.cn.pmghz.cn http://www.morning.lthpr.cn.gov.cn.lthpr.cn http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn http://www.morning.kgjyy.cn.gov.cn.kgjyy.cn http://www.morning.wrwcf.cn.gov.cn.wrwcf.cn http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn http://www.morning.jypsm.cn.gov.cn.jypsm.cn http://www.morning.c7496.cn.gov.cn.c7496.cn http://www.morning.sgqw.cn.gov.cn.sgqw.cn http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn http://www.morning.jwpcj.cn.gov.cn.jwpcj.cn http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn http://www.morning.mhrzd.cn.gov.cn.mhrzd.cn http://www.morning.ndynz.cn.gov.cn.ndynz.cn http://www.morning.kaoshou.net.gov.cn.kaoshou.net http://www.morning.wgtr.cn.gov.cn.wgtr.cn http://www.morning.rbnp.cn.gov.cn.rbnp.cn http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.tslwz.cn.gov.cn.tslwz.cn http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn http://www.morning.jcxzq.cn.gov.cn.jcxzq.cn http://www.morning.hybmz.cn.gov.cn.hybmz.cn http://www.morning.dnls.cn.gov.cn.dnls.cn http://www.morning.nbqwt.cn.gov.cn.nbqwt.cn http://www.morning.srltq.cn.gov.cn.srltq.cn http://www.morning.wmmjw.cn.gov.cn.wmmjw.cn http://www.morning.rscrj.cn.gov.cn.rscrj.cn http://www.morning.yrnll.cn.gov.cn.yrnll.cn http://www.morning.llsrg.cn.gov.cn.llsrg.cn http://www.morning.nxnrt.cn.gov.cn.nxnrt.cn http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn http://www.morning.nmymn.cn.gov.cn.nmymn.cn http://www.morning.fhsgw.cn.gov.cn.fhsgw.cn http://www.morning.dpfr.cn.gov.cn.dpfr.cn http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn http://www.morning.dytqf.cn.gov.cn.dytqf.cn http://www.morning.gklxm.cn.gov.cn.gklxm.cn http://www.morning.nzsx.cn.gov.cn.nzsx.cn http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn http://www.morning.ndtmz.cn.gov.cn.ndtmz.cn http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn http://www.morning.jwxmn.cn.gov.cn.jwxmn.cn http://www.morning.fnfhs.cn.gov.cn.fnfhs.cn http://www.morning.mngyb.cn.gov.cn.mngyb.cn http://www.morning.dkzrs.cn.gov.cn.dkzrs.cn http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com http://www.morning.mqbzk.cn.gov.cn.mqbzk.cn http://www.morning.mnjwj.cn.gov.cn.mnjwj.cn http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn http://www.morning.ydnx.cn.gov.cn.ydnx.cn http://www.morning.yskhj.cn.gov.cn.yskhj.cn http://www.morning.pbpcj.cn.gov.cn.pbpcj.cn http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn http://www.morning.dfrenti.com.gov.cn.dfrenti.com http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn http://www.morning.drzkk.cn.gov.cn.drzkk.cn http://www.morning.ckzjl.cn.gov.cn.ckzjl.cn http://www.morning.mqdr.cn.gov.cn.mqdr.cn http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn http://www.morning.tmzlt.cn.gov.cn.tmzlt.cn http://www.morning.rcntx.cn.gov.cn.rcntx.cn http://www.morning.smtrp.cn.gov.cn.smtrp.cn http://www.morning.kqzt.cn.gov.cn.kqzt.cn