0%

面试知识点整理

学习总结面试基础知识,包括:

  • 数据结构
  • 数据库
  • 计算机网络
  • 操作系统

数据结构

元胞自动机trick

数据库

基本概念

DB: 数据库

DBS: 数据库系统,即DB+DBMS

DBMS: 数据库管理系统

DBA: 数据库管理员

三大经典模型:层次模型、网状模型、关系模型

关系模型

概念

关系:一个关系就是一个table

关系模型的三个要素:

  • 基本结构:Relation/Table
  • 基本操作:Relation Operator
    • 并:$\cup$
    • 差:$-$
    • 广义积:$×$
    • 选择:$\sigma$
    • 投影:$\pi$
    • 交:$\cap$
    • 连接:$\bowtie$
    • 除:$÷$

候选码:最小的能唯一标识一个元组的属性组

R的外码:不是关系R的候选码但与关系S的候选码相对应

  • 两个关系靠外码连接起来

关系代数

并相容性:属性数目相同且属性域相同(并差交需要满足)

基本操作

并操作$\cup$:合并,去除重复

差操作$-$:R-S即在R中不在S中的

广义笛卡尔积$×$:排列组合

选择操作$\sigma$:$\sigma_{con}(R)$从关系R中选择满足条件con的关系

  • 选择满足条件的行

投影操作$\pi$:$\pi_A(R)$从关系R中选择属性包含在A的列,去除重复

  • 选择指定的列

扩展操作

交操作$\cap$:取重复

$\theta$-连接:$\mathop{R\bowtie S}\limits_{A\theta B}=\sigma_{t[A] \theta s[B]}(R×S)$,其中$\theta $为连接条件

等值连接:即$\theta$-连接条件取等于

自然连接:即将等值连接中相同元素(列)合并

关系演算(待完善)

元组运算

关系域运算

安全性

$\and \or$

SQL语言基础

DDL: Create, Alter, Drop

DML: Insert, Delete, Update, Select

DCL: Grant, Revoke

DDL

SQL-92中定义的数据类型

  • char(n):固定长度字符串
  • varchar(n):可变长度字符串
  • int/integer:整数
  • numeric(p, q):固定精度数字
  • real:浮点数
  • date:日期
  • time:时间

新建

1
2
3
4
--新建表
create table Student(S# char(8) not null, Sname char(10), Ssex char(2), Sage integer, D# char(2), Sclass char(char(6));
--新建数据库
create database Student;

修改

1
2
3
4
5
6
--增加Saddr和PID两列
Alter Table Student Add Saddr char[40], PID char[18];
--修改Sname的数据类型
Alter Table Student Modify Sname cahr(10);
--删除Sname必须唯一的约束
Alter Table Student Drop Unique(Sname);

撤销

1
2
3
4
--撤销基本表
Drop Table Student;
--撤销数据库
Drop database SCT;

指定与关闭

1
2
3
--使用和关闭Student数据库
use Student
close Student

DML

1
2
3
4
5
6
7
--单一插入
Insert Into Student
Values('98030101', '张三', '男', 20, '03', '980301');

--将查询结果插入
Insert Into Student
Select...

简单查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--投影+选择
Select Sname, Sage
From Student
Where Sage <= 19;

--投影全部列
Select * From Student;WW

--检索并去重
Select DISTINCT S#
From SC
Where Score > 80;

--检索并排序
--由小到大就是ASC,由大到小就是DESC
Select S# From SC Where C#='002' and Score>80
Order By Score DESC;

--模糊查询
--'%'匹配零个或多个字符
--'_'匹配任意单个字符
Select Sname From Student
Where Sname [Like|Not Like] ['张%'|'张__']

多表联合查询

1
2
3
4
5
6
7
8
9
10
11
12
--等值连接
--如果两个表的属性名相同,需要采用表名.属性名方式来限定该属性是属于哪一个表
Select Sname From Student, SC
Where Student.S#=SC.S# and SC.C#='001'
Order By Score DESC;

--不等值连接
--as用于处理同名
--T1和T2为同表
Select T1.Tname as Teacher1, T2.Tname as Teacher2
From Teacher T2, Teacher T2
Where T1.Salary>T2.Salary;

1
2
3
--删除满足条件的元组
--若没有Where则删除所有元组
Delete From SC Where S#='98030101';

1
2
3
4
--修改满足条件的元组
--若没有Where则修改所有元组
Update Teacher
Set Salary = Salary * 1.05 Where...;

SQL语言进阶

子查询

结果运算

分组查询

实现关系代数操作

数据库完整性与安全性及SQL实现

数据库设计范式

第一范式(1NF):

第二范式(2NF):

第三范式(3NF):

BCNF:

计算机网络

操作系统