华清远见数据库课程总结

华清远见数据库课程总结

关于数据库的总结我分我分为了三大部分进行总结

一,数据库的语句和使用,

分为查询(seclect),修改(Update),删除信息(delete)/(drop)这里需要注意的是delete通常用来删除信息,drop用来删除表里面的结构

例如删除表或者数据库,创建(create)

要正确的使用以上的语句,首先要认识下面几个重要的信息

数据类型

int 整型

double 浮点型

char(长度) 定长字符串

varchar(长度) 可变字符串

text 文本

date 日期

time 时间

datetime 日期时间

timestamp 时间毫秒

数据完整性

非空约束 not null 保证字段值不为空

主键约束 primary key 保证字段值不重复,用于唯一区分每条记录

唯一约束(索引) unique 保证字段值不重复

默认值约束 default 保证字段在没有填充数据时,自动使用默认值填充

外键约束 foreign key references 保证从表中的记录只能来自于主表

自增 auto_increment 设置默认就算为空的情况下他的值也是自增加一

数据操作

增加

insert into 表名 values(值1,值2…);保证按表中字段顺序添加数据,不能缺少任何一个字段

自增字段用null

默认值字段用default

允许为空字段用null

insert into 表名(字段1,字段2…) values(值1,值2…);保证必须写上非空字段,值的顺序和字段

顺序保持一致

修改

update 表名 set 字段=值,字段=值 [where 条件]

删除

delete from 表名 [where 条件];会保留自增列的值

truncate table 表名;会重置自增列的值

查询

select [字段|*] from 表名 [where 条件] [order by 字段] [having 条件]

limit N:查询前N条记录

limit N,M:从索引为N的开始查询M条记录

distinct:去重复

order by 字段1,字段2:多字段排序

group by 字段名:根据字段分组

having 统计函数条件

聚合函数

这里讲一下统计函数,因为在做题的时候很容易出错统计函数通常用于where后面的也可以用于having当中

但是用于条件使用的时候只能是聚合函数大于或小于某个值,不能跟字段进行比较,否者会查不出来值;遇到这种情况的时候应该尝试用嵌套查询,这样才能够正确的使用这个

这是我的错误使用案列

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2f2JC0oc-1672671550485)(C:\Users\莫语\AppData\Roaming\Typora\typora-user-images\image-20230102223551873.png)]

这是查询的结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v7P6FnVy-1672671550487)(C:\Users\莫语\AppData\Roaming\Typora\typora-user-images\image-20230102223739070.png)]

常用函数

统计函数

sum():求和

avg():平均

count():统计数量

max():最大值

min():最小值

字符串函数concat(‘值’,‘值’,字段,):拼接值或字段

trim():去除首尾空格

left(length)/right(length):从左/右开始截取指定长度字符串

数学函数

round()/ceil()/floor():取整

abs():绝对值

时间函数

now()/curdate()curtime():得到当前日期时间

year()/month()/day():得到日期中的指定部分

datediff()/timediff()/timestampdiff():计算时间间隔

补充

if(条件,表达式1,表达式2):条件为真,结果为表达式1,条件为假,结果为表达式2

group_concat():拼接分组后的其他字段

二,数据库的使用规范(范式的使用)

1范式

数据库的规范通常有七钟;

这种我们通常使用到第三范式就足够了;

所以这里只记录了前三种

1NF,2NF,3NF

第一范式 1NF

字段不可再分

第二范式2NF

在满足1NF的基础上,消除部分依赖。

对于联合主键而言,所有非主属性字段必须完全依赖于主属性。

第三范式3NF

在满足2NF的基础上,消除传递依赖。

2,ER图

矩形:实体

椭圆形:实体的属性

菱形:实体之间的关系

3,实体关系分类

一对一:一个国家有一个领导人

1.根据两个实体创建两张表,都加上主键

2.在其中一张表中添加一个字段,保存另一张表的主键并设置唯一

一对多/多对一:一个班级有多个学生,一个学生不能有多个班级

1.先根据两个实体创建两张表,都加上主键

2.在从表中添加外键字段管理主表中的主键字段

多对多:一个学生学习多门课程,一门课程可以被多个学生学习

1.先根据两个实体创建两张表,都加上主键

2.创建第三张"关系"表,在该表中添加两个字段分别保存两个实体表中的主键

三,数据库连接

这部分也是最重要的部分

数据库连接总共有七个步骤;

1.获取连接对象Connection

2.构造sql语句String

3.预处理sql语句pst=conn.prepareStatement(sql)

4.给sql语句中的?赋值pst.setXXX(?顺序,值)

5.调用executeQuery()得到ResultSet结果集

6.遍历结果集rs.next()后rs.getXXX(字段顺序/字段名)

7.释放资源

加载MySQL驱动

Class.forName(“com.mysql.cj.jdbc.Driver”);

连接MySQL数据库字符串

String url=“jdbc:mysql://localhost:3306/数据库名?serverTimezone=Asia/Shanghai”;

String username=“root”;

String password=“root”;

总结,这次的学习主要是使用sql的各种语句,虽然sqil的语句看起来不难,但是在不同的情况下,学习的难度还是有点高的;

例如在的多张表对多个字段操作,一切结合到显示当中,然后连接到数据库,在整合到后端页面上进行使用还是需要一定的细心和代码量练习才能熟悉,、

localhost:3306/数据库名?serverTimezone=Asia/Shanghai";

String username=“root”;

String password=“root”;

总结,这次的学习主要是使用sql的各种语句,虽然sqil的语句看起来不难,但是在不同的情况下,学习的难度还是有点高的;

例如在的多张表对多个字段操作,一切结合到显示当中,然后连接到数据库,在整合到后端页面上进行使用还是需要一定的细心和代码量练习才能熟悉,、

这次的总结就这样,拜O.o.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值