数据库

数据库
DBMS
数据库管理系统
关系型数据库
概念
把世界看作是由实体和联系组成的,而关系型数据库是将数据库表作为实体,以数据库表的组件和外键的关联关系描述联系的一种数据库结构
一对一关系
一条主表记录对应一条从表记录,同时一条从表记录也对一条主表记录
一对多关系
一条主表记录对应多条从表记录,一条从表记录对应一条主表记录
多对多关系
一条主表记录对应多条从表记录,一条从表记路对应对多条主表记录
SQL 结构化查询语言
DDL 数据定义语言
创建 修改 删除数据库的内部数据结构
DQL 数据查询语言
用于数据库数据的查询
DML数据操作语言
用于数据库中数据的修改包括添加 删除 修改
DCL 数据控制语言
控制数据库访问权限
数据库的完整性
可靠性+完整性=数据完整
完整性分类
1)实体完整性
保证一行数据时有效的
主键约束
主键不能为空,也不能重复,一个表中只能有一个主键
唯一约束
给定的列的所有的值必须唯一,该列在表中每一行的值必须唯一,他和主键约束的区别在于该列可以为空,并且可以在一张表中多个列设置唯一约束
2)域完整性
保证一列数据是有效的
实现方法
非空约束
Not Null
默认约束
Default
检查约束
Check(MySQL不支持)
3)引用完整性
保证引用的编号是有效的
两个表之间如果存在外键约束,那么删除主标记录,由于有外键约束存在,无法删除有从表引用的主表记录
级联删除
将主表记录对应的从表记录先做删除,在删除主记录
外键设空
将主表记录对应的从表记录外键设置为null,在删除主表记录
4)用户自定义完整性
自定义完整性规则
开闭原则
软件实体应该面向修改关闭,面向扩展开放,七实现核心就是抽象.将相同的代码抽象出来,便于代码的重用,这就是闭,将不同的代码也抽象出来.便于修改,这就是开.
JDBC(java数据库连接)
一种用于执行SQL语句的javaAPI,它由一组用java语言编写的类和接口组成
jdbc是java连接数据库的一套规范,在该规范中定义了一系列的接口,由数据库的厂商提供接口的实现类,由开发者根据接口,调用实现类的方法,这样开发者就可以屏蔽不同数据库的差异,无论连接什么数据库,对数据库做什么样的操作,都是一套API
操作步骤
1) 加载驱动,建立连接
2)执行SQL语句
3)关闭连接
dao模式
建立实体类和数据库表做映射,也即是那个表对应哪个类,那和属性对应哪个列.二jdbc操作的目的就是,完成对象数据和关系数据的转换.
Statement 和 PreparedStatement 区别
1)Statement 为 PreparedStatement 的父接口
2)Statement 在执行SQL语句只能以字符串方式设置值,由于每次值都不一样,所以在执行SQ语句时,都会将SQL语句重新编译,效率较低.而PreparedStaement提供占位符方式设置值,SQL语句执行效率高
3)Statement 在执行SQL语句时,鱼鱼采用拼字符串方式设置,所以容易造成SQL注入.而PreparedStatement使用占位符方式设置值,无论什么值都不会造成SQL注入
SQL注入
:在执行SQL语句时,如果以拼接字符串方式设置值,那么如果在值中有SQL语句的关键字或非法字符,节能会造成执行结果错误或者不正确
关键字
create
INSERT
TABLE
DATABASE
SELECT
DELETE
VALUES
UPDATE
LIMIT
SET
语法
case when
删除
delete
删除后可以恢复,但效率低
truncate
删除数据后不能恢复,效率高,不会删除日记记录
聚合函数
COUNT
统计行的数量
SUM
获取单个列的合计值
AVG
计算某个列的平均值
MIN
计算列的最大值
MAX
计算列的最小值
数据分组
HAVING
运行在分组后,只能做聚合函数的过滤
WHERE
运行在分组前,不能执行任何聚合函数
SQL语句执行顺序
1)执行FROM
2)WHERE条件过滤
3)GROUP BY 分组
4)SELECT 投影列
5)HAVING 条件过滤
6)ORDER BY 排序
内联接
使用比较运算符根据每个表共有的列的值匹配两个表中的行
外联接
不管有没有匹配,被定义了外联接的表数据都要出现在结构中
ALTER TABLE t_man ADD CONSTRAINT fk_2  FOREGIN KEY (manid) REFERENCES t_man(id)
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值