Fork me on GitHub

大一第一学期数据库期末复习大纲

数据模型与概念模型

信息世界通过概念模型进行描述,而计算机世界则是通过数据模型进行描述

概念模型相关的概念:

对象:类似与java中的类

实例:实体

属性:实体某一方面特征的抽象展示

码,主码,次码:唯一标识一个实体的属性或者属性组,不能唯一标识的为次码

实体集之间的联系:

image-20230206220046334

数字的标法即为从箭头的根部来标,数字为这个箭头根部的对应关系,如教师n→学校

E-R图

长方形写实体集,圆形为属性,菱形为联系

image-20230206220925012

er转化为关系模型

image-20230207100443658

以本图为例

合并到实体时,保留自身的属性,添加关系的码和另一个实体的码(问题就在于这个关系的码,回头得弄明白)

合并到关系时,保留自身的属性,添加左右两个实体的码,并且将两个码合并,作为自身的码

合并写法

使用(方法,姓名,卡号)(也就是把码用横线标出)

学生(姓名,班级,卡号…………)

数据库代码部分

查看当前所有数据库

1
show databases;

创建数据库

1
create database 数据库名;

切换字符集

1
alter database 数据库名 character set 字符集名

创建基本表

表结构就是定义一个表的字段、类型、主键、外键、索引

1
2
3
4
5
6
7
8
9
10
create table 表名(

列名 数据类型 约束条件,

列名 数据类型 约束条件,

);
约束条件有 PRIMARY KEY设置主键
NOT NULL 非空(不设置这个留空为null,设置了之后不可留空)
unique数据不重复

image-20230207102312335

unsigned标识只能为0-255的整数,default指定默认值

删除数据库

1
drop database 数据库名;

设置字段默认值

1
ALTER TABLE 表名 ALTER 字段名 SET DEFAULT 默认值;

修改字段的条件与属性

1
alter table 数据库名 modify 字段名 数据类型 约束条件;

插入数值语句

1
2
3
4
5
第一种:INSERT INTO 表名 (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

第二种:INSERT INTO 表名
VALUES (value1, value2, value3, ...);

删除与增加主键

注意,主键不为空,不重复

1
2
3
alter table 表名 drop primary key;

alter table 表名 add primary key(字段,字段...);

自动增长

image-20230207105549891

约束条件auto_increment

注意一下图片里的这个语句

image-20230207105829182

自增的值可以自定义

展示表结构

desc 表名;image-20230207110033297

改表名,字段名,字段类型

1
2
3
alter table 表名1 rename to 表名2;(改表名)

alter table 表名 change 字段名1 字段名2 数值类型;

添加,删除字段

1
2
alter table 表名 add 字段名 数据类型;
alter table 表名 drop 字段名;

删除表

1
2
3
drop table 表名; 完全删除

delete from 表名; 只删除数据

批量修改表中数据

1
update 表名 set 字段名=表达式,字段名=表达式....;

示例:image-20230207143507522

image-20230207143515623

简单查询-单表(SELECT)

1
2
3
4
5
6
7
括号内的即为顺序
select 目标字段|字段表达式或函数 from 数据源 (where) (group by) (having) (order by)
其中目标字段用*代表全部

select distinct classname from stu;这里的distinct可以折叠重复的字段

算数操作符:+ - * / %(取模)

下面提供一些案例,其中包含重要的知识点,慢慢看

image-20230207144830256

image-20230207144847433

查表与子查询相关知识点

and 和 or 连接多个表达式

1
select 学号 from 选课 where 课程号 = 'c04' and 成绩 > 90

and是两个条件都满足

or是两个条件满足其中之一就行

image-20221118143140498

in后面代表的是集合,里面得是同类型的东西

1
between xx and xx检索一个范围(整数),并且这是一个闭区间

image-20221118143653861

like语句

1
2
3
select * from stu where sanme like '王%';(%替代很多个)

select * from stu where sanme like '王_';(_替代一个)

image-20221118145605265

如此以查找含有名字的

内联查询

image-20221118160657657

image-20221118160756250

image-20221118160848438

当两个表有同一个字段时,需要加表前缀加以区分

自然连接

join前加nature,两个字段必须同名并且会自动折叠同名的部分,原来那个字段名不必一样,但是内容得一样

外连接

左外连接和右外连接分别全部输出左边的数据与右边的数据,

1、两者的分类不同:内连接分为相等连接和自然连接两种连接方式;而外连接分为左外连接、右外连接和全外连接三种连接方式(左外连接即LEFT OUTER JOIN;右外连接即RIGHT OUTER JOIN)。

2、两者所连接的对象表不同:内连接进行连接的两个表是对应的相匹配的字段完全相同的。左外连接中进行连接的两个表会返回左边表中的所有的行和右边表中与之相匹配的列值,没有相匹配的用空值代替。右外连接中进行连接的两个表会返回右边表中的所有的行和左边表中与之相匹配的列值,没有相匹配的用空值代替。

3、两者的作用范围不同:内连接的连接发生在一张基表内,而外连接的连接发生在两张表之间。

注:内连接(典型的连接运算,使用像 = 或 <> 之类的比较运算符)。包括相等连接和自然连接。内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。

image-20221125144025429

自链接

image-20221125144713254

a,b取别名,可以简化操作,学着点 image-20221125145212936

3表连接,超级加倍

升序降序

select * from xx order by 成绩 desc(降序)asc(升序)

嵌套查询-子查询

in语句

select 学号,姓名 from 学生 where 学号 not in (select 学号 from 选课);

子查询的括号前面必须要in或者=<>之类的

in表示范围内的数据

where 年龄 >(select 年龄 from 学生 where xxximage-20221125165358705)

运算符的子查询

selec xxx from xx where sex = ‘x’ and age >(select xx from xx where name)

any 与all

image-20221202134716965

image-20221202134925838

exist

image-20221202140026009

image-20221202140230801

image-20221202141433864

字段相等也并不是一定要链接

image-20221202143544431

image-20221202144457063

分组查询

group by

image-20221202145747995

image-20221202145946599

having语句

对分组后的语句经行条件的筛选就用having

image-20221202150916501

having后还能加order by

sql视图

视图的作用

简化用户的操作

创建视图

create view 视图名 (字段名列表) as 子查询 with check option

image-20221202160721007

image-20221202160824790

image-20221202161103904

视图的更新

image-20221202162335837

with check option的作用创建的视图中字段设有where条件,当有check option的时候插入非法字符就会报错,插入的东西或是修改的东西在基表里,但是修改视图的同时也修改了基表

image-20221202165306489

删除视图

drop view 视图名

触发器

create trigger 触发器名 (before/after) (insert update delete) on 表名 for each row 触发器主体

触发器主体

begin

aql语句;

end;

image-20221209141407789

new与old实现数据库完整性约束

image-20221209143903180

查看与删除触发器

drop trigger

show trigg

遗留下来的一些奇怪的东西

1
2
3
4
5
6
7
DELIMITER $$
CREATE TRIGGER t_ww AFTER UPDATE ON worker FOR EACH ROW
BEGIN
IF new.age > 60 THEN
UPDATE worker SET new.age = old.age;
END IF;
END;

关系模型的三类完整性约束

实体完整性 通过主键的约束保证不重复

参照完整性 通过外键的管理保证标与表之间数据的完整性

自定义完整性 自定义扳机

关系的运算

σF(),F是下标,代表查询的条件,括号内为表,f相当于where,f可替换为 addr = ‘xxx’

投影运算 Πsno,sname()下标,仅搜索下标的列

涉及到的题目

(所有的这些题目选择题也写一写)

12 2 3 5

27 第二个

28 第四个

28,29,30问答题

48 第一题,第三题,

73 第二题,第四题

95 第十二(第五章)

第六章分几乎占一半(直接或间接)

153 1 2 3

155 22题

193 做了解

计算机导论大一上复习计划大纲

第一章-认识计算机

Ø 计算、计算机、计算思维的定义和区别

计算

计算是一种将[单一或多个的输入值]转换为[单一或多个结果]的思考过程

自动计算要解决的几个问题:表示-存储-执行

“数据”的表示

“计算规则”的表示:程序

数据与计算规则的“自动存储”计算规则的“自动执行”

计算思维要素

分解:把数据,过程或问题分解为更小的,更易于管理的部分

模式识别:观察数据的模式、趋势和规律。

抽象:识别模式形成背后的一般原理。

算法设计:为解决某一类问题撰写一系列详细步骤。

Ø 第一部通用电子计算机、第一个微处理器

第一部通用电子计算机:ENIAC

第一个微处理器:INTEL4004

计算机的发展(计算机发展的四个阶段)

  • 第一代计算机(1946-1957年)–电子管时代
  • 第二代计算机(1958-1964年)–晶体管时代
  • 第三代计算机(1965-1971年)–中小规模集成电路时代
  • 第四代计算机(1972年至今)–超大规模集成电路时代。

第二章:进制表示与信息编码

进制的转换

参考文章:进制的转换

Ø 原码、反码、补码的计算

参考文章:储存计量单位与数字存储方式

Ø 浮点数SeM的表示

这个东西各种原因这里不做说明,详情请看第二章第69页的ppt,不过不建议看

Ø ASCII码、国标码、Unicode码的定义

image-20230205193615446image-20230205193740403

国标码:注意,一个汉字由两个字节表示(一个字节8个bit)

image-20230205194041565

image-20230205194056832

image-20230205194112260

unicode:Unicode为世界上所有字符都分配了一个唯一的数字编号,这个编号范围从 0x000000 到 0x10FFFF

第三章-逻辑学

Ø 与或非运算

Ø 布尔代数计算、真值表;

参考文章:逻辑运算

二极管与三极管特性:

image-20230205203010512image-20230205203059223

第四章:图灵机和冯诺依曼结构

参考文章:图灵机与冯诺依曼结构

图灵机组成的三部分:1、带子,被分成许多方格,符号可以被写入其中或从中读出;2、可以移动的读写头,能从带子上读取符号或将符号写到带子上;3、指示读写头下一步如何做的一组规则。

图灵机的运算(见上文的参考文章)

冯诺依曼计算机的五大组成部分:image-20230205205159856

2-4译码器00,01,10,11分别对应着从上往下的四条电线

image-20230206090735329image-20230206090805316

image-20230206090914366

Ram和rom的定义以及特点

image-20230206091227011 image-20230206091237410

第五,六章-算法建模与算法基础

参考文章:

计算思维-算法基础 计算思维

进制的转换

进制的转换

各种进制转10

image-20221009191357718

image-20221009191440495

image-20221009191521203

注意点

个位上是0,然后向左递增或向右递减

image-20221009191944636

以个位为0,为中心轴,向左侧递增,向右侧递减

image-20221009192318681

其他进制的转10进制以此类推

10进制转换为其他进制

整数部分为除,小数部分为乘,读取方向为数轴方向,整数↑,小数↓

image-20221009192502724

从下往上读取.

image-20221009192639409

image-20221009193112096

只要记住是反过来的就行

快速方法(高进制转2)

image-20221009193250110

一变几就看是2的几次方,并且如果是首位或者末尾是0的话就省略掉

image-20221009193536174

image-20221009193709308

二进制转高的话就从小数点位置开始划分

每一个被划分出来的单元都是独立的

如果是16转8的话就用2来做媒介,很快

并且将划分出来的数组用二进制转换法转换成数字

H下标表示16进制

B是二进制 O是八进制

D是10进制

逻辑运算

逻辑非

A为真,那么!A或者A上加一横线

image-20230205194723467

逻辑与-都为真才为真

image-20221018135110409

逻辑或-都为假才为假(这个或这个)

image-20221018135412120

二有一或者二都有就是或

逻辑异或-一真一假才为真

只能一真一假

image-20221018135727079

异或的符号

image-20221018135755109

这套理论的使用

image-20221018141148058

布尔代数与门电路

image-20221018144020230

image-20221018150959041

image-20221018144736839

image-20221018144758747

image-20221018144814136

image-20221018144823845image-20221018144829472

逻辑电路

image-20221018152913475image-20221018152919287image-20221018152925369

image-20221018152933126

image-20221018152939671

image-20221025145431257

image-20221025145844113

image-20221025145850682

image-20221025145855848

hexo创建文件自动打开

如何在hexo创建新post文档之后自动打开

1
hexo n "The title of your blog"

这个指令可以快速创建

实现创建后自动打开

  1. 新建scripts目录(hexo根目录)

  2. 创建auto_open.js文件,如下

    1
    2
    3
    4
    5

    var spawn = require('child_process').exec;
    hexo.on('new', function(data){
    spawn('start "C:\Program Files\Typora\Typora.exe" ' + data.path);
    });

路径设置为你的软件路径即可

  • Copyrights © 2023 Langxecho
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信