MySQL数据库(二)

116 阅读3分钟

PS:标题中的二,不是指我还写了一,是因为从我学数据库的下半部分,才开始使用掘金进行记录。

课程视频:

b站:千锋教育mysql基础入门全套教程

  • 字符串函数

拼接多列: select contact (column1, column2...)

将字段的值全大写:select upper (column1 )

将字段的值全小写:select lower (column1)

注意:在数据库中是从1开始数

从指定列中截取部分来显示:select substring(6,4)

  • 分组查询:将数据表中的记录,按照指定的列进行分组。

select 分组字段/聚合函数 from 表名 [where] group by 分组列名 [having 条件] [order by]

语句执行属性:(1)先根据where条件从数据库查询记录(2)group by 对查询记录进行分组(3)执行having对分组后的数据进行筛选

注意:select 后使用 * 显示对查询的结果进行分组之后,显示每组的第一条记录(这种显示通常是无意义的)

#先对查询的学生信息按性别进行分组(分成了男、女两组),然后再分别统计每组学生的个数

示例:select stu_gender, count (stu_num) from stus group by stu_gender;

  • 分页查询:当数据表中的记录比较多的时候,如果一次性全部查询出来显示给用户,用户的可读性/体验性就不太好,因此我们可以将这些数据分页进行展示。

select...

from...

where...

limit param1, param2

param1 int:表示获取查询语句的结果中的第一条数据的索引(索引从0开始)

param1 int:表示获取的查询记录的条数

示例:对数据表中的信息进行分页显示,总共有10条数据,每页显示5条。

pageNum表示查询的页码;pageSize表示每页显示的条数。

通用分页语句如下: select * from < tableName > [where...] limit (pageNum-1) * pageSize, pagesize

  • 关联关系

通过在数据表中添加字段建立外键约束

数据与数据之间的关系分为四种:

  1. 一对一关联
  2. 一对多关联
  3. 多对一关联
  4. 多对多关联
  • 一对一关联

方案1:通过主键关联,不要同时自动增长

方案2:唯一外键

外键约束

  • 一对多OR多对一

班级-学生;学生观-班级

解决方案:在多的一端,添加外键与一的一段建立主键进行关联。

  • 多对多关联

学生-课程:一个学生可以选择多门课程,一门课程可以由多个学生选择。

创建第三张表,关联表,都是外键,进行维护

  • 视图:就是由数据库中一张表或者多张表根据特定的条件查询出的数据构成的虚拟表。

  • 数据库设计三范式

  1. 数据不可再分
  2. 不存在非关键字段对关键字段的依赖;联合主键称为关键字段,除了关键字段以外的其他字段称之为非关键字段。
  3. 不存在非关键字段的依赖

绘制E-R图(Entity-Relationship)实体关系图