数据库第一次实验

本文详细介绍了使用Oracle10g进行数据库操作的实验流程,包括客户端配置、SQL*Plus使用、表的创建、修改与删除,以及如何查看表结构。通过具体示例,如创建学生信息、课程信息和选课信息表,以及对表结构的调整,帮助读者掌握Oracle数据库的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 实验题目:认识 DBMS(Oracle),SQL 数据定义功能
  • 实验目的:

理解数据库模式的概念,通过使用 Oracle 的客户端 Oracle ­ OraClient10g_home1­ Enterprise Manager Console 建立基本表, 实现模式对象与用户名之间的关联。 熟悉 Enterprise

Manager Console 企业管理器的使用方法,重点掌握使用 SQL*Plus 远程连接数据库服务器,通过使用 SQL 数据定义语句的 create table 创建表、alter table 修改表、drop table 删除表以及 desc 查看表结构等内容。

  • 实验内容:

1掌握 Oracle 10g 客户端配置方法

2掌握 Oracle 10g 中 SQL*Plus 的登录和退出方法

3掌握创建表的方法

4掌握修改表的方法

5掌握删除表的方法

6掌握查看表结构的方法

7.设计的内容或知识点

四.简单的实验步骤:

1Oracle 10g 客户端配置方法

2. Oracle 10g SQL*Plus 的登录和退出方法

3. 在 windows 平台上的命令提示符环境下使用 SQL*Plus:

4. 创建表的方法

1创建学生信息表 student

create table student(

sno varchar2(10) constraint pk_student primary key, sname varchar2(30) constraint uk_student unique not null, ssex varchar2(2) default '男' constraint ck_ssex check(ssex in ('男','女')), sage int, sdept varchar2(30)

2创建课程信息表 course

create table course( cno varchar2(10) primary key, cname varchar2(30) not null, cpno varchar2(10), ccredit number(4,2),

constraint fk_course foreign key(cpno) references course(cno)

 

3创建选课信息表 sc

create table sc

(

sno varchar2(10), cno varchar2(10),

grade number(5,2) default 0,

constraint pk_sc primary key(sno,cno)

)

;

 

2修改表的方法

    1. 在 SQL*PLUS 中修改 student 表,为表添加一个新的列入学时间(sincome date)

alter table student add (sincome date);

    1. 在 SQL*PLUS 中修改 student 表,在列 sage 上为表添加 check 约束

alter table student add constraint ck_sage check(sage between 15 and 40);

    1. 在 SQL*PLUS 中修改 student 表,删除 ssex 列

alter table student drop column ssex;

    1. 在 SQL*PLUS 中修改 student 表,修改 sdept 列,列类型长度为 10

alter table student modify (sdept varchar2(10));

    1. 在 SQL*PLUS 中修改 course 表,删除在列上 cpno 上的外键约束

alter table course drop constraint fk_course;

    1. 在 SQL*PLUS 中修改 sc 表,在列 sno,cno 上为表添加外键约束

alter table sc add constraint fk_sc1 foreign key(sno) references student(sno) on delete cascade; alter table sc add constraint fk_sc2 foreign key(cno) references course(cno) on delete cascade;

  1. 删除表的方法
    1. 删除学生信息表

drop table student cascade constraint;

    1. 删除课程信息表

drop table course cascade constraint;

  1. 查看表结构的方法查看表结构使用 describe(简写为 desc) ,后面跟上表名即可查看到该表的表结构信息 desc student;

  •  
<think>嗯,用户想要查找关于MySQL数据库事务处理的第四次实验报告或操作指南。首先,我需要回忆一下MySQL事务处理的基本概念和相关命令,确保自己理解正确。事务处理通常包括ACID属性、事务的开启、提交、回滚等操作,还有隔离级别的设置。用户提到的实验可能涉及这些内容。 然后,用户的问题中提到需要参考站内引用,但提供的引用内容是关于查看数据库创建信息、显示表结构和数据表的,似乎和事务处理没有直接关联。不过,可能需要在回答中适当结合这些引用,比如在实验步骤中使用SHOW CREATE DATABASE或DESCRIBE命令来查看数据库或表的结构,但需要自然衔接,不能牵强。 接下来,用户需要的是实验报告的操作指南,所以应该结构清晰,分步骤说明。可能需要包括实验目的、环境准备、基础知识、实验步骤(如开启事务、执行操作、提交或回滚)、验证方法以及可能的问题分析。此,生成相关问题也是必须的,比如事务的ACID属性、隔离级别的影响、锁机制等。 需要确保使用正确的LaTeX格式,所有行内数学表达式用$...$,独立公式用$$...$$,但事务处理中可能数学公式不多,更多是代码和命令示例。同时,回答要使用中文,语法正确,并引用给定的引用内容,虽然引用内容与事务处理关系不大,但可能在实验的环境准备部分提到使用SHOW CREATE DATABASE或DESCRIBE命令,例如在创建数据库或查看表结构时引用[^1]或[^3]。 另,用户可能希望了解具体如何操作,比如使用START TRANSACTION,COMMIT,ROLLBACK等命令,以及如何设置隔离级别。实验步骤中需要包含这些命令的示例,并可能结合案例,比如银行转账,来演示事务的使用。同时,要提醒用户注意事务的持久性和一致性,确保数据操作的正确性。 最后,生成的相关问题需要围绕事务处理展开,比如ACID的理解、隔离级别的区别、死锁处理等,帮助用户深入理解。需要确保问题具有针对性,能够引导用户进一步学习和实验。 总结来说,回答需要结构清晰,分步骤指导实验操作,结合必要的代码示例和命令,合理引用提供的参考资料,同时生成相关的问题帮助巩固知识。需要检查LaTeX格式是否正确,避免语法错误,使用中文流畅表达。</think>### MySQL事务处理实验指南 #### 一、实验目的 1. 掌握事务的ACID特性(原子性、一致性、隔离性、持久性) 2. 熟悉事务控制语句:`START TRANSACTION`、`COMMIT`、`ROLLBACK` 3. 理解不同事务隔离级别的影响 #### 二、实验环境 - MySQL 8.0+版本 - 预建数据库及表(可使用`SHOW CREATE DATABASE 数据库名;`验证结构[^1]) - 示例数据表结构: ```sql CREATE TABLE account ( id INT PRIMARY KEY, balance DECIMAL(10,2) ); ``` #### 三、基础知识 1. **事务生命周期**: - 开启事务:`START TRANSACTION` - 提交事务:`COMMIT` - 回滚事务:`ROLLBACK` 2. **隔离级别**: - 查看:`SELECT @@transaction_isolation;` - 设置:`SET TRANSACTION ISOLATION LEVEL READ COMMITTED;` #### 四、实验步骤 1. **基础事务操作** ```sql -- 开启事务 START TRANSACTION; -- 执行转账操作 UPDATE account SET balance = balance - 100 WHERE id = 1; UPDATE account SET balance = balance + 100 WHERE id = 2; -- 验证数据变化(此时其他会话不可见) SELECT * FROM account WHERE id IN (1,2); -- 提交事务 COMMIT; ``` 使用`DESCRIBE account;`可验证表结构 2. **事务回滚实验** ```sql START TRANSACTION; DELETE FROM account WHERE id = 3; -- 发现误操作 ROLLBACK; ``` 3. **隔离级别验证** ```sql -- 会话A SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; START TRANSACTION; UPDATE account SET balance = 500 WHERE id = 1; -- 会话B SELECT balance FROM account WHERE id = 1; -- 可读取未提交数据 ``` #### 五、实验报告要求 1. 记录每个实验步骤的SQL语句及执行结果 2. 对比不同隔离级别下的数据可见性差异 3. 分析事务回滚对数据持久化的影响 #### 六、常见问题分析 1. **隐式提交**:`ALTER TABLE`等DDL语句会自动提交事务 2. **锁冲突**:长时间未提交的事务可能导致其他会话等待 3. **事务持久性**:提交后数据即使系统故障也不会丢失(需配合binlog实现)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值