数据库基础重点和SQL的基础用法语法

1.数据库的产生于发展
数据不保存、不共享、无独立性、无专门软件管理数据→文件形式保存,有一定独立性→数据结构化、共享性高、冗余底、独立性高、有统一的数据控制功能
这里写图片描述
数据独立性:物理和逻辑两方面的独立性。
物理独立性:数据的物理存放变了(存储结构改变),用户程序可以不变。
逻辑独立性:数据的逻辑结构变了(模式改变),用户的程序也可以不变。
数据结构化:直接用数据模型描述数据的结构无需程序定义和解释。
数据控制功能:对数据有安全性保护(数据隐藏),数据完整性检查(保证数据有效,数据间满足关系及:实体完整性,参照完整性,用户自定义完整性)
并发性控制:防止多用户间干扰
数据恢复:
- 数据库系统(DBS)=数据库(DB)+数据库管理系统(DBMS)

2.数据库三级模式的优点:
三级抽象,两级映像(映像是抽象间的联系转换)
应用程序
外模式–子模式–视图 保证安全性
↑映像(保证了逻辑独立性)1:多
模式–逻辑模式
↑映像(保证了物理独立性)1:1
内模式—物理模式
3.主流结构:
B/S模式:浏览器(显示)↔web服务器(业务逻辑处理)↔数据库(管理程序)
适用于简单功能,广域网,速度慢、开发复杂、业务简单
因为需要网络上传下载,所以速度慢、只能执行简单操作、因为通过网络,所以没有距离制,免维护、因为涉及网络所以开发复杂、因为简单所以不用给用户培训
C/S模式:客户端↔数据库服务器(别名胖客户端)
适用于业务复杂的工作,局域网
要求安装软件、维护量大,界面、业务复杂,交互性强,有距离限制
4.数据模型
现实世界

抽象

概念模型–E-R图(信息世界)

逻辑模型–(层次(树型指的是层次结构),网状,关系模型)

数据模型–物理模型(计算机世界)

联系:1:1,1:n,n : m(体现在E-R中考察)

层次模型: 1:多的字段描述
优点:简单、层次分明、查询效率高、支持数据完整性
缺点:不能直接表示1:多、插入删除限制多、查询需要通过双亲(树)
网状模型:有向图
优点:允许0/1/多双亲,允许多复杂联系,存储效率高,性能良好
缺点:结构复杂,操纵复杂,对用户要求高(要交接结构细节)
关系模型:描述实体和实体间的联系
优点:逻辑严密,数据独立性和安全保密性
缺点:查询效率慢
面向对象模型:对象是现实世界的实力模型化
缺点:比较复杂,不成熟

5.关系的完整性
完整性约束:实体完整性, 参照完整性,用户自定义的完整性
实体完整性:主键不能为空/或部分为空
参照完整性:外键取值 符合 参照表的主键范围 或者为空
用户自定义完整性:约束条件要满足

From x,y 是把x和y进行 笛卡儿积(不用计算)
选取σ,映射Π、连接*
⭐让我们来说一下关系代数的套路吧~!这里写图片描述
查询姓名=‘大胖’的学生学号、性别、成绩
选取σ 来完成从S表中选择满足姓名=‘小胖’的行。也就是完成筛选行的操作
具体书写:σ 姓名=‘小胖’(S)
映射Π 来完成你最终想要的信息列。比如这个题
具体书写:ㄇ学号,性别(σ姓名=‘小胖’(S))
连接* 由于你要的信息不来自同一个表所以需要将两个表自然连接
具体书写:ㄇ学号,性别(σ姓名=‘小胖’(S))* ㄇ学号,成绩(成绩表)
注意(要先选取出来再连接,而且保证有一样的列哦~)

6.自然连接和连接对比
自然连接:要求有同名的列,而且会把重复列去掉一列
连接:不要求有同名的列,如果有相同的列运算后依然存在,不消除重复
7.除法÷(重点
R÷S::什么时候用除法?首先两个表有一样的列
除法的结果:R中与S相同的列去掉,留下和S行相同的行
这里写图片描述
8.SQL语句
1.创建数据库:create database 数据库名字
2.创建表:

            create table表名
            (   [列名] char(长度)/tinytint类型  约束(),
                [列名]   类型 约束)
                约束(产生索引):not null/null , unique , primary key 
                foreign key reference 外键的来源表名
                check ([列名]>0 and[列名]<10constraint c_prim primary key([列名],[列名]
                )

3.修改表:

        alter table 表名
        Add/alter concolumn/drop
        内容
  ```
4.删除表: ``` drop table 表名```
5.查询数据: 
        seleter [列名],[列名]  count(*)/sum(成绩)等==等于映射
        From 表名(,表名) ==等于自然连接*
        Where 条件(啥>=/=啥,啥 not null ,啥 in啥们,啥 like 啥%)==等于选取
        (group  by 分组根据啥条件分 分组的筛选用+Having 条件 )
            Order by 根据什么排序 disc 升序,asc 
6.数据插入:
        Insert into 表名(列名)values
        (‘   ’,‘     ’),()。。。
7.数据更新
update 表名
set 啥=‘啥’
where 条件
8.数据删除
 delete 
 from 表名
where 条件
9.视图
create view 名字
as select…
alter view 名字
as select。。。
drop view 名字
select 视图表
from。。。

“`
9.不合理关系异常
数据冗余,插入、删除、更新异常
10.三级范式
存在部分函数依赖–第一范式p 学号和课程决定年龄,学号决定年龄
存在传递函数依赖–第二范式t 学生决定系别,系别不决定学生,系别决定系主任

规范到第三范式 消除部分、传递函数依赖
11.数据库设计步骤
需求分析→概念结构设计(E-R)→逻辑结构设计(关系模式)→物理结构设计→数据库实施→数据库运行维护
现实→抽象→信息→E-R图→计算机数据模型
*满足三范式
从顶向下,从底向上相结合的概念结构设计的方法与步骤
12.E-R图
实体 表名
属性 列名
联系 表与表的关系(1:n的联系集合到n端表中,m : n 单独成表)
要求:消除冲突(属性,命名,结构冲突),优化消除不必要的冗余
13.关系模式
一个实体集成为一个关系模式
一对多的关系把‘’1‘’端的主键集成到’’n’’端做外键
一个多对多的联系成为一个关系模式(包含必要的实体表的主键,和自己的属性)

猜你喜欢

转载自blog.csdn.net/weixin_40921797/article/details/81703619