数据P77-表格代码Mysql

创建了名为stuexpm的数据库,包含四个表:StudentInfo(学生信息)、CourseInfo(课程信息)、ScoreInfo(成绩信息)和TeacherInfo(教师信息)。每个表都有其特定的字段和注释,如学号、姓名、性别、出生日期、专业、学分、教师编号等,用于存储和管理教育相关数据。
摘要由CSDN通过智能技术生成

#(1)创建数据库stuexpm

create database stuexpm;

#(2)创建studentinfo表,显示studentinfo表的基本结构

#表4.9

use stuexpm;

create table StudentInfo

(

StudentID varchar(6) not null primary key comment '学号',

Name varchar(8) not null comment '姓名',

Sex varchar(2) not null default '男' comment '性别',

Birthday date not null comment '出生日期',

Speciality varchar(12) null comment '专业',

Address varchar(50) null comment '家庭住址'

)comment '学生表';
 

 

#表4.10

use stuexpm;

create table CourseInfo

(

CourseID varchar(4) not null primary key comment '课程号',

CourseName varchar(16) not null comment '课程名',

Credit tinyint null comment '学分'

)comment '课程表';

 

#表4.11

use stuexpm;

create table ScoreInfo

(

StudentID varchar(6) not null comment '学号',

CourseID varchar(4) not null comment '课程号',

Grade tinyint null comment '成绩',

primary key(StudentID,CourseID)

)comment '成绩表';

 

#表4.12

use stuexpm;

create table TeacherInfo

(

TeacherID varchar(6) not null primary key comment '教师编号',

TeacherName varchar(8) not null comment '姓名',

TeacherSex varchar(2) not null default '男' comment '性别',

TeacherBirthday date not null comment '出生日期',

School varchar(12) null comment '学院',

Address varchar(20) null comment '地址'

)comment '教师表';

 

### 回答1: 在 MySQL 中,可以使用以下方法来禁止删除表格中的数据: 1. 使用触发器:可以在删除数据时触发触发器,在触发器中编写逻辑来阻止数据被删除。例如: ``` CREATE TRIGGER no_delete BEFORE DELETE ON tablename FOR EACH ROW BEGIN SELECT 'You are not allowed to delete rows from this table' AS message; END ``` 2. 使用存储过程:可以在删除数据时调用存储过程,在存储过程中编写逻辑来阻止数据被删除。例如: ``` CREATE PROCEDURE no_delete (IN p_id INT) BEGIN SELECT 'You are not allowed to delete rows from this table' AS message; END ``` 然后在执行 DELETE 语句时调用存储过程: ``` DELETE FROM tablename WHERE id = 1; ``` 3. 使用视图:也可以使用视图来禁止删除表格中的数据。视图是一种虚拟表,它不存储数据,而是将数据从其他表格中检索出来。因此,可以创建视图来检索数据,但是不能删除数据。例如: ``` CREATE VIEW v_tablename AS SELECT * FROM tablename; ``` 然后,在执行 DELETE 语句时使用视图名称: ``` DELETE FROM v_tablename WHERE id = 1; ``` 这将导致错误,因为无法在视图中删除数据。 4. 使用权限管理:可以使用 MySQL 的权 ### 回答2: 要禁止删除MySQL表格中的数据,可以采取以下几种方法: 1. 使用权限控制:通过为用户分配合适的权限,限制其对表格的删除操作。可以使用GRANT语句给予用户SELECT和INSERT权限,但不赋予DELETE权限,这样用户就无法删除表格中的数据。 示例代码: GRANT SELECT, INSERT ON database.table TO 'user'@'host'; 2. 使用数据库触发器:创建一个BEFORE DELETE触发器,用于捕捉删除操作,并阻止其执行。在触发器中,可以通过抛出一个异常来终止删除操作,从而阻止数据的删除。 示例代码: CREATE TRIGGER prevent_delete BEFORE DELETE ON database.table FOR EACH ROW BEGIN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Deleting data from this table is not allowed!'; END; 3. 使用备份和恢复策略:定期备份MySQL数据库,并确保备份文件的安全性。在需要恢复数据时,从备份文件中还原表格,以避免意外删除数据所带来的损失。 以上是一些常用的方法来禁止删除MySQL表格中的数据。根据实际需求和系统环境,可以选择适合的方法来保护数据的完整性和安全性。 ### 回答3: 要禁止删除MySQL表格中的数据,可以通过以下方法实现: 1. 限制用户权限:可以通过修改用户的权限来禁止其删除表格中的数据。在MySQL中,可以使用GRANT和REVOKE语句来授予或撤销用户的权限。例如,可以使用REVOKE DELETE权限来禁止用户删除表格中的数据。 2. 使用强制删除警告:可以通过在删除操作前添加确认弹窗或强制输入密码等措施来提醒用户。这样的措施可以增加删除操作的可见性,并防止意外删除。 3. 设置触发器:可以在MySQL表格中创建触发器,监控删除操作,并在删除时执行特定动作。可以使用BEFORE DELETE触发器来取消删除操作,或使用AFTER DELETE触发器来记录删除操作的详细信息,以提供审核和追踪。 4. 数据库备份和恢复:可以定期对MySQL数据库进行备份,并设置合适的恢复策略。这样即使误删了数据库中的数据,也可以通过数据库备份来进行恢复,保证数据的完整性。 总结起来,禁止删除MySQL表格中的数据需要从权限控制、数据删除操作的提示和验证、触发器和数据备份恢复等多个方面来实施。每一种方法都可以根据具体情况的不同进行深入的配置和调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值