秋招C++开发学习之路day17

day20(MAC地址、数据库、关系模型、事务、索引、视图、SQL添查改删)

  1. MAC地址是一个硬件地址,用来定义网络设备的位置,主要由数据链路层负责。而IP地址是IP协议提供的一种统一的地址格式,为互联网上每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

  2. DNS服务是基于UDP的
    一旦拥塞窗口>慢开始门限,就采用拥塞避免算法,以减慢增长速度。
    一旦出现丢包的情况,就重新进行慢开始。
    一旦发送方连续收到三个重复确认,就采用拥塞避免算法。

  3. 数据库
    数据库的核心和基础是数据模型。数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据和对数据进行操作的。根据应用目的的不同扥为两类,一是概念模型,二是逻辑模型和物理模型。
    概念模型,也叫信息模型,它是按照用户的观点来对数据和信息建模,主要用于数据库的设计。
    逻辑模型主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型。
    物理模型是对数据最底层的抽象,描述数据在系统内部的表示的方法和存储的方法,在磁盘或者磁带上的存储方式和存取方法,是面向计算机系统的。
    数据模型一般由数据结构、数据操作和完整性约束三部分组成。
    数据结构,存储在数据库中对象类型的集合,作用是描述数据库组成对象以及对象间的联系。
    数据操作,对数据库中各种对象实例允许执行的操作的集合,包括操作及其相关的操作规则。
    完整性约束条件,在给定数据模型中,数据及其联系所遵循的一组通用的完整性规则,他能保证数据的正确性和一致性。

  4. 关系模型是目前最重要的一种数据模型。关系数据库采用关系模型作为数据的组织方式。关系模型中数据的逻辑结构是一张二维表,或者说关系的数据结构就是一张表。
    关系数据模型的数据操做主要包含:查询、插入、删除和更新数据。
    关系模型的完整性约束条件包含:实体完整性、参照完整性和用户自定义的完整性。

  5. 若关系(二维表)中的某一属性组的值能唯一标志一个元祖,则称该属性组为候选码。如果有多个候选码,则可选定其中一个为主键。
    候选码的诸属性成为主属性,不包含在任何候选码中的属性称为非主属性或非码属性。

  6. 外键表示了两个关系(表)之间的联系,以另一个关系的外键做主键的表称作主表,具有此外键的表被称为主表的从表。外键又称为外关键字。

  7. 关系模型的实体完整性规则,若属性(一个或一组)A是基本关系R的主属性,则A不能取空值。所以:主键不能为空。
    主键在表中是唯一的。参照完成性规则是定义外键实现的。

  8. 事务,是用户定义的一个数据库操作序列,是一个不可分的工作单位。
    事务的四个特性:原子性、一致性、隔离性、持续性。简称ACID特性、
    原子性:事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
    一致性:如果事务执行前数据库是一个完整的状态,那么事务结束以后,无论事务是否执行成功,数据库任然是一个完整的状态(当一个数据库中的所有数据都符合数据库中所定义的所有约束,此时可以称数据库是一个完整的状态)。
    隔离性:多个用户并发的访问数据库时,一个用户的事务不能被其他用户的事务干扰,多个并发事务之间数据要相互隔离。
    持久性:一个事务一旦被提交,他对数据库的影响是永久性的。

脏读:一个事务读取到另一个事务未提交的数据。
不可重复读:在当前事务中,读取到了另一个事务提交的更新和删除的数据。
幻读:在当前事务中,读取到了另一个事务提交的插入数据。

默认隔离级别是:Repeatable read:—可以防止脏读/不可重复读,不能防止幻读。
数据库被设计为单线程就可以防止上述三个问题。

  1. 索引,是对数据库表的一列或多列的值进行排序的一种架构,借用索引可以快速的访问数据表中的特定信息。
  2. 视图,是从一个或几个基本表(或视图)导出的表。是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据依然在原来的表中。
    视图就像一个窗口,通过他可以看到数据库中自己感兴趣的数据及其变化。
  3. SQL语言,包括数据查询(select)、数据定义(create、drop、alter)、数据操作(insert、updata、delete)、数据控制(grant、revoke)。
    定义基本表:CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束条件]
    [,<列名><数据类型>[列级完整性约束条件]

    [,<表级完整性约束条件>]);
  4. 修改基本表
    ALTER TABLE<表名>[ADD<新列名><数据类型>[完整性约束]
    [DROP<完整性约束名>]
    [MODIFY COLUMN<列名><数据类型>]
    ADD用于增加新列和新的完整性约束条件,DROP用于删除指定的完整性约束条件,MODIFY COLUMN 用于修改原有的列定义,包括修改列名和数据类型。
    例子:向Student表增加“入学时间”列,数据类型为日期型
    ALTER TABLE Student ADD S_entrance DATE;新增的一列均为空值。
  5. 删除基本表,DROP TABLE<表名>[RESTRICT | CASCADE]
    若选择RESTRICT,则该表的删除是有限制条件的:要删除的表不能被其他的表的约束所引用(如:check、foreign key等约束),不能有视图,不能有触发器,不能有存储过程或函数。
    若选择CASCADE,则没有限制条件,直接直接删除该表,相关的依赖对象,视图等都被一起删除。
  6. 数据查询,数据查询是数据库的核心操作。SELECT查询
    SELECT [ALL | DISTINCT]<目标列表达式>[,<目标列表达式>]…
    FROM <表名或视图>[,<表名或视图>]…
    [WHERE<条件表达式>]
    [GROUP BY <列名1> [HAVING <条件表达式>]]
    [ORDER BY <列名2> [ASC | DESC]];

选择若干表
假设在表Student中查询名为 Bill Gates 的学生信息:
SELECT* from Student WHERE Sname==‘Bill Gates’; sname是列名
假设在表Student查询名字中有Bill的学生信息:
SELECT from Student WHERE Sname like ‘%Bill%’ ; %表示通配符,代表任意长度的字符串。 _(下划线)代表任意单词字符。
假设在表Student中查询年龄在20-23岁之间的学生信息:
SELECT
FROM Student WHERE Sage BETWEEN 20 AND 23;
相对的是NOT BETWEEN…AND…
假设在表中查询计算机系(CS)、信息系(MA)、数学系(IS)学生的姓名和性别:
SELECT Sname,Ssex FROM Student WHERE Sdept IN(‘CS’,‘IS’,‘MA’);
与IN相当的是NOT IN,用于查找属性值不属于指定集合的元组。
假设在表中查询没有年龄信息的学生:
SELECT * FROM Student WHERE Sage IS NULL;
15. order by子句对查询的结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认是升序。
例如在表Student中,按照学生的年龄值升序检索出全部学生信息:
SELECT * FROM Student ORDER BY Sage;
在表Student中,先按专业升序排序,然后同一专业的学生再按年龄降序排序,并输出全部学 生信息:
SELECT * FROM Student ORDER BY Sdept, Sage desc;
16. LIMIT主要是用于查询之后要显示返回的前几条或者中间某几行数据。可用于强制SELECT语句返回指定的记录数。
SELECT FROM Student LIMIT 5,10;検索记录行5-10
17. 聚集函数count sum avg max min
select count(
)as totalcount from talbel;
select sum(fieldl) as sumvalue from tablel; sum可以替换成其他的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值