数据库实验报告--MySQL
作者:mmseoamin日期:2023-12-25

前言

        MySQL 是一个开源的关系型数据库管理系统,它是一种客户端/服务器模式的数据库,是最流行的开源数据库之一。MySQL 使用标准 SQL 数据语言,是一种可扩展性和可定制性极高的数据库系统。MySQL 支持多种操作系统,包括 Linux、Windows 和 Mac OS X 等。

MySQL 的主要特点包括:

 1. 高性能:MySQL 能够处理高并发读写请求,支持多线程操作,提供高效的缓存机制。

 2. 可扩展性和可定制性:MySQL 可以根据具体需求进行定制和扩展。

 3. 安全性:MySQL 提供了多种安全措施,包括用户验证、加密传输和权限控制等。

 4. 可靠性:MySQL 提供了备份和恢复功能,可以保证数据可靠性。

 5. 易用性:MySQL 简单易用,适合各种规模的应用,从简单的 Web 应用到大型企业级应用。

总之,MySQL 是一款功能强大、可靠性高、性能优异、易用性好的数据库管理系统,广泛应用于 Web 应用、企业应用和移动应用领域。

目录

1 数据库的创建与管理

 1.1 创建数据库

 1.2 查看数据库属性

 1.3 修改数据库属性

1.4 删除数据库

2 表的创建与管理

 2.1 创建表

 2.2 删除表

 2.3 修改表名 

3 数据查询 

 3.1 单表查询

 3.2 连接查询 

 3.3 嵌套查询 

4 数据库的视图定义及维护

 4.1 创建视图

 4.2 删除视图

 4.3 查询视图

 4.4 更新视图

5 数据安全性控制

 5.1 设置和管理数据操作权限

 5.2 收回数据操作权限

6 数据完整性控制

 6.1 创建触发器

 6.2 测试   


1 数据库的创建与管理

 1.1 创建数据库

     方法一:使用企业管理器直接建立数据库(鼠标右键创建数据库,输入数据库名,字符集和字符规则)。

数据库实验报告--MySQL,第1张

     方法二: 使用MySQL语句创建数据库

CREATE DATABASE SJK 
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_czech_ci;

数据库实验报告--MySQL,第2张

 1.2 查看数据库属性

SHOW CREATE DATABASE SJK

数据库实验报告--MySQL,第3张

 1.3 修改数据库属性

     方法一:使用企业管理器修改数据库属性(鼠标右键更改数据库,更改字符集和校对规则)

数据库实验报告--MySQL,第4张

     方法二:使用MySQL语句修改数据库属性

ALTER DATABASE SJK 
      DEFAULT  CHARACTER SET utf8
DEFAULT  COLLATE utf8_czech_ci

1.4 删除数据库

     方法一:使用企业管理器删除数据库(鼠标右键更多数据库操作删除数据库)

数据库实验报告--MySQL,第5张

     方法二:使用MySQL语句删除数据库

DROP DATABASE  IF EXISTS SJK

本次实验,我学习了数据库的基本知识,掌握了如何查看、修改数据库属性,深刻体会到了学以致用的重要性,并对数据库这门课程引起了极大的兴趣,也希望今后能学习到更多关于数据库的知识。

2 表的创建与管理

 2.1 创建表

     方法一:使用企业管理器创建(鼠标右键创建-表)

     方法二:使用MySQL语句创建

CREATE TABLE Student          
      (Sno   CHAR(9) PRIMARY KEY, 
                                          /* 列级完整性约束条件,Sno是主码*/                  
        Sname CHAR(20) UNIQUE,             /* Sname取唯一值*/
        Ssex    CHAR(2),
        Sage   SMALLINT,
        Sdept  CHAR(20)
      );

 数据库实验报告--MySQL,第6张

 2.2 删除表

DROP TABLE student CASCADE;

 数据库实验报告--MySQL,第7张

 2.3 修改表名 

ALTER  TABLE  student 
RENAME TO  stu;

数据库实验报告--MySQL,第8张

通过本次实验,我学习到了数据库的一些基本知识,掌握创建、删除表和修改表结构的方法,对数据库也有了进一步的认识,对今后的数据库操作和学习起到了一定的铺垫作用。

MySQL详细创建表,数据库MySQL表的创建以及创建表的基本语法和示例,并展现了数据库最终创建的结果等,请查看https://download.csdn.net/download/m0_64304713/88368833

3 数据查询 

 3.1 单表查询

   (1)查看全体学生的学号与姓名

SELECT Sno,Sname
FROM Student;

数据库实验报告--MySQL,第9张

 (2)查询全体学生姓名、出生年份和所在系院(要求用小写字母表示系名)

SELECT Sname,'Year of Birth:',2014-Sage,LOWER(Sdept)
FROM Student;

数据库实验报告--MySQL,第10张

 3.2 连接查询 

   (1)查看每个学生及其选修课程的情况

SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno=SC.Sno;

 数据库实验报告--MySQL,第11张

   (2)查询选修2号课程且成绩在90分以下的所有学生的学号和姓名

SELECT Student.Sno,Sname
FROM Student,SC
WHERE Student.Sno=SC.Sno AND
      SC.Cno='2'AND SC.Grade<90;

数据库实验报告--MySQL,第12张

 3.3 嵌套查询 

   (1)查询与“刘晨”在同一个系学习的学生

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

数据库实验报告--MySQL,第13张

    (2)查询选修了课程名为“信息系统”的学生学号和姓名

SELECT Sno,Sname
FROM Student
WHERE Sno IN
       (SELECT Sno
       FROM SC
       WHERE Cno IN
           (SELECT Cno
           FROM Course
           WHERE Cname='信息系统'
           )
        );

数据库实验报告--MySQL,第14张

通过本次实验,我了解了查询的概念和方法,并掌握了SELECT语句在单表查询的应用、复杂查询的使用方法以及多表连接的方法,大大提高了数据的使用效率,让我对数据库的学习有所憧憬。

4 数据库的视图定义及维护

 4.1 创建视图

CREATE VIEW IS_Stu
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS';
WITH CHECK OPTION;

数据库实验报告--MySQL,第15张

 4.2 删除视图

DROP VIEW IS_Stu

数据库实验报告--MySQL,第16张

 4.3 查询视图

SELECT Sno,Sage
FROM IS_Stu
WHERE Sage<20;

数据库实验报告--MySQL,第17张

 4.4 更新视图

UPDATE IS_Stu
SET Sname='刘辰'
WHERE Sno='201215122';

数据库实验报告--MySQL,第18张

通过本次实验,我掌握了视图的定义与维护操作,加深了对视图在关系数据库中的作用的理解,对数据库有了更多的了解和认识,为今后的学习做了铺垫,也让我对后期的学习充满了信心。

5 数据安全性控制

 5.1 设置和管理数据操作权限

     方法一:使用企业管理器设置(管理用户权限)

数据库实验报告--MySQL,第19张

     方法二:使用MySQL语句设置

GRANT SELECT 
ON TABLE Student
TO 赵

 5.2 收回数据操作权限

REVOKE SELECT
ON TABLE student 
FROM 赵

数据库实验报告--MySQL,第20张

通过本次实验,加深了对数据安全性的理解,同时也学会了设置和管理数据操作权限,也学会了收回数据操作权限,对数据库学习更加全面,学习数据库也越来越轻松。

6 数据完整性控制

旨在学会创建、使用触发器

 6.1 创建触发器

     1.创建数据表

CREATE TABLE test_trigger (
id INT PRIMARY KEY AUTO_INCREMENT,
t_note VARCHAR(30)
);
CREATE TABLE test_trigger_log (
id INT PRIMARY KEY AUTO_INCREMENT,
t_log VARCHAR(30)
);

     2.查看表数据

SELECT * FROM test_trigger;
SELECT * FROM test_trigger_log;

     3.创建触发器

DELIMITER //
CREATE TRIGGER before_insert_test_tri
BEFORE INSERT ON test_trigger
FOR EACH ROW
BEGIN 
     INSERT INTO test_trigger_log(t_log)
     VALUES('before insert...');
END //
DELIMITER//

 6.2 测试   

     1.测试

INSERT INTO test_trigger(t_note)
VALUES ('Tom...');

     2.查看数据

SELECT * FROM test_trigger;
SELECT * FROM test_trigger_log;

数据库实验报告--MySQL,第21张数据库实验报告--MySQL,第22张

通过本次实验,我加深了对数据库完整性的理解,学会了创建使用触发器,对数据库也越来越热爱,对今后学习也充满了信心。