数据库实验报告

实验一:数据定义/数据操纵语言
[ 实验日期 ] 年 月 日
[ 实验目的 ]
通过实验熟悉ORACLE上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。
[ 实验内容 ]
(1)(建立数据库表) 建立教学数据库的四个数据库表,并按要求创建完整性约束。
–1.学生情况表

CREATE TABLE Student
(SNO CHAR(5) PRIMARY KEY,
SNAME VARCHAR2(12) NOT NULL,
SDEPT CHAR(2) NOT NULL,
SCLASS CHAR(2) NOT NULL,
SSEX CHAR(3),
SAGE NUMBER(2)
);
INSERT INTO STUDENT VALUES('96001','马小燕','CS','01','女',21);
INSERT INTO STUDENT VALUES('96002','黎明','CS','01','男',18);
INSERT INTO STUDENT VALUES('96003','刘东明','MA','01','男',18);
INSERT INTO STUDENT VALUES('96004','赵志勇','IS','02','男',20);
INSERT INTO STUDENT VALUES('97001','马蓉','MA','02','女',19);
INSERT INTO STUDENT VALUES('97002','李成功','CS','01','男',20);
INSERT INTO STUDENT VALUES('97003','黎明','IS','03','女',19);
INSERT INTO STUDENT VALUES('97004','李丽','CS','02','女',19);
INSERT INTO STUDENT VALUES('97005','司马志明','CS','02','男',18);

–2.课程名称表

CREATE TABLE Course (
CNO CHAR(3)PRIMARY KEY,
CNAME VARCHAR2(20),
CTIME NUMBER(3)
);
INSERT INTO Course VALUES ('001','数学分析',144);
INSERT INTO Course VALUES ('002','普通物理',144);
INSERT INTO Course VALUES ('003','微机原理',80);
INSERT INTO Course VALUES ('004','数据结构',72);
INSERT INTO Course VALUES ('005','操作系统',80);
INSERT INTO Course VALUES ('006','数据库原理',80);
INSERT INTO Course VALUES ('007','编译原理',60);
INSERT INTO Course VALUES ('008','程序设计',40);

–3.教师授课表

CREATE TABLE Teach
(TNAME VARCHAR2(12),
TSEX CHAR(3),
CNO CHAR(3),
TDATE DATE,
TDEPT CHAR(2),
PRIMARY KEY(TNAME,CNO,TDEPT),
CONSTRAINT FK_CNO FOREIGN KEY(CNO) REFERENCES Course(CNO)
);
INSERT INTO Teach VALUES('王成刚','男','004','1999.9.5','CS');
INSERT INTO Teach VALUES('李正科','男','003','1999.9.5','CS');
INSERT INTO Teach VALUES('严敏','女','001','1999.6.8','MA');
INSERT INTO Teach VALUES('赵高','男','004','1999.3.12','IS');
INSERT INTO Teach VALUES('李正科','男','003','2000.2.23','MA');
INSERT INTO Teach VALUES('刘玉兰','女','006','2000.2.23','CS');
INSERT INTO Teach VALUES('王成刚','男','004','2000.3.3.','IS');
INSERT INTO Teach VALUES('马跃','女','008','2000.6.9','CS');

–4.成绩表

CREATE TABLE Score(
SNO CHAR(5),
CNO CHAR(3),
SCORE NUMBER(4,1),
PRIMARY KEY(SNO,CNO),
CONSTRAINT FK_SNO FOREIGN KEY(SNO) REFERENCES Student(SNO),
CONSTRAINT FK_CNO2 FOREIGN KEY(CNO) REFERENCES Course(CNO)
);
INSERT INTO Score VALUES('96001','001',77.5);
INSERT INTO Score VALUES('96001','003',89);
INSERT INTO Score VALUES('96001','004',86);
INSERT INTO Score VALUES('96001','005',82);
INSERT INTO Score VALUES('96002','001',88);
INSERT INTO Score VALUES('96002','003',92.5);
INSERT INTO Score VALUES('96002','006',90);
INSERT INTO Score VALUES('96005','004',92);
INSERT INTO Score VALUES('96005','005',90);
INSERT INTO Score VALUES('96005','006',87);
INSERT INTO Score VALUES('96005','007',76);
INSERT INTO Score VALUES('96003','001',69);
INSERT INTO Score VALUES('97001','001',96);
INSERT INTO Score VALUES('97001','008',95);
INSERT INTO Score VALUES('96004','001',87);
INSERT INTO Score VALUES('96003','003',91);
INSERT INTO Score VALUES('97002','003',91);
INSERT INTO Score(SNO,CNO) VALUES('97002','004');
INSERT INTO Score VALUES('97002','006',92);
INSERT INTO Score VALUES('97004','005',90);
INSERT INTO Score VALUES('97004','006',85);

(2)(修改数据库表) 在Student表中增加Birthday(date) 字段。

ALTER TABLE student ADD Birthday date;

(3) (修改数据库表) 在Student表中删除Birthday(date) 字段。

ALTER TABLE student DROP COLUMN Birthday;

(4) (修改数据库表) 将Student表中把Sname 字段修改为Sname(VCHAR2,20)且为
非空。

ALTER TABLE Student MODIFY SNAME varchar2(20);

(5) (修改数据库表) 将Student表中把Sname 字段修改为Sname(VCHAR2,20)且为非空。

ALTE
  • 16
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是JDBC连接MySQL数据库实验报告实验目的: 本实验的主要目的是了解JDBC连接MySQL数据库的基本原理,掌握在Java程序中使用JDBC连接MySQL数据库的方法。 实验环境: - 操作系统:Windows 10 - 开发工具:Eclipse 2020-06 - 数据库:MySQL 8.0.21 实验步骤: 1. 下载并安装MySQL数据库,并创建一个名为test的数据库。 2. 在Eclipse中创建一个Java项目,并在项目中添加MySQL的JDBC驱动包。 3. 编写Java代码,建立与MySQL数据库的连接,并实现对数据库的增删改查操作。 下面是建立与MySQL数据库的连接的Java代码: ```java import java.sql.*; public class Main { public static void main(String[] args) { Connection conn = null; try { // 加载数据库驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 建立数据库连接 String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false"; String user = "root"; String password = "password"; conn = DriverManager.getConnection(url, user, password); // 输出连接成功消息 System.out.println("连接成功!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接 try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 下面是实现增删改查操作的Java代码: ```java import java.sql.*; public class Main { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载数据库驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 建立数据库连接 String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false"; String user = "root"; String password = "password"; conn = DriverManager.getConnection(url, user, password); // 创建Statement对象 stmt = conn.createStatement(); // 执行SQL语句 String sql = "insert into user(name, age, sex) values('张三', 20, '男')"; stmt.executeUpdate(sql); sql = "update user set age=21 where name='张三'"; stmt.executeUpdate(sql); sql = "delete from user where name='张三'"; stmt.executeUpdate(sql); sql = "select * from user"; rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String sex = rs.getString("sex"); System.out.println("id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭资源 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 实验结果: 运行Java程序后,可以看到在控制台输出了连接成功的消息,以及数据库中的所有记录,执行顺序为插入一条记录,更新一个记录,删除一条记录,查询所有记录。 实验结论: 通过本次实验,我们可以了解到JDBC连接MySQL数据库的方法,学习了如何使用Java程序对MySQL数据库进行增删改查操作。同时,我们还学习了如何在Eclipse中添加MySQL的JDBC驱动包,使程序能够正常连接MySQL数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏尧木子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值