◼ 理论 --- 过程60%,期末笔试40%
◼ 实验 --- 过程30%,课程设计70%
授课分为网上授课和实际授课,所以就是两种授课逻辑。
故 笔记逻辑以授课为主,MOOC-哈工大数据库系统为记忆框架 。
第一讲 初步认识数据库
数据库、数据库系统和数据库管理系统的关系
数据建模
概念模型(7)->逻辑模型->物理模型
逻辑模型-》关系模型(2)-》SQL语言(3)
💯实验一:概念图的绘制
概念模型
实体-》属性【域】 }码
实体型-》实体集
❗❗码:唯一标识,属性集,最小趋向
》》联系
1:1,1:N,N:N, : E_R
1.1,0.1,1.n, :文本,前为最小基数,后为最大基数
一个实体型 一对一联系(1:1)
两个实体型 一对多联系(1:n)
三个实体型 多对多联系(m:n)
同类实体型
❗实体不是属性,举例联系中不可以将其混淆
such as:身份证和人的1:1关系不成立
常见举例:学生 课程 老师 办公室 ||| 读者,书,书架,
❗E_R
矩形:实体;
椭圆:属性
菱形:联系
无向边
A----bMAX_---_bMIN----<联系>----aMIN_---a_MAX---B
最小:0 | 1
最大:1N
❗语义对象模型图
ID为属性,ID pkey
1.N为基数
❗❗❗❗❗❗E_R图的设计
❗实体--区分出来,恰当的名字
- 超类和子类
- 画上U,子类的属性集合一定是包含了超类的
- 完全约束:||
- 不完全约束:|
- 子类与子类的关系以及符号:D or O
- D子类互斥则需要建立新的属性,来区分子类
- 完全约束:||
❗联系--恰当的名字
- 若闭环则一定有冗余
- 去掉考试推出的
❗属性--根据题意
❗基数--题意+理解
❗键--题意+理解
DB2-ch
E-R图转换
实体-》表
- 关键字相同的合并
❗联系-》表,bu原则,❗1:N
- 1对多,一方加入多方
- 多对多,联系变表,拆成两个
- 一对一,随机并
属性-》列
❗❗❗关键字
- 外关键字
- NULL or ALLOWED
- DELETE or CASCADE or SET NULL;
- UPDATA CASCADE<--Default;
- 约束规则
- 主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
- 必须为主表定义主键。
- 主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
- 在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
- 外键中列的数目必须和主表的主键中列的数目相同。
- 外键中列的数据类型必须和主表主键中对应列的数据类型相同。
- 非空约束(not null):不可为空
- 唯一性约束(unique [key|index]):唯一,可为空,但空值只允许出现一次
- 默认值约束(default):create(address varchar(50) default ‘南京’)
- 自增约束(auto_increment):随着记录增加,基于最新的记录的id进行+1的自增长
- 外键的定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段称为表二的外键。
- 特例
第一讲
❗数据库相关概念图析 数据库的基本概念
1
关于数据库系统和数据库管理系统,下列说法正确的是__________。
A.
数据库系统和数据库管理系统指的是同一软件产品
B.
数据库系统和数据库管理系统指的是不同软件产品
C.
数据库管理系统是软件产品,而数据库系统不仅仅是软件产品
D.
数据库系统是软件产品,而数据库管理系统不仅仅是软件产品
正确答案:C你选对了
2
关于数据库系统,下列说法正确的是__________。
A.
数据库系统的构成包括计算机/网络基本系统、数据库和数据库管理系统
B.
数据库系统的构成包括计算机/网络基本系统、数据库、数据库管理系统和数据库应用程序
C.
数据库系统的构成包括计算机/网络基本系统、数据库、数据库应用程序和数据库管理员
D.
数据库系统的构成包括数据库、数据库管理系统、数据库应用程序、数据库管理员以及计算机与网络基本系统
正确答案:D你选对了
3
从用户角度看数据库管理系统的功能,下列说法正确的是__________。
A.
数据库管理系统就是通过数据库语言让用户操作进而提供数据库操纵功能的系统
B.
数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义和数据库操纵功能的系统
C.
数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义、数据库操纵和数据库控制功能的系统
D.
数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义、数据库操纵和数据库控制功能的系统,同时提供了一系列程序能够实现对数据库的各种存储与维护
正确答案:D你选对了
4
从系统角度看数据库管理系统,其功能包括__________。
A.
数据库语言及其编译
B.
查询实现与查询优化
C.
事务处理
D.
不仅仅有(A)(B)(C)功能,还包括其他功能
正确答案:D你选对了
5
从系统角度看数据库管理系统,其功能包括__________。
A.
X-查询实现与查询优化
B.
Y-事务处理
C.
Z-数据存储与索引
D.
不仅仅包含X-、Y-、Z-功能,还包括其他功能
正确答案:D你选对了
6
下列哪些功能不是数据库管理系统的功能__________。
A.
完整性控制
B.
并发控制
C.
通讯控制
D.
处理机控制
正确答案:D你选对了
7
关于数据库系统语言,下列说法正确的是__________。
A.
数据库系统语言包括了DDL和DML
B.
数据库系统语言包括了DDL、DML和DCL
C.
数据库系统语言包括了DDL、DML和C++/Java
D.
数据库系统语言包括了DDL、DML和程序设计语言
正确答案:B你选对了
8
关于DDL,下列说法正确的是__________。
A.
DDL是数据库定义语言
B.
DDL是数据库操纵语言
C.
DDL是数据库控制语言
D.
DDL是数据库维护语言
正确答案:A你选对了
9
关于DML,下列说法正确的是__________。
A.
DML是数据库定义语言
B.
DML是数据库操纵语言
C.
DML是数据库控制语言
D.
DML是数据库维护语言
正确答案:B你选对了
10
从用户角度看数据库管理系统,其功能包括__________。
A.
数据库定义
B.
数据库操纵
C.
数据库控制
D.
上述全部
正确答案:D你选对了
11
从用户角度看数据库管理系统,其功能包括__________。
A.
数据库定义
B.
数据库操纵
C.
数据库控制
D.
数据库维护
正确答案:A、B、C、D你选对了
第二讲 数据库结构抽象与系统
详情见ppt
*数据库技术发展
◼ 层次/网状数据库系统
◼ 关系数据库系统
◼ 新一代数据库系统家族 (分布式数据库、NoSQL数据库、NewSQL数据库、内存数据库、云数据库)
1
数据库系统的三级模式是指__________。
A.
用户模式、局部模式和全局模式
B.
外模式、概念模式和逻辑模式
C.
外模式、内模式和存储模式
D.
用户模式、概念模式和存储模式
正确答案:D你选对了
2
在三级模式两层映像结构中,“模式”是指__________。
A.
外模式
B.
内模式
C.
存储模式
D.
概念模式
正确答案:D你选对了
3
在三级模式两层映像结构中,“物理模式”是指__________。
A.
外模式
B.
全局模式
C.
用户模式
D.
存储模式
正确答案:D你选对了
4
在三级模式两层映像结构中,“全局模式”是指__________。
A.
外模式
B.
用户模式
C.
内模式
D.
概念模式
正确答案:D你选对了
5
在三级模式两层映像结构中,“局部模式”是指__________。
A.
概念模式
B.
内模式
C.
逻辑模式
D.
外模式
正确答案:D你选对了
6
关于三级模式,下列说法不正确的是___ _______。
A.
概念模式又称为全局模式
B.
概念模式又称为逻辑模式
C.
内模式又称为存储模式
D.
内模式又称为局部模式
正确答案:D你选对了
7
关于数据独立性,下列说法正确的为___ _______。
A.
外模式到概念模式的映像实现了数据的物理独立性
B.
外模式到内模式的映像实现了数据的物理独立性
C.
概念模式到内模式的映像实现了数据的物理独立性
D.
以上说法均不正确
正确答案:C你选对了
8
关于数据独立性,下列说法正确的为___ _______。
A.
外模式到概念模式的映像实现了数据的逻辑独立性
B.
外模式到内模式的映像实现了数据的逻辑独立性
C.
概念模式到内模式的映像实现了数据的逻辑独立性
D.
以上说法均不正确
正确答案:A你选对了
9
数据库系统的数据独立性是指_______________。
A.
不会因为数据的变化而影响应用程序
B.
不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
C.
不会因为存储策略的变化而影响存储结构
D.
不会因为某些存储结构的变化而影响其他的存储结构
正确答案:B你选对了
10
下列说法不正确的是_______________。
A.
模式是对数据的抽象,数据的结构性描述称为模式
B.
数据模型是对模式的抽象,模式的结构性描述称为数据模型
C.
一个数据库是由一系列模式及其数据构成的
D.
模式是对数据模型的抽象,数据模型的结构性描述称为模式
正确答案:D你选对了
11
第一代数据库系统是指_______________。
A.
文件系统
B.
基于XML模型的数据库系统
C.
基于关系模型的数据库系统
D.
基于网状模型或层次模型的数据库系统
正确答案:D你选对了
12
第二代数据库系统是指_______________。
A.
基于文件的数据库系统;
B.
基于XML模型的数据库系统
C.
基于网状模型或层次模型的数据库系统
D.
基于关系模型的数据库系统
正确答案:D你选对了
13
数据库系统与文件系统的主要差别在_______________。
A.
数据的组织是否依赖于具体的应用程序
B.
数据存取是否可以记录或记录的集合为单位进行操作
C.
不同文件之间以及不同记录之间是否有联系
D.
包括其他全部选项
正确答案:D你选对了
14
关系数据库系统对层次/网状数据库系统的重大改进是_______________。
A.
消除了由用户建立指针的弊端
B.
将逐一记录的操作改进为支持记录集合的操作
C.
数据检索操作不依赖于路径信息或过程信息,即非过程化的操作
D.
包括其他全部选项
正确答案:D你选对了
15
面向对象数据库系统对关系数据库系统的重大改进是_______________。
A.
允许复杂的数据类型存在
B.
突破了关系模型第一范式的限制
C.
既支持记录集合的操作,又支持面向对象的操作
D.
包括其他全部选项
正确答案:D你选对了
黑马程序员
DAY1
基础篇
数据模型
关系型的数据模型:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 而所谓二维表,指的是由行和列组成的表
MYSQL:我们可以通过MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库。 可以使用SQL语句,通过数据库管理系统操作数据库,以及操作数据库中的表结构及数据。 一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包 含多行记录。
SQL
- 通用语法
1). SQL语句可以单行或多行书写,以分号结尾。
2). SQL语句可以使用空格/缩进来增强语句的可读性。
3). MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4). 注释: 单行注释:-- 注释内容 或 # 注释内容 多行注释:/* 注释内容 */
分类:DDL,DML,DQL,DCL;
- 分 类 全称 说明
- DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表, 字段)
- DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改
- DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
- DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的 访问权限
DDL
2.3.1 数据库操作
1). 查询所有数据库
show databases ;
2). 查询当前数据库
SELECT DATATABLE();
show tables;
- 查询表
-
use tbname; show tables;
desc 表名
查询指定表的建表语句
1 show tables; use sys; show tables; 2 how create table 表名 ;
通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。
-
4). 创建表结构 注意: [...] 内为可选参数,最后一个字段后面没有逗号 比如,我们创建一张表 tb_user ,对应的结构如下,那么建表语句为:
CREATE TABLE 表名( 字段1 字段1类型 [ COMMENT 字段1注释 ], 字段2 字段2类型 [COMMENT 字段2注释 ], 字段3 字段3类型 [COMMENT 字段3注释 ], ...... 字段n 字段n类型 [COMMENT 字段n注释 ] ) [ COMMENT 表注释 ] ;
-
3). 创建数据库
案例: A. 创建一个itcast数据库, 使用数据库默认的字符集。 在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。 可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不 创建。
select database() ;
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序 规则 ] ;
create database itcast;
// create database if not extists itcast;
B. 创建一个itheima数据库,并且指定字符集
create database itheima default charset utf8mb4;
4). 删除数据库 如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再 执行删除,否则不执行删除。
drop database [ if exists ] 数据库名 ;
5). 切换数据库 我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。 比如,切换到itcast数据,执行如下SQL:
USE table;
select database() ;
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序 规则 ] ;
create database itcast;
create database if not extists itcast;
数据类型
类型 大小 有符号(SIGNED)范围 无符号(UNSIGNED)范围 描述
TINYINT 1byte (-128,127) (0,255) 小整 数值
SMALLINT 2bytes (-32768,32767) (0,65535) 大整数值
MEDIUMINT 3bytes (-8388608,8388607) (0,16777215) 大整数值
INT/INTEGER 4bytes (-2147483648, 2147483647) (0,4294967295) 大整数值
BIGINT 8bytes (-2^63,2^63-1) (0,2^64-1) 极大整数 值
FLOAT 4bytes (-3.402823466 E+38, 3.402823466351 E+38) 0 和 (1.175494351 E38,3.402823466 E+38) 单精度浮点数值
DOUBLE 8bytes (-1.7976931348623157 E+308, 1.7976931348623157 E+308) 0 和 (2.2250738585072014 E-308, 1.7976931348623157 E+308) 双精度浮点数 值
DECIMAL 依赖于M(精度)和D(标度) 的值 依赖于M(精度)和D(标度)的 值小数值(精 确定 点数)
2.3.2.4 表操作-修改
1). 添加字段 案例: 为emp表增加一个新的字段”昵称”为nickname,类型为varchar(20)
2). 修改数据类型
3). 修改字段名和字段类型 案例: 将emp表的nickname字段修改为username,类型为varchar(30)
4). 删除字段 案例: 将emp表的字段username删除
5). 修改表名 案例: 将emp表的表名修改为 employee
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT '昵称';
ALTER TABLE 表名 DROP 字段名;
ALTER TABLE emp DROP username;
ALTER TABLE 表名 RENAME TO 新表名;
ALTER TABLE emp RENAME TO employee;
2.3.2.5 表操作-删除
1). 删除表 可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不 加该参数项,删除一张不存在的表,执行将会报错)。
2). 删除指定表, 并重新创建表 注意: 在删除表的时候,表中的全部数据也都会被删除。
DROP TABLE [ IF EXISTS ] 表名;
DROP TABLE IF EXISTS tb_user;
TRUNCATE TABLE 表名;