数据库基础知识

SQL定义:结构化查询语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL书写规则:
1、支持单行和多行书写,分号结尾。
2、Mysql不区分大小写,关键字建议大写。

常见注释语法: 三种注释语法,#/* */(前两个为单行注释,后一个为多行注释)

DML数据库操纵语言(Data Manipulation Language)之增删改查(重点掌握)
作用:主要负责数据表的数据的增删改(insert,delete,update)
一、数据增加(插入)——Insert
1. 插入单条记录
    insert into 表名(字段名,字段名,字段名)
    values(‘值1’,‘值2’,‘值3’);
 2. 插入多条记录
    insert into 表名(字段名,字段名,字段名)
    values(‘值1’,‘值2’,‘值3’),
      (‘值1’,‘值2’,‘值3’),
      (‘值1’,‘值2’,‘值3’);
二、数据删除——Delete
   delete from student(表名)
   where name=‘xiaoming’; 
三、数据修改——Update
  update student(表名)
  score =10
  where name=‘小明’;
四、数据查询——select
  1. 语法
    select name(字段名,字段名,字段名)
    from user
    where score>20
    group by 字段名[字段名,字段名,字段名]  //一个或多个字段名
      having <条件表达式>    //分组后的条件
    order by 字段名 [ASC|DESC],字段名[ASC|DESC];  //默认升序
  2. 常用聚合函数
    avg(字段名)    //求一列值得平均值(数值型数)
    max(字段名)    //求一列值得最大值
    min(字段名)    //求一列值得最小值
    count(*)     //计算记录个数
    count(字段名)  //对一列中的值计算个数
    sum(字段名)   //求一列值得总和(数值型数)
    
DDL数据库定义语言(database defined language)之增删改查
作用:只负责数据库和数据表的创建,修改,删除;

DQL数据库查询语言(Data Query Language)之增删改查条件查询,模糊查询
作用:主要负责数据库的数据查询(select)
条件查询,模糊查询,排序查询,聚合函数,分组,分页查询

数据库中的完整性约束: 数据完整性用于保证数据库中数据的正确性、一致性和可靠性。
第一种约束方式——主键约束
定义:唯一标识对应记录,且不能包含null值。
语法:id int PRIMARY KEY,(表中定义)
第二种约束方式——非空约束
定义:字段的值不能为NULL
语法:name VARCHAR(20) NOT NULL,(表中定义)
第三种约束方式——唯一约束
定义:表中字段值不能重复出现。
语法:name VARCHAR(20) UNIQUE, (表中定义)
第四种约束方式——外键约束
定义: 如果表A的主键是表B中的字段,则该字段称为表B的外键;外键主要用来保证数据的完整性和一致性,适用于多表操作。
语法:student_id int REFERENCES teacher(id)(表中定义)

多表之间的关系与实现关系
一对一 关系建表原则:任意一张表添加一个外键,并且这个外键要唯一,指向另外一张表。
一对多(多对一)关系建表原则:在多的一方添加一个外键,指向一的一方的主键。
多对多关系建表原则:建立中间表,拆分成一对多的关系,中间表至少要有两个外键,分别指向原来的两张表。

三大范式(递次规范)
用途:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。
1NF(第一范式): 每一列都是不可分割原子项(学院 不可以再分割为 名称代号)。
2NF(第二范式): 消除非主属性对主码部分依赖,即确保表中的每列都和主键相关。
函数依赖:若在一张表中,属性或属性组X确定,必定能确定属性Y的值,则称Y函数依赖于X。
完全函数依赖:结合上述概念,必须依赖X中所有属性值。
部份函数依赖: Y 函数依赖于 X,但同时 Y 并不完全函数依赖于 X。
传递函数依赖:Z 函数依赖于 Y,且 Y 函数依赖于 X ,那么我们就称 Z 传递函数依赖于 X。
候选码:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
主码:如果一个关系有多个候选码,则选定其中一个为主码;
主属性:候选码的诸属性称为主属性;
非主属性:不包含在任何候选码中的属性称为非主属性;
3NF(第三范式): 非主属性不依赖于其他非主属性(消除依赖传递)

多表查询(迪卡儿积)
连接查询:内连接(隐、显)、外连接(左、右)
子查询

事务基本介绍
定义:访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。
四大特性:
原子性(Atomicity) 事务是一个完整的操作, 事务中所有操作命令必须作为一个整体提交或回滚。如果事务中任何操作命令失败,则整个事务将因失败而回滚。
一致性(Consistency) 当事务完成时,数据都处于一致状态。
隔离性(Isolation) 对数据进行修改的所有并发事务是彼此隔离的,它不以任何方式依赖或影响其他事务。
持续性(Durability ) 事务提交之后,数据是永久性的,不可再回滚。
隔离级别(从上到下安全性越来越高,效率越来越低):
读未提交(产生123)
读已提交,Oracle(产生23)
可重复读,MySQL默认(产生3)
串行化(解决所有问题)
存在问题:1、脏读(读到另一个事务中没有提交的数据),2、不可重复读,3、幻读

后续待补充…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值