github 源码地址 :
https://github.com/Kevin-Kevin/hit-Database
哈工大数据库系统 上 学习笔记
TODO : github 不支持 [toc] 目录 , 有时间去网上找一个自动生成的工具
专用名词介绍
-
Database (DB) : 数据库
-
Database Management System (DBMS) : 数据库管理系统
-
DataBase Application (DBAP) : 数据库应用
-
DataBase Administrator (DBA) : 数据库管理员
-
数据库管理语言
以下三个统称为 SQL语言(结构化的数据库语言)
-
Data Definition Language (DDL) : 数据定义语言
-
Data Manipulation Language (DML) : 数据操作语言
-
Data Control Language (DCL) : 数据控制语言
-
什么是数据库管理系统
关系 (不同的数据组合后形成的东西 )
关系模型
什么是关系
- 域(domain) : 列的取值范围, 每一列有一个值域 ,值域的值的数据类型相同
- 笛卡尔积 : 由 n 个域形成的所有可能的 n 元祖集合
- 关系
- 关系模式
关系特性
- 属性不可再分特性 : 关系第一范式
关系上的重要概念
-
候选码 candidate key
-
主码 primary key
-
主属性与非主属性
-
外码 foreign key
总结
关系演算 (取出你想要的元组和属性)
以下内容见 <<数据库系统概论>> 第六章 形式化关系查询语言
关系代数
自然连接
关系元祖演算
关系域演算
表达式的安全性
SQL语言 (用于操作数据库)
课堂讲义使用的数据库
建立数据库
-
create database 数据库名;
-
create table 表名(列名 数据类型, 列名 数据类型, 列名 数据类型, … )
基本查询
-
select 属性 from 表名 where 条件
- 从 表名 中选择 使 where 条件为真的元祖, 然后投影 select 属性
-
检索结果之去除重复记录 : distinct
select distinct 属性 from 表名 where 条件
-
检索结果之排序 : order by 列名 [asc | desc]
-
selcect 列名, 列名 from 表名 where 条件 order by 列名 asc;
-
-
模糊查询
-
列名 [not] like “字符串”
-
多表联合查询
-
select 属性 from 表名1, 表名2, 表名3 where 条件
- 从 表名 1, 表名 2, 表名 3 的笛卡尔积中选择使 where 条件为真的元祖, 然后 select 属性
-
等值连接
-
重名处理
-
不等值连接
利用 SQL 语言进行 增 删 改
-
INSERT 与 select 结合使用
-
DELETE与 UPDATE
-
delete 删除表中的元祖
-
update 更新数据
-
-
数据库定义操作
- 修改
- alter table 表名
- 撤销
- drop table 表名 (删除掉整张表)
- drop database 数据库名 (撤销数据库)
- 指定数据库
- use 数据库名;
- 关闭当前数据库
- close 数据库名;
- 修改
复杂查询
-
IN 子查询
-
θ some / θ all 子查询 ( 相当于全称量词 exist / all)
-
[not ]exists 子查询
结果计算与聚合计算
- 结果计算
- select 后面可以是计算表达式