蜗牛的数据库

数据库第三天:
员工号 姓名 性别 年龄 薪资 地址
s001 张三 男 18 5000
s002 李四 男 18 5000
s003 王五 男 18 6000
s004 张三 男 18 5000

第一范式:确保每列保持原子性
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
第二范式:每个实体或行必须可以被惟一地区分
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如图3-2 员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被唯一区分。这个惟一属性列被称为主关键字或主键、主码。
第三范式:确保每列都和主键列直接相关,而不是间接相关
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
超键:可以唯一区分一个实体的一个字段或者多个字段的组合。
主键:从超键中被选定的用来唯一区分实体的字段
候选键:从超键中除去被选定的主键的其他字段。
组合主键:一个实体由多个主键才能唯一区分
外键:一张表中的外键(普通的字段)是另一张表中主键。外键是来描述表与表之间的关系的。

完整性约束:
1、列的完整性:
不能够再拆分,并且最好不要有null,非空约束
在数据库里面null和只有引号没有数据是完全不一样 的。
2、行的完整性:主键约束
3、参照完整性:外键约束
4、自定义完整性:需要sql编程实现的存储过程,函数, 触发器,事务
举例:学生管理系统
角色个体:学生,教师,教室,课程,班级,专业
学生表:学号,姓名,性别,年龄,家庭住址,紧急联系人,电话
教师表:教师id,姓名,性别,年龄,职称,家庭住址,联系电话
教室:教室编号,教室名称,是否安置学生
课程:课程编号,课程名称,学分
班级:班级编号,班级名称,班级人数
专业:专业编号,专业名称

再去分析对应关系(两张表):一对一、一对多、多对多
一对一:是数据库里面最简单的一个关系,表示一张表中的一个实体唯一对应另一张表的一个实体
一对多:一张表中的一个实体可以对应另一张表中的多个实体。比如班级和学生的关系,一个班级可以有多个学生,但是一个学生同一时间只能在一个班级中
多对多的关系:一张表中的多个字段对应另一张表的多个字段,用学生表和课程表,一个学生有多个课程,一个课程可以被多个学生进行选修。

对数据库的操作:
DML数据操作语言(insert,update,delete):
插入数据:insert into 表名(列名) vaules(对应的列名值)

更新语句:update 表名 set 列名 = “值”;

删除语句:delete from 表名

数据查询语言DQL:
一条完整的sql查询语句:
select distinct *(字段) from 表名 where 条件过滤 group by 字段 order by 排序 limit 起始,条数;

基本查询语句:select * from 表名
WHERE进行条件过滤查询:
数据库的运算符:
比较运算符:= > < <> <= >=
逻辑运算符:and or not
算术运算符:+ - * / %

在where后面可以使用LIKE关键字,数据库里面叫做模糊查询;之前讲过的占位符_和%一样使用

group by :分组查询,查询结果只会显示每一个分组的第一个数据,后面的其余信息不会显示

order by :排序;排序分为升序(ASC)和降序(DESC);

limit 起始位,条数;查询出多少条数据,注意:limit只能放在一条sql语句的最后面。

聚合函数:
求和:SUM()
求平均值:AVG()
统计个数:COUNT()
求最大值:MAX()
求最小值:MIN()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值