千家信息网

Java数据库知识点有哪些

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章主要介绍"Java数据库知识点有哪些",在日常操作中,相信很多人在Java数据库知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java数据库知识点有
千家信息网最后更新 2024年11月14日Java数据库知识点有哪些

这篇文章主要介绍"Java数据库知识点有哪些",在日常操作中,相信很多人在Java数据库知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java数据库知识点有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

知识点1SQLselect语句完整的执行顺序。

1from子句组装来自不同数据源的数据;

2where子句基于指定的条件对记录行进行筛选;

3group by子句将数据划分为多个分组;

4)使用聚集函数进行计算;

5)使用having子句筛选分组;

6)计算所有的表达式;

7select的字段;

8)使用order by对结果集进行排序。

知识点2SQL 之聚合函数

聚合函数是对一组值进行计算并返回单一的值的函数,它经常与select语句中的group by子句一同使用。

1avg():返回的是指定组中的平均值,空值被忽略。

2count():返回的是指定组中的项目个数。

3max():返回指定数据中的最大值。

4min():返回指定数据中的最小值。

5sum():返回指定数据的和,只能用于数字列,空值忽略。

6group by():对数据进行分组,对执行完group by之后的组进行聚合函数的运算,计算每一组的值。最后用having 去掉不符合条件的组,having子句中的每一个元素必须出现在select列表中。

知识点3:SQL之连接查询

外连接:

左连接(左外连接):以左表作为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null

右连接(右外连接):以右表作为基准进行查询,右表数据会全部显示出来,左表如果和右表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null

全连接:先以左表进行左外连接,再以右表进行右外连接。

内连接:显示表之间有连接匹配的所有行。

知识点4SQLsql注入

通过在 Web 表单中输入(恶意)SQL 语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行 SQL 语句。举例:当执行的 sqlselect * from user where username = "admin" or "a"="a"时,sql 语句恒成立,参数 admin 毫无意义。防止 sql 注入的方式:

1)预编译语句:如,select * from user where username = ?,sql 语句语义不会发生改变,sql 语句中变量用?表示,即使传递参数时为"admin or ‘a’= ‘a’",也会把这整体当做一个字符创去查询。

2Mybatis 框架中的 mapper 方式中的 # 也能很大程度的防止 sql 注入($无法防止 sql 注入)。

知识点5Mysql性能优化

1)当只要一行数据时使用 limit 1

查询时如果已知会得到一条数据,这种情况下加上 limit 1 会增加性能。因为 mysql 数据库引擎会在找到一条结果停止搜索,而不是继续查询下一条是否符合标准直到所有记录查询完毕。

2)选择正确的数据库引擎

Mysql 中有两个引擎 MyISAMInnoDB,每个引擎有利有弊。MyISAM 适用于一些大量查询的应用,但对于有大量写功能的应用不是很好。甚至你只需要update 一个字段整个表都会被锁起来。而别的进程就算是读操作也不行要等到当前 update 操作完成之后才能继续进行。另外,MyISAM 对于 select count(*)这类操作是超级快的。

InnoDB 的趋势会是一个非常复杂的存储引擎,对于一些小的应用会比 MyISAM 还慢,但是支持"行锁",所以在写操作比较多的时候会比较优秀。并且,它支持很多的高级应用,例如:事物。

3)用 not exists 代替 not in

Not exists 用到了连接能够发挥已经建立好的索引的作用,not in 不能使用索引。Not in 是最慢的方式要同每条记录比较,在数据量比较大的操作红不建议使用这种方式。

4)对操作符的优化,尽量不采用不利于索引的操作符

如:in not in is null is not null <>等某个字段总要拿来搜索,为其建立索引:Mysql 中可以利用 alter table 语句来为表中的字段添加索引,语法为:alter table 表明add index (字段名)

知识点6Mysql 数据库架构图

知识点7Mysql性能优化

下面代码创建了一个叫 pr_addMySQL 存储过程,这个 MySQL 存储过程有两个 int 类型的输入参数"a""b",返回这两个参数的和。

1drop procedure if exists pr_add; (备注:如果存在 pr_add 的存储过程,则先删掉)

2)计算两个数之和(备注:实现计算两个整数之和的功能)

create procedure pr_add ( a int, b int ) begin declare c int; if a is null then set a = 0;

end if;

if b is null then set b = 0; end if;

set c = a + b;

select c as sum;

知识点8MySQL 中文乱码问题完美解决方案

解决乱码的核心思想是统一编码。我们在使用 MySQL 建数据库和建表时应尽量使用统一的编码,强烈推荐的是 utf8 编码,因为该编码几乎可以兼容世界上所有的字符。

数据库在安装的时候可以设置默认编码,在安装时就一定要设置为 utf8 编码。设置之后再创建的数据库和表如果不指定编码,默认都会使用 utf8 编码,省去了很多麻烦。数据库软件安装好之后可以通过如下命令查看默认编码:

1)查询数据库软件使用的默认编码格式

show variables like "%colla%";

show varables like "%char%"

2)修改数据库默认编码为 utf8

SET character_set_client='utf8';

SET character_set_connection='utf8';

SET character_set_results='utf8';

3)创建数据库的时候指定使用 utf8 编码

CREATE DATABASE `test`

CHARACTER SET 'utf8'

COLLATE 'utf8_general_ci';

4)创建表的时候指定使用 utf8 编码

CREATE TABLE `database_user` (

`ID` varchar(40) NOT NULL default '',

`UserID` varchar(40) NOT NULL default '',

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

5)修改具体某数据库或表的编码

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

到此,关于"Java数据库知识点有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

数据 数据库 编码 知识 知识点 语句 查询 字段 子句 两个 函数 引擎 索引 参数 方式 时候 存储 学习 应用 性能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发责任分配 浦东杯长三角网络安全大赛题目 ipv6哪些国家有服务器 剩余0秒安装数据库 网络安全与防护期末考试 红安县网络安全监察 华为企业服务器设备健康检查服务 久游互联网科技有限公司 中小学生教肓与网络安全 金融人才流向互联网科技 浙江1u服务器机箱订制 失落的方舟美西哪个服务器好 软件开发为什么会被劝退 服务器硬盘转换 硅谷科技与乌镇互联网大会 新途网络技术服务有限公司 开了服务器安全狗网站打不开 网络安全加密的鼻祖 学室内装修和软件开发 网络安全吗英文翻译 蓟州区节能软件开发服务供应 长盈网络技术有限公司地址 顶层数据库架构设计 上海瑞丹网络技术有限公司 cdh数据库配置文件 观摩网络安全员比赛 小学网络安全培训及讲座 生物信息学相关的数据库 网络安全信息技术课课件 网络安全模式还要密码吗
0