【数据库原理及应用】【数据库系统概论第5版王珊】期末考试复习必备
知识点
文档中包含的知识点主要涉及数据库的创建、表的创建与修改、索引的创建与管理、视图的创建与管理以及数据的查询与更新。以下是对文档中知识点的详细总结:
数据库操作
- 创建数据库 (
CREATE DATABASE
) - 使用数据库 (
USE
)
表的创建与修改
- 创建数据表 (
CREATE TABLE
) - 修改表结构,如添加字段、删除字段、修改字段类型等 (
ALTER TABLE
)- 添加字段 (
ADD
) - 删除字段 (
DROP
) - 修改字段属性 (
MODIFY
,CHANGE
) - 重命名字段 (
CHANGE
)
- 添加字段 (
- 删除表 (
DROP TABLE
)
索引的创建与管理
- 创建索引以提高查询效率 (
CREATE INDEX
)- 单列索引
- 多列索引
- 唯一性索引
- 全文索引
- 查看索引结构
- 删除索引 (
DROP INDEX
)
视图的创建与管理
- 创建视图以简化复杂查询 (
CREATE VIEW
) - 查看视图结构
- 查看基本结构 (
DESC
) - 查看详细结构 (
SHOW CREATE VIEW
)
- 查看基本结构 (
- 修改视图定义 (
ALTER VIEW
) - 更新视图数据
- 删除视图 (
DROP VIEW
)
数据查询
- 基本的查询操作 (
SELECT
)
数据更新
- 更新数据表中的记录 (
UPDATE
)
数据删除
- 删除数据表中的记录 (
DELETE FROM
)
数据完整性约束
- 定义主键 (
PRIMARY KEY
) - 定义唯一性约束 (
UNIQUE
) - 定义外键约束 (
FOREIGN KEY
) 及其删除
数据类型与属性
- 整数类型 (
INT
) - 浮点类型 (
FLOAT
) - 字符串类型 (
VARCHAR
) - 日期时间类型 (
DATETIME
) - 二进制大对象 (
BLOB
) - 存储引擎更改 (
ENGINE
)
其他SQL操作
- 自动增长的字段属性 (
AUTO_INCREMENT
) - 数据插入操作 (
INSERT INTO
) - 数据删除操作的注意事项(如外键约束导致的删除失败)
这些知识点涵盖了数据库管理系统(DBMS)中的基本操作,适用于学习和实践关系型数据库的使用。
实验参考代码
实验1 建立数据库及其对象
一、验证性实验
1. 表定义与修改操作
(1)首先创建数据库schoolInfo。
CREATE DATABASE schoolInfo;
(2)创建 teacherInfo 表。
USE schoolInfo;
CREATE TABLE teacherInfo (
id INT(4) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
num INT(10)NOT NULL UNIQUE,
Name VARCHAR(20)NOT NULL,
Sex VARCHAR(4)NOT NULL,
Birthday DATETIME,
Address VARCHAR(50)
);
(3)将 teacherInfo 表的name字段的数据类型改为 VARCHAR(30)。
ALTER TABLE teacherInfo MODIFY name VARCHAR(30) NOT NULL;
- 会出现警告,编号为1681。警告内容是:"Integer display width is deprecated and will be removed in a future release." 这表示在创建表时使用的
INT(4)
和INT(10)
中的数字(4和10)是被弃用的,并且在未来版本的MySQL中将被移除。这是因为在MySQL 8.0.16及以后的版本中,指定整数类型的长度不再影响其显示宽度,而只是用于指定精度。
(4)将birthday字段的位置改到sex字段的前面。
ALTER TABLE teacherInfo MODIFY birthday DATETIME AFTER name;
注意:AFTER name
会导致错误,因为DATETIME
类型不能紧跟在VARCHAR
类型之后。正确的做法是使用FIRST
将字段移动到表定义的开始位置。
ALTER TABLE teacherInfo MODIFY birthday DATETIME FIRST;
(5)将num字段改名为t_id。
ALTER TABLE teacherInfo CHANGE num t_id INT(10) NOT NULL;
(6)将 teacherInfo 表的address字段删除。
ALTER TABLE teacherInfo DROP address;
(7)在 teacherInfo 表中增加名为wages的字段,数据类型为FLOAT。
ALTER TABLE teacherInfo ADD wages FLOAT;
(8)将 teacherInfo 表改名为 teacherInfo_Info。
ALTER TABLE teacherInfo RENAME teacherInfo_Info;
(9)将 teacherInfo_Info表的存储引擎更改为MyISAM类型。
ALTER TABLE teacherInfo_Info ENGINE=MyISAM;