1.数据库查漏补缺
Day01
去重 distinct
In关键字的使用 like关键字 % _的区别
Truncate 表名 删除所有数据
Day02
Oder by desc/asc升序或者降序
Group by 分组
Having一般和group by一块使用
Having一定要跟在group by 后面,而且后面可以使用聚合函数。
Where一定写在group by之前,后面不能跟聚合函数
Limit x,y y为一页显示几条,x为从x+1条开始显示,如果为0可以省略不写,直接从第一条进行显示。
主键:非空唯一
auto_increment自增,如果想设初始值,在创建表语句的后面加上auto_increment=初始值
约束分为:主键约束 唯一约束 非空约束 外键约束 默认约束
最复杂的为外键约束,要想删除外键,应该先删除从表的外键,在进行数据库的相关操作,也可以在创建外键的时候使用级联操作,这样就可以随意更改数据了
语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
例:alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
Day03
内连接
可以直接连表查select 表一,表二 where id=id
也可以通过select * from 表一 inner join 表二 on 条件
左外连接:select * from 表一 left join 表二 on 条件 以左表为基准,有的匹配,没的也显示
右外连接:select * from 表一 right join 表二 on 条件 以右表为基准,有的匹配,没的也显示
子查询:相当于嵌套,一个结果作为查询条件进行第二次查询
事务:
事务的四个特性:原子性 一致性 隔离性 持久性
回滚点相关概念
事务的隔离级别:读未提交 读已提交 可重复读 串行化
脏读、不可重复读、幻读概念
DAY04
索引 视图 存储过程 函数-游标 触发器
-
select 字段列表 from 表明列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定
-
distinct 用来去重
-
条件查询中如果为空null 用 where 字段名 Is Null来进行判断,错误写法为where字段名=null
-
like中 %不限定个数,_限定为单个位匹配
-
ASC升序 Desc降序
-
COUNT计算个数 max计算最大值 min计算最小值 sum计算和 avg 计算平均值
-
where和have的区别,where在分组之前进行限定,having在分组之后进行限定,如果不满足结果,则不会被查询出来
-
limit中显示的是查询的条数,limit 0,3 第一个为偏移量值为当前第几条数据-1
-
几种约束 主键primary key 非空not null 唯一 unique 外键 foreign key
-
级联操作 on update cascade级联更新还有级联删除,级联插入
-
内连接查询 from 表名1 t1 表名2 t2 where t1.某字段=t2.某字段
-
显示内连接查询
select * from emp inner join dept on emp.'dept_id'=dept.'id' -
外连接查询:
-
左外连接 表1 left jion 表2 on 条件
-
右外连接 表1 right join 表2 on 条件
-
子查询 select max(salary) from emp
-
-
事务:ACID 原子性 一致性 隔离性 持久性,不用我再多说什么了吧,原子说提交都提交,绑定在一块 一致,状态一致 隔离 互不干扰 持久 保存状态会更新保存下去
-
开启事务 start transaction 回滚 rollback 提交 commit
-
存在的问题
-
脏读:一个事物,读取到另一个事务中没有提交的数据(事务B修改了一些数据,还没提交,事务A就来读了,读完了,事务B把数据提交了,所以读的数据不对)
-
不可重复读:两次读取到的数据不一样(事务A和事务B,B修改了部分数据,事务A读的就不一样了)
-
幻读:一个事务操作数据表的所有记录,另一个事务添加了一条数据,一个事务查询不到自己的修改
-
隔离级别
-
read uncommitted 读未提交 产生的问题是脏读、幻读、不可重复读
-
read commited 读已提交 产生的问题,不可重复读 幻读
-
repeatable read 可重复读(mysal默认) 产生的问题幻读
-
serializable:串行化 可以解决所有的问题
-
隔离级别从小到大安全性越来越高,但效率越来越低
2.JDBC
-
-
java database connnectivity java数据库连接
jdbc的步骤:导入jar包--注册驱动--获取数据库连接对象Connection--定义sql--执行sql语句statement--执行sql,接受返回结果--处理结果--释放资源
class.forName("com.mysql.jdbc.Driver")Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306","root","root")String sql ="update account set balance =500 where id=1"Statement stmt = conn.createStatement();int count =stmt.ececuteUpdate(sql);stmt.close();conn.close();PreparedStatement:执行sql对象
JDBC工具类
JDBCUtils
jdbc对象来管理事务,setAutoCommit commit提交事务 rollback 回滚事务
数据库连接池:池化技术,减少系统开销,创建一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器
好处:节约资源,用户访问高效,C3P0 Druid
3.前端知识
1.html
html不用说什么了吧
color width size align(center left right)
img 有序列表 ol li 无序列表 ul li
a标签:href 指定访问资源的URL
target:指定打开资源的方式:_self 在当前页面打开 _blank在空白页面打开
div 块级标签,占一整行 span 标签,文本信息在一行展示,行内标签,内联标签
form标签:
action指定提交数据的URL
method指定提交的方法
-
get
-
post
input:type属性 text文本框 placeholder指定输入框的信息,当输入框内容发生变化,会自动清空提示信息 password radio单选框 checkbox 复选框
file 文件选择框
hidden 隐藏域
submit 提交按钮 button 普通按钮 image 图片提交按钮 src属性指定图片的路径
textarea 文本域 cols 指定列数 rows默认多少行
2.css
层叠样式表
主要有3种方式 内联样式,外部样式,内部样式
选择器有3种:id选择器 元素选择器 类选择器
字体、文本 font-size color text-align line-height
背景 background 边框 border 尺寸width height 盒子模型:margin padding
3.javaScript
一门客户端脚本语言,运行在客户端浏览器中的,每一个浏览器都有javascript的解析引擎
不需要编译,直接就可以被浏览器解析执行了
可以用来增强用户和html页面交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户体验
注释:单行注释 多行注释
数据类型: number string boolean null undefined 引用数据类型 对象
var 变量名 =初始化值 typeof运算符,null运算后得到的是object
流程控制: if...else... switch(变量) case 值: while do...while for
function 方法名称(形式参数列表) {方法体}
正则表达式:定义字符串的组成规则
document.getElementById("id值")
innerHTML获取元素对象
onclick点击事件
window窗口对象 navigator浏览器对象 screen显示器屏幕对象 history历史记录对象 location地址栏对象
alert()显示带有一段消息和一个确认按钮的警告框
confirm()显示带有一段消息以及确认按钮和取消按钮的对话框
prompt()显示可提示用户输入的对话框
close()关闭浏览器的窗口
open()打开一个新的浏览器窗口
setTimeout()在指定毫秒数后调用函数和计算表达式
clearTimeout()
getElementById()
getElementByTagName()
getElementByClassName()
getElementByName()
removeAttribute()删除属性
setAttribute()设置属性
appendChild() 向节点的子节点列表的结尾添加新的子节点
removeChild() 删除当前节点的指定子节点
replaceChild()用新节点替换一个子节点
事件监听 onclike 单击事件 ondclclick 双击事件 onblur失去焦点 onfocus元素获得焦点
onload 一张页面或者一幅图像完成加载
onmousedown 鼠标按钮被按下 onmouseup鼠标按键被松开 onmousemove鼠标被移动
onmouseover鼠标移到某元素之上 onmouseout鼠标从某元素移开
onkeydown某个键盘按键被按下 onkeyup某个键盘按键被松开 onkeypress某个键盘按键被按下并松开 onchange内容被改变 onselect 文本被选中 onsubmit确认按钮被点击 onreset重置按钮被点击
4.Bootstrap
进行开发,简化编码
使用步骤,引标签,直接用
特点:响应式布局
4.XML文件
必须定义为文档声明,有且仅有一个根标签,属性值必须使用引号引起来,标签必须正确关闭,标签名称区分大小写。version encoding standalone,schema
jsoup是一款java的html解析器