MXY---数据库

数据库

数据库:数据库就是管理数据的仓库
数据库分类
1)关系型数据库:Orcale、MYSQL
2)非关系型数据库:Redis
关系、非关系型数据库
1)关系型数据库,建立在紧密关系基础上,也成为传统数据库。以行和列的表形式存储数据,可以简单理解为二维表之间的数据结合。
2)非关系型数据库,建立在松散关系基础之上。
Mysql
1)服务端:处理具体数据维护 保护磁盘
2)客户端:CRUD(增删改查)
Mysql存放位置:my.ini进行默认配置

SQL语句:结构化查询语言简称SQL,是一种特殊目的的编程语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL分类
1)DML 数据库操纵语言
insert、delete、update、select
2)DDL 数据库定义语言
create table
3)DCL 数据库控制语言
grant revoke
4)DQL 数据库查询语言
select语法

数据库常用操作:
1)建库:create datebases 库名 default charset utf8
2)删库:drop database 库名;
3)查看所有库:show databases;
4)使用数据库:use 库名
表的常用操作
1)创建表:create table 表名(字段名 字段类型 (字段长度));
2)添加列:alter table 表名 add column 列名 类型(长度)
3)删除表:drop table 表名;
4)查看所有表:show tables;
5)查看表结构:desc 表名;
6)插入记录:insert into 表名 values(记录);
7)查询记录:select * from 表名
8)修改记录:update 表名 set 字段名=字段值 where 字段名=字段值;
9)删除记录:delete from 表名 where 字段名=字段值
10)排序:select * from 表名 order by 字段名 desc;
11)记录总数:select count(1) from 表名
数据类型
1)char 长度固定 查询速度快但浪费时间
2)varchar 可变字符串 查询稍慢 但节省空间
3)int、tinyint 整数类型
4)float、double 小数类型
5)numeric(5,2) decimal(5,2) 小数共五位 保留两位
6)numeric decimal 表示精确的整数数字
7)date 年月日
8)time 时分秒
9)datetime 时间戳 1970年1月1日到指定日期的毫秒数
字段约束
1)主键约束:为列添加主键约束 列就是主键 主键的特点是唯一且不能为空(primary key)
2)主键自增策略:主键为数值类型,方便维护,设置主键自增策略(auto_increment)
3)非空约束:添加非空约束,列就不能为空,但可以重复(not null)
4)唯一约束:添加唯一约束后 列的值就是唯一不能重复的 但可以为空(unique)
5)外键约束:使用明确代码表示两个表之间的关系
5.1 子表的主键值 必须取自主表的主键值
5.2 主表的记录不能随便删 要保证没有被子表使用才可删
froeign key 字段 references 表(字段)
6)默认约束:添加默认约束后,字段就有了默认值(default)
7)检查约束:添加检查约束后,字段值必须符合检查条件(check)
基础函数
1)lower 数据转小写
2)upper 数据转大写
3)length 数据长度
4)substr 截取字符串
select substr(dname,1,3) from dept;
5)concat 拼接字符串
select concat(dname,“123”) from dept;
6)replace 替换
select replace(dname,“a”,“123”) from dept;
7)ifnull 是否为空
select ifnull(comm,10) from emp;
8)round 四舍五入、ceil 向上取整、floor 向下取整 round(字段名,保留位)
11)uuid 随机数
12)now 年月日时分秒 、curdate 年月日、curtime 时分秒
13)hour 时 minute分 second秒
14)year 年 month 月 day 日
条件查询
1)distinct 去重重复记录行
select distinct loc from dept;
2)where 筛选
3)like 模糊查询 通配符:%,_
4)null 过滤字段是否为空:is null 、is not null
5)between and 区间
6)limit 分页查询 limit(start,end)
7)order by 排序 sal(默认升序) desc(降序)
聚合函数
1)count 总记录数
2)max / min 最大值 / 最小值
3)sum / avg 求和 / 平均数
分组:group
1)group by 分组
2)having 只能配合group by 查询条件
drop、delete、truncate之间的区别
drop 删除库或表,数据和结构定义
delete 和 truncate值时删除表的数据
delete可以指定where条件 删除满足条件的记录 对于自增字段 不清零 truncate 删除所有记录 对于自增字段 重头计数
数据库事务:单个逻辑工作单元执行的一系列操作, 要么完全执行 要么完全不执行
事务特性:ACID(原子性、一致性、隔离性、持久性)
1)原子性:事务操作要么全部完成 要么全不完成,不会结束在中间某个环节,执行时出现错误回滚回最初状态
2)一致性:数据库执行前后,完整性没有被破坏。
3)隔离性:Mysql数据库支持高并发 可能会有安全隐患
4)持久性:事务处理结束后,对数据的修改就是永久的,即使系统故障也不会丢失。
隔离级别
1)读未提交(read uncommitted) 安全性最差 性能最好
2)读提交(read committed)oracle默认的隔离级别 安全性较好 性能较差
3)可重复读(repeatable read)MySQL默认的隔离级别,安全性较好,性能一般
4)串行化(Serializable) 表级锁,读写都加锁,效率低下,安全性高,不能并发

表关联
一对一、一对多、多对一、多对多
多表联查
笛卡尔积:select * from dept,emp
连接查询:inner join(内连接默认)
(left join 左连接、right 右连接)
子查询:(嵌套查询)单行子查询 =
多行子查询 in

索引 index:索引是一种快速查找的数据结构,高校检索。
分类:单值索引、唯一索引、复合索引
1)查看索引:show index from 表名;
2)创建索引:create index 索引名 on 表名(字段名);
3)唯一索引:create unique index 索引名 on 表名(字段名);
4)复合索引:create index 索引名 on 表名(字段,字段)
5)删除索引:alter table 表名 drop index 索引名
最左特性:复合索引,最左匹配原则
索引的优缺点
优点:
1)索引是数据库优化
2)表的主键会默认自动创建索引
3)每个字段都可以被索引
4)大量降低数据库的IO磁盘读写成本,极大5)提高了检索速度
6)索引事先对数据进行了排序,大大提高了查询效率
缺点:
1)索引本身也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也要占用空间
2)索引表中的内容,在业务表中都有,数据是重复的,空间是“浪费的”
3)虽然索引大大提高了查询的速度,但对数据的增、删、改的操作需要更新索引表信息,4)如果数据量非常巨大,更新效率就很慢,因为更新表时,MySQL不仅要保存数据,也要保存一下索引文件
5)随着业务的不断变化,之前建立的索引可能不能满足查询需求,需要消耗我们的时间去更新索引
视图
1)创建视图:create view 视图名 as SQL语句
2)使用视图:select * from 视图名

SQL优化
1)查询SQL尽量不使用select * ,而是具体字段
2)避免在where子句中使用or来连接条件
3)varchar 代替char
4)使用数值代替字符串类型
5)查询尽量避免返回大量数据
6)使用explain分析SQL执行计划
7)优化like索引
8)字符串怪现象(不加单引号不走索引)
9)索引不宜太多 五个以内
10)索引不适合建在大量重复数据的字段上
11)where限定查询的数据
12)避免在where中对字段进行表达式操作
13)避免在where子句中使用!=或<>操作符
14)去重distinct过滤字段要少
15)where中使用默认值代替null
16)批量插入性能提升
17)批量删除优化
18)先过滤再分组,提高group by语句的效率
19)复合索引最左特性
20)排序字段创建索引
21)删除冗余和重复的索引
22)不要有超过5个以上的表连接
23)inner join 、left join、right join,优先使用inner join

数据库三范式:在关系型数据库中规范的来优化数据数据存储方式,这些规范就可以称为范式,也是作为数据库 设计的一些规则.
1NF的定义为:符合1NF的关系中的每个属性都不可再分
2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖,也就是说,表里的每个字段都要依赖于主键
3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖

SQL攻击:本质上因为SQL中出现了特殊符号#,#号在SQL中是注释的意思,Statement传输器在执行SQL时遇到了SQL拼接,把#当作了注释用
解决方案:使用PerparedStatement传输器

HTML:超文本标记语言 提供大量标记、标签
1)html:html文件的根元素
2)head:网页的头部份 优先于body加载
3)title:网页的标题
4)body:网页的体部分
5)br:换行
6)&nbsp;:空格
7)img:图片标签 src(位置) width(宽度) height(高度)
8)ol/ul :有序/无序列表 li 定义列表项
9)H1~H6:标题标签 自动换行
10)input:输入框 type属性定义输入框
1.1 密码 type = ”password“
1.2 普通 type = ”text“
1.3 数字 type = “number”
1.4 日历 type = ”date“
1.5 单选框 type = “radio”
1.6 多选框 type =“checkbox”
1.7 登录按钮 type = “botton” value=“注册”
登录
1.8 提交按钮 type = “submit”
提交
11)a:超链接标签 href(可以被点击) target(用什么方法打开 默认值 _self当前窗口 _blank 新窗口打开)
点击
12) 表格标签:
1.1 结构 table tr 行 td 列
1.2 属性 border 边框 width 宽度 bgcolor 背景色
cellspacing 单元格的距离
colspan 列合并 rowspan 行合并
css:层叠样式表 主要用来修饰HTML网页
样式表分类:内部css 行内css 外部css
选择器
1)标签名选择器 body{}
2)class 选择器 .a{}
3)id 选择器 #b{}
4)分组选择器 div,#a,.b{}
5)属性选择器 [type=‘text’]
{属性名:属性值;样式2}
盒子模型:CSS把HTML里的元素看成盒子
padding 内边距:内容和边框的距离
margin 外边距:盒子和盒子之间的距离
border 边框:盒子设置边框
引入css文件:link标签引入 rel 文件类型 href 文件位置
Git:版本控制 实时传到码云服务器上
add -> commit -> push
add :把即将上传的资源 从工作空间添加到本地索引
commit:已经添加索引的文件 从本地索引提交到本地仓库
push:把本地仓库 推送到GItee 上
JavaScript:简称js 脚本语言 只能在浏览器中执行
特点:直译式 弱语言 用来提高网页与用户的交互性 事件驱动 基于对象 脚本语言
位置:行内JS 内部JS 外部JS
变量:变量类型 变量名=变量值
数据类型:number string boolean null underfined
运算符:用来获取数据的类型:typeof
弹出框:alter
三元运算符:求两个数里的大值
比较运算符:成立是true 不成立是false
复合赋值运算符:%=
算术运算符:/ % ++ –
分支结构:switch case break结束循环
if else
while循环(循环条件){循环体}
for循环
js数组:长度可变 数据类型丰富
创建:var 变量 = new array()
var 变量 = [ ]
遍历:for (var i=0;i<a.length;i++){}
for(var i in a){}
js函数:有参数列表 也有返回值
function a(参数名){return b;}
var a = function(参数名){return b;}
利用a函数 并传入参数 用c记录返回值
var c = a(传参);
js对象:内置对象 (String Array MAth)
自定义对象 :var 对象名={k:“v”,k:function(){}}
DOM:利用js代码 操作HTML元素
获取对象:windows.document
调用方法:getElementById(”元素的id的属性值“)-- 返回一个元素
getElementByName(“元素name的属性值”)-- 返回多个元素(数组)
getElementByName(“元素的class属性值”) – 返回多个元素
getElementByTagName(“元素的标签名的值”) – 返回多个元素
wirte() — 向文档HTML 表达式 或 JavaScript 代码
title() — 返回网页的标题
id — 设置或返回元素的id
innerHTML — 设置或返回元素的内容
JSON:轻量级数据交换文本格式 本质就是字符串 浏览器和服务器之间数据交换的格式
vue:轻量级前端框架 封装了HTML、CSS、JS的代码
特点:轻量级 渐进式的框架 按需配置
实现数据驱动、双向绑定 和组件化的思想(高内聚)
vue框架可以避免了DOM的API
遵循了MVVM设计模式 实现前端代码的松耦合
M model 数据 V view 视图 VM viewmodel 视图里渲染指定数据
vue.js vue框架的核心功能 src 指定js文件的位置
{{message}} 插值表达式 来获取message的值
vue对象
new Vue({ el:“#xxx” 挂载点,
data:vue 挂载点准备数据
methods:{
函数名:函数声明(参数列表){函数体}
(简写)函数(函数列表){函数体}
})
vue组件Conponent
好处:可以提高前端代码的复用性
使用步骤:
1. 定义组件:全局组件+局部组件
2. 使用组件:使用HTML的标签一样
全局组件 :作用范围是可多个Vue对象使用,可以在所有的渲染区使用
Vue.component(‘组件名’,{
template:”<>组件具体内容</>"})
斜体局部组件
使用组件:<组件名></组件名>
new Vue({
el:挂载点
component:
组件名:{template:“组件具体内容”})
Vue路由Router:基于Vue组件化的思想,用户发起一个请求 一直到展示指定组件 过程由Vue路由负责的
引入js文件 注意顺序:
渲染数据渲染区 即将路由到不同的组件:
创建Vue对象:
在这里插入图片描述Vue的ajax:避免刷新整个网页 而实现了局部刷新的效果,异步访问。提高了网页的动态性、响应速度。在Vue框架中,封装了Ajax的复杂语法,技术命名叫axios。语法:
axios.get(java程序的访问方式).then(a=>{console.log(a);})
Vue的属性:el挂载点 + data数据区 + methods方法区
components局部组件 + router创建路由
vue提供的对象,get函数是指即将发起一个get请求 参数是一段java程序的访问方式 程序访问成功时,then函数时vue自动调用的函数
Tomcat服务器:是一个软件,是一个轻量级web应用服务器,程序被用户访问,程序放在tomcat中
IDEA整合tomcat:Edit … — TomcatServer — Local — name(tomcat8) —
Tomcat Home(tomcat包所在位置)
servlet:代表了一个服务器端 主要作用是用来和浏览器动态的交换:
1. 接受浏览器发来的请求
2. 服务器给浏览器作出响应
sevlet核心功能 :接受请求 + 给出响应
@WebServlet("/xxx"):设置后,请求Servlet时 服务器自动读取当中的信息。默认请求路径为/xxx

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值