必知的知识点

第一部分——基础知识

  1. 数据库:长期储存在计算机中、有组织的、可共享的大量数据的集合。

  2. 数据库系统特点:
    (1)数据结构化
    (2)数据的共享性高,冗余度低,易扩充
    (3)数据独立性高
    (4)数据由DBMS统一管理和控制。

  3. 数据库管理系统的主要功能:
    (1)数据定义功能;
    (2)数据组织、存储和管理;
    (3)数据操纵功能;
    (4)数据库的事物管理和运行管理;
    (5)数据库的建立和维护功能;
    (6)其他功能。

  4. 数据库系统:数据库、数据库管理系统、数据库管理员、应用程序组成。

  5. 数据模型:
    (1)概念模型:了解实体之间的联系:一对多、多对一、多对多
    掌握E-R图的画法:
    确定实体;
    画出属性;
    找到实体之间的联系。
    *例题:
    设有商品和顾客两个实体,商品实体包括商品编号、名称、单价等属性,顾客实体包括
    顾客编号、姓名、联系电话等属性,两个实体存在如下的关系:
    一个顾客可购买多种任意商品
    每次可购买一定数量的商品(一天只限一次购物)

      将E-R图转成关系模式:*注意:* _1对1不需要再建一个表,只需通过外键就可以连接,多对多需要导入一个基本表_
    

(2)数据模型(逻辑模型和数据模型):
三个组成要素:数据结构、数据操作、数据的完整性约束条件。
数据模型:层次模型、网状模型、关系模型、面向对象模型。

  1. 三级模式:内模式(只有一个)、模式、外模式。

  2. 知道关系的基本概念,掌握关系代数的方法

  • 例题:
  • 现有图书借阅关系数据库模式如下:
    图书(图书号,书名,作者,单价,库存量)
    读者(读者号,姓名,工作单位,地址)
    借阅(图书号,读者号,借期,还期,备注)
    其中,还期为 NULL 表示该书未还。
    用关系代数表示如下查询:
    (1) 查询读者号为“R016”的读者姓名、工作单位
    (2) 查询图书号为“B5”的读者姓名
    (3) 查询读者“李林”所借阅图书的书名
    (4) 查询读者“李林”所借阅图书中未还的书名
    *图书借阅关系查询
  1. 关系完整性约束:
    实体完整性:(主键约束) primary key 主键不能为空,且唯一。
    参照完整性:(外键约束) foreign key 可以为空或是参照表的主键值
    用户定义完整性:check语句 ;not null;unique。
数据库安全性:保护数据库防止不合法使用所造成的数据泄露、更改、破坏。

方法:1.用户标识和鉴别;
2.存取控制
*自主存取控制:
授权:

GRANT <权限>[,<权限>]……ON <对象类型><对象名>[,<对象类型><对象名>]……TO <用户>[,<用户>]……[WITH GRANT OPTION]

授予王明权限

GRANT SELECT ON Student TO 王明

收回权限

REVOKE <权限>[,<权限>]……ON <对象类型><对象名>[,<对象类型><对象名>]……FROM <用户>[,<用户>]……[CASCADE|RESTRICT]

*强制存取控制
3.视图
4.审计
5.数据加密

数据库安全性:数据的正确性和相容性
规范化:


掌握通过函数依赖确定码。

数据库设计步骤:

1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库实施
6.数据库运行和维护
数据字典:数据流、数据结构、数据项、数据存储、处理过程。

第二部分— SQL语言(结构化查询语言)

一、SQL语言特点:
综合统一
高度非过程化
面向集合的操作方式
以同一种语法结构提供多种使用方式
语言简洁,易学易用
对于数据统计方便直观
二、数据定义:


模式:
1.创建模式

  CREATE SCHEMA<模式名>AUTHORIZATION<用户名>

2.删除模式:

 DROP SCHEMA<模式名><CASCADE|RESTRICT>
CASCADE(级联):删除模式同时把模式中所有的数据库对象全部删除RESTRICT(限制):如果已经定义了数据库对象(表,视图 等)。则拒绝删除语句 ,当没有下属对象时,才能执行此语句

表:
1.创建表:

CREATE TABLE <表名>(<列名>  <数据类型>  [完整性约束条件],...............................................<列名>  <数据类型>  [完整性约束条件]);

2.修改表:

  ALTER TABLE<表名>[ADD [COLUME] <新列名><数据类型>[完整性约束]][ADD <表级完整性约束>][DROP [COLUMN] <列名> [CASCADE|RESTRICT]][DROP CONSTRAINT<完整性约束名> [RESTRICT|CASCADE]][ALTER COLUMN <列名><数据类型>];

3.删除表:

DROP TABLE<表名>[RESTRICT|CASCADE]

索引:
1.建立索引:

   CREATE [UNIQUE] [CLUSTER] INDEX <索引名>ON <表名> (<列名> [<次序>],......);

2.修改索引:

ALTER INDEX<旧索引名> RENAME TO <新索引名>

3.删除索引:

  DROP INDEX <索引名>;

视图:
1.视图定义

CREATE VIEW 视图名AS 子查询WITH CHECK OPTION //可以省略

2.视图查询、更新

对于查询更新要转到对基本表上的操作。所以和基本表的查询语句类似,只是把表名的位置换成视图名就可以

3.视图删除

DROP VIEW 视图名 【CASCADE】//CASCADE为级联删除,可以省略

三、数据查询
一般格式如下:

SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]……
FORM <表名或视图名>[,<表名或视图名>……]|(<SELECT 语句>) <别名>
[WHERE <条件表达式>]
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2>[ASC|DESC]

1.查询全部列

select * from  表名;

2.取消取值重复的行

select distinct 列名 from 表名 //去掉表中重复的行必须制定短语distinct,如果没有指定,缺省值为all
条件查询必知:

1.WHERE 子句常用的查询条件:

查询条件 谓词
比较 =,>,<,>=,<=,!=,<>,!>,!<,not+比较运算符
确定范围 BETWEEN AND,NOT BETWEEN AND
确定集合 IN,NOT IN
字符匹配 LIKE,NOT LIKE
空值 IS NULL,IS NOT NULL
多重条件 AND,OR,NOT

WHERE子句后不能跟聚合函数,若需要使用聚合函数作为条件出现可以通过使用GROUP BY 语句后的having语句进行使用

2.聚集函数:

聚集函数 作用
COUNT (*) 统计元组的个数
COUNT([DISTINCT/ALL]<列名>) 统计一列中值得个数
SUM([DISTINCT/ALL]<列名>) 计算一列中值的总和
MAX([DISTINCT/ALL]<列名>) 求一列中值最大值
MIN([DISTINCT/ALL]<列名>) 求一列值中最小值
AVG([DISTINCT/ALL]<列名>) 计算一列中值的平均值

当聚合函数遇到空值时,除count(*)以外都跳过空值只处理非空值
3. ORDER BY 语句必须位于查询语句的最后

连接查询

1.等值连接(有重复列):
使用where子句进行多个表的连接。
2.自然连接没有重复列
3.自身连接:通过给表起别名实现。
4.外连接:

SELECT 查询属性
FORM 表名1
LEFT |RIGHT OUTER  JION 表名2 ON 条件;
嵌套查询—子查询

1.带有IN谓词的子查询
查询与“刘晨”在同一个系学习的学生

SELECT Sdept,Sno,Sname
FORM Student
WHERE Sdept IN (
SELECT Sdept FROM Student WHERE Sname='刘晨')

2.带有比较运算符的子查询
与IN的集合查询相似,只需把IN改为比较运算符即可
3.带有ANY(SOME)或ALL谓词的子查询
方法与以上一致

4.带有EXISTS谓词的子查询
**不返回任何数据,只产生逻辑真值或逻辑假值
查询所有选修了1号课程的学生姓名

SELECT Sname FROM Student
WHERE EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno= '1')
集合查询

(1)集合并
 查询计算机科学系的学生及年龄不大于19岁的学生

SELECT * FROM Student WHERE Sdept= 'CS'UNION
SELECT * FROM Student WHERE Sage<=19

(2)集合交
 查询计算机科学系且年龄不大于 19 岁的学生

SELECT * FROM Student WHERE Sdept='CS'
INTERSECT
SELECT * FROM Student WHERE Sage<=19

(3)集合差
 查询计算机科学系且年龄大于19岁的学生

SELECT * FROM Student WHERE Sdept='CS'
EXCEPT
SELECT * FROM Student WHERE Sage <=19

四、数据更新——增删改表中的数据

  1. 添加数据:

    语法:

 insert into 表名(列名1,列名2,……列名n)values(值1,值2,……值n);

注意:a.列名与对象一一对应。

​ b.如果表名后不定义列名,则默认给所有列添加值

insert into 表名 values(值1,值2,……值n);

​ c.除了数据类型,其他都要用引号(单、双都可)。

  1. 删除数据:

    语法:

 delete from 表名[where 条件];

若不加条件则删除表中所有数据。

若删除所有记录:

 delete from 表名;
  truncate table 表名;**效率高,推荐使用。**
  1. 修改数据:
update 表名 set 列名 [where 条件];

*例题:

  1. 仓库管理系统
    在某仓库管理系统中,有两个表:KC 表和 CKMX 表,其结构和部分数据如下:
    表 1、KC 表结构和数据
    材料代码 材料名称 单位 单价 库存数量
    01 计算机 台 5000.00 10
    02 电视机 台 2000.00 20
    … … … … …
    表 2、CKMX 表结构和数据
    编号 材料代码 出库日期 出库数量
    1 01 2009-10-10 4
    2 01 2009-11-20 3
    3 02 2009-11-20 5
    … … … …
    其中,KC 表保存当前仓库库存材料的信息,CKMX 表存放库存材料的出库名细。
    例如,KC 表第一行表示该仓库中现有计算机 10 台。CKMX 表第二行表示 2009 年 11
    月 20 日从仓库中出库 3 台计算机。
    (1) 试写出创建 KC 表和 CKMX 表的 SQL 语句,要求定义实体和参照完整性。
    (2) 写出在 KC 表上按材料名称建立唯一索引的 SQL 语句。
    (3) 创建一个视图,用于查询计算机的出库明细。
    (4) 写出将表中数据插入到相应表中的语句

(1) 创建表

CREATE TABLE KC
(
材料代码 char(2) PRIMARY KEY,
材料名称 char(20),
单位 char(10),
单价 numeric(10,2),
库存数量 int
)
CREATE TABLE CKMX
(
编号 char(4) PRIMARY KEY,
材料代码 char(2) REFERENCES KC(材料代码),
出库日期 date,
出库数量 int
)

(2) 创建索引

CREATE UNIQUE INDEX index1 ON KC(材料名称)

(3) 创建视图

CREATE VIEW viewComputer
AS SELECT * FROM CKMX WHERE 材料代码 = '01'

(4) 插入数据

INSERT INTO KC VALUES('01','计算机','台',5000.00,10)
INSERT INTO KC VALUES('02','电视机','台',2000.00,20)
INSERT INTO CKMX VALUES('1','01','2009-10-10',4)
INSERT INTO CKMX VALUES('2','01','2009-10-20',3)
INSERT INTO CKMX VALUES('3','02','2009-10-20',5)

(5) 统计

SELECT 材料代码,COUNT(*) as 次数, SUM(出库数量) as 出库数量
from CKMX
group by 材料代码

(6) 查询

SELECT ckmx.编号,出库日期,材料名称,单价,出库数量,出库数量*单价 as 金额
FROM KC,CKMX
WHERE KC.材料代码 = CKMX.材料代码

数据库概论知识点总结相关推荐

  1. 数据库概论之MySQL表的增删改查1

    MySQL表的增删改查 1.MySQL表的CRUD 2.插入数据 2.1 语法 2.2 注意事项 3.查找语句 3.1 全列查找 3.2 指定列查询 3.3 指定查询字段为表达式 3.4 查询字段指定 ...

  2. Web阶段--Oracle数据库基础知识点

    Web阶段–Oracle数据库基础知识点 一.数据库 1.定义 是一个数据存储管理的软件,全称rdbms(关系数据库管理系统),简称数据库(db) 2.为什么需要应用数据库? 1.现有文本文件存放数据 ...

  3. MySQL设计学生选课系统(关系型数据库概论)

    /* 关系型数据库概论 1.-- DQL.DDL.DML.DCL DQL数据查询语言: 用来查询表信息,select.from.where DDL数据定义语言:用来创建数据库中的各种对象--表.视图, ...

  4. 数据库概论基础名词解释

    数据库概论基础名词解释 前言 这里是 数据库系统原理 系列文章,主要介绍数据库系统理论以及数据库实用技术. 数据库技术是计算机学科中的一个重要分支,它的应用非常广泛,几乎涉及所有的应用领域. 注:本篇 ...

  5. 数据库概论-MySQL的数据表的基本操作

    数据表的操作 数据表的操作 2.1 MySQL管理数据的方式 2.2 MySQL当中的数据类型 2.1 数值类型 2.2 字符串类型 2.3 日期类型 2.3 创建表 2.4 查看表 2.5 查看表结 ...

  6. Oracle数据库基础知识点大全(一)

    Oracle数据库基础知识点大全 一.数据库基本概念 E-R模型 数据库对象 二:标准SQL包含了4种基本的语句类别 三:DML语句(数据操作语句) 数字和日期使用的数学表达式 常用 where 查询 ...

  7. 《数据库概论》实验(2):交互式SQL--创建表《数据库概论》 实验(3)-交互式SQL--简单查询 《数据库概论》实验(4):交互式SQL--复杂查询

    <数据库概论>实验(2):交互式SQL--创建表 一. 创建数据库 create database test;  /创建test数据库 二.创建表 create table student ...

  8. python多线程读取数据库数据_Python基于多线程操作数据库相关知识点详解

    Python基于多线程操作数据库相关问题分析 本文实例分析了Python多线程操作数据库相关问题.分享给大家供大家参考,具体如下: python多线程并发操作数据库,会存在链接数据库超时.数据库连接丢 ...

  9. mysql数据库基础知识点总结--看完即入门

    疫情在家,在家简单复习了SQL数据库的基础知识.其实回过头来,当时本科时候学习的时候,还没有多大的感触.现在学习了这么多的语言和结构化知识,再回头来看这门语言,很多东西息息相关.就像是瞬间打通了六脉, ...

最新文章

  1. java 调用url_java程序中访问url接口
  2. 微积分笔记(一)--预备知识
  3. Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
  4. [转]Eclipse插件开发之基础篇(2) 第一个Eclipse插件
  5. 【转载】一百年后,人类怎样编程?
  6. 02-05 Python库-time datetime
  7. php mysql_fetch_array($result)_PHP mysqli_free_result()与mysqli_fetch_array()函数
  8. CentOS 6.6 安装 Node.js
  9. 《寄生虫》横扫奥斯卡,Python告诉你这部电影到底好在哪里?
  10. 商业计划书范文3000_商业计划书范文(精选)
  11. 面试题:用两个队列实现一个栈
  12. 手把手交给大家怎样破解压缩包密码的方法
  13. bootstrap3-dialog 使用说明
  14. 前端-优雅的VueJS
  15. Docker 之 Docker Machine
  16. android:详细解读DialogFragment
  17. 国内几款接口管理平台,使用体验分析对比:总有一款是你想要的!
  18. Jupyter notebook文字排版笔记
  19. rocksdb 安装全过程 一些问题解决方法
  20. 为什么TCP服务端需要调用bind函数而客户端通常不需要呢

热门文章

  1. 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc
  2. 企业级服务器内存位置,真相!企业级内存条到底牛在哪儿?
  3. python房地产成本管理软件_房地产项目成本测算软件
  4. Hadoop学习之Flume日志采集
  5. 2019招聘计算机,2019兴业银行招聘计算机模拟试题及答案
  6. UI设计中字体使用小窍门
  7. pow在python中是什么意思_数学.pow在Python中是十进制的?
  8. vue中ztree使用懒加载的方法
  9. csdn 强制登录否则无法查看全文的解决办法
  10. 数据挖掘导论 笔记4