持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
JavaWeb介绍
Web: World Wide Web(www),即全球广域网,也称为万维网。JavaWeb:是用Java技术来解决web互联网领域的技术栈
数据库基本概念
关系型数据库
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库
优点
1.都是使用表结构,格式一致,易于维护。
2.使用通用的SQL语言操作,使用方便,可用于复杂查询
3.数据存储在磁盘中,安全。
SQL
英文: Structured Query Language,简称SQL
结构化查询语言,一门操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
·对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
SQL通用语法
- SQL语句可以单行或多行书写,以分号结尾。
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
- 注释
单行注释:--注释内容或#注释内容(MySQL特有)
多行注释:/注释/、
SQL分类
DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等
DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据进行增删改
DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
数据库的操作
DDL--操作数据库,表,列等
创建:
查询:
查询当前数据库下所有表名称 SHOW TABLES;
查询表结构 DESC表名称;
修改:
删除:
1.删除表 DROP TABLE 表名; 2.删除表时判断表是否存在 DROP TABLE IF EXISTS表名;
DML:对表中的数据进行增删改
添加:
修改:
删除:
DQL()
基础查询
1.去除重复记录
SELECT DISTINCT 列名 FROM 表名;
2.起别名
SELECT 列名 AS 别名 FROM 表名;
条件查询(WHERE)
SELECT 列名 FROM 表名 WHERE 条件列表;
BETWEEN:在两者之间
null的比较只能使用is 或者 is not
模糊查询
_表示占了一个位置,%表示0个或多个字符
分组查询(GROUP BY)
聚合函数
排序查询(ORDER BY)
where和having区别: 1.执行时机不一样: where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
2.可判断的条件不一样: where不能对聚合函数进行判断,having可以。
分页查询(LIMIT)
约束
约束是作用于表中列上的规则,用于限制加入表的数据
约束的存在保证了数据库中数据的正确性、有效性和完整性
约束的分类
自动增长: auto increment:当列是数字类型并且唯一约束
外键约束
外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
语法
1.添加约束
创建表时添加外键约束:
数据库设计
1.软件的研发步骤
需求分析
设计
编码
测试
安装部署
2.数据库设计概念
数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS 为这个业务系统构造出最优的数据存储模型。 建立数据库中的表结构以及表与表之间的关联关系的过程。
3.数据库设计的步骤
1.需求分析(数据是什么?数据具有哪些属性?数据与属性的特点是什么) 2.逻辑分析(通过ER图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)
3.物理设计(根据数据库自身的特点把逻辑设计转换为物理设计) 4.维护设计(1.对新的需求进行建表;2表优化)
表关系
一对一:
如:用户和用户详情
一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能
实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)
一对多(多对一):
部门和员工
一个部门对应多个员工,一个员工对应一个部门
实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
多对多:
商品和订单
一个商品对应多个订单,一个订单包含多个商品
实现方式:在多的一方建立外键,指向一的一方的主键
多表查询
多表查询:从多张表查询数据
√连接查询 内连接:相当于查询AB交集数据
外连接: 左外连接:相当于查询A表所有数据和交集部分数据
右外连接:相当于查询B表所有数据和交集部分数据 √子查询
内连接
内连接查询语法
隐式内连接:
显式内连接:
与上述结果相同
外连接查询语法
子查询(关键)
1.子查询概念: 查询中嵌套查询,称嵌套查询为子查询☆
2.子查询根据查询结果不同,作用不同:
单行单列
多行单列
多行多列
如果子查询查出来的结果是多行多列的,可以将查询结果当成一个虚拟表,放在from后面,此时就相当于多表查询
事务
事务简介:
1.数据库的事务(Transaction)是一种机制、一个操作序列 包含了一组数据库操作命令
2.事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
3.事务是一个不可分割的工作逻辑单元
开启事务:START TRANSACTION; 或者BEGIN;
提交事务:COMMIT;
回滚事务:ROLLBACK;
事务四大特征(ACID)
·原子性(Atomicity) :事务是不可分割的最小操作单位, 要么同时成功,要么同时失败 ·一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态 ·隔离性(lsolation) :多个事务之间,操作的可见性 ·持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的