0
点赞
收藏
分享

微信扫一扫

Day3 JDBC_侯一鸣

一枚路过的程序猿 2022-01-26 阅读 52

work01

问题:利用jdbc来实现作业

有如下一张表

create table student(
id int,
name varchar(20),
chinese float,
english float,
math float
);

  1. 请添加2列信息,出生日期,籍贯。
  2. 请修改语文成绩的数据类型为int型.
  3. 请将各科成绩修改为默认值为0
  4. 请在里面插入10名学生数据。(名字请以汉字输入)
  5. 请分别找出单科成绩最高的学生名单。语文最高的,英语最高的,数学最高的。
  6. 请找出总成绩最高的学生。

10.假设10名同学中有同姓的,如王,请找出姓王同学的信息.
11.请找出各科不及格学生的信息。
12.请找出有任何一科不及格学生的名称
13.请找出两科成绩在90分以上的学生名称。
14.请找出没有一科挂科的学生名称。

代码

package db.day03;

import com.mysql.jdbc.Driver;

import java.sql.*;

public class work01 {
    public static void main(String[] args) throws SQLException {
        DriverManager.registerDriver(new Driver());
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/students?characterEncoding=utf-8", "root", "123456");
        Statement statement = connection.createStatement();
        task2(statement);
        task3(statement);
        task4(statement);
        task5(statement);
        task6(statement);
        task7(statement);
        task10(statement);
        task11(statement);
        task12(statement);
        task13(statement);
        task14(statement);
        connection.close();
        statement.close();


    }

    // 2. 请添加2列信息,出生日期,籍贯。
    public static void task2(Statement statement) throws SQLException {
        int i = statement.executeUpdate("alter table student add birthday date ,add address VARCHAR(20)");
    }

    // 3,请修改语文成绩的数据类型为int型.
    public static void task3(Statement statement) throws SQLException {
        int i = statement.executeUpdate("alter table student modify chinese int");
    }

    // 4. 请将各科成绩修改为默认值为0
    public static void task4(Statement statement) throws SQLException {
        int i2 = statement.executeUpdate("alter table student modify chinese int default 0");
        int i3 = statement.executeUpdate("alter table student modify english int default 0");
        int i4 = statement.executeUpdate("alter table student modify math int default 0");
    }

    // 5. 请在里面插入10名学生数据。(名字请以汉字输入)
    public static void task5(Statement statement) throws SQLException {
        int i5 = statement.executeUpdate("insert into student values(1,'张三1',80,90,90,'2000-03-22','武汉市')");
        int i6 = statement.executeUpdate("insert into student values(2,'张三2',81,92,92,'2000-03-22','河南省') ");
        int i7 = statement.executeUpdate("insert into student values(3,'张三3',82,70,59,'2000-03-22','北京市')");
        int i8 = statement.executeUpdate("insert into student values(4,'王三4',78,85,91,'2000-03-22','天津市')");
        int i9 = statement.executeUpdate("insert into student values(5,'张三5',81,84,89,'2000-03-22','安阳市') ");
        int i10 = statement.executeUpdate("insert into student values(6,'张三6',99,95,96,'2000-03-22','焦作市') ");
        int i11 = statement.executeUpdate("insert into student values(7,'张三7',59,56,40,'2000-03-22','武汉市')");
        int i12 = statement.executeUpdate("insert into student values(8,'张三8',100,88,99,'2000-03-22','湖北省')");
        int i13 = statement.executeUpdate("insert into student values(9,'王三9',59,97,90,'2000-03-22','武汉市') ");
        int i14 = statement.executeUpdate("insert into student values(10,'张三10',80,90,90,'2000-03-22','武汉市') ");
    }

    // 6. 请分别找出单科成绩最高的学生名单。语文最高的,英语最高的,数学最高的。
    public static void task6(Statement statement) throws SQLException {
        ResultSet resultSet = statement.executeQuery("select name from student where chinese = (select max(chinese) from student)");
        resultSet.next();
        String name = resultSet.getString("name");
        System.out.println("语文成绩最高的同学为:" + name);
        resultSet = statement.executeQuery("select name from student where math = (select max(math) from student)");
        resultSet.next();
        name = resultSet.getString("name");
        System.out.println("数学成绩最高的同学为:" + name);
        resultSet = statement.executeQuery("select name from student where english = (select max(english) from student)");
        resultSet.next();
        name = resultSet.getString("name");
        System.out.println("英语成绩最高的同学为:" + name);
        System.out.println();
    }

    // 7. 请找出总成绩最高的学生。
    public static void task7(Statement statement) throws SQLException {
        ResultSet resultSet = statement.executeQuery("select name from student where chinese + math + english = (select max(chinese + math + english) from student)");
        resultSet.next();
        String name = resultSet.getString("name");
        System.out.println("总成绩最高的同学为:" + name);
        System.out.println();
    }

    // 10.假设10名同学中有同姓的,如王,请找出姓王同学的信息.
    public static void task10(Statement statement) throws SQLException {
        System.out.println("找出姓王同学的信息");
        ResultSet resultSet = statement.executeQuery("select * from student where name like '%王%'");
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int chinese = resultSet.getInt("chinese");
            float math = resultSet.getFloat("math");
            float english = resultSet.getFloat("english");
            Date birthday = resultSet.getDate("birthday");
            String address = resultSet.getString("address");
            System.out.println(id + " " + name + " " + chinese + " " + math + " " + english + " " + birthday + " " + address);
        }
        System.out.println();
    }

    // 11.请找出各科不及格学生的信息。
    public static void task11(Statement statement) throws SQLException {
        System.out.println("各科不及格学生的信息");
        ResultSet resultSet = statement.executeQuery("select * from student where chinese <= 60 and english <= 60 and math <= 60");
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int chinese = resultSet.getInt("chinese");
            float math = resultSet.getFloat("math");
            float english = resultSet.getFloat("english");
            Date birthday = resultSet.getDate("birthday");
            String address = resultSet.getString("address");
            System.out.println(id + " " + name + " " + chinese + " " + math + " " + english + " " + birthday + " " + address);
            System.out.println();
        }
    }

    // 12.请找出有任何一科不及格学生的名称
    public static void task12(Statement statement) throws SQLException {
        System.out.println("有任何一科不及格学生的名称");
        ResultSet resultSet = statement.executeQuery("select * from student where chinese <= 60 or english <= 60 or math <= 60");
        while (resultSet.next()) {
            String name = resultSet.getString("name");
            System.out.println(name);
        }
        System.out.println();
    }

    // 13.请找出两科成绩在90分以上的学生名称。
    public static void task13(Statement statement) throws SQLException {
        System.out.println("两科成绩在90分以上的学生名称");
        ResultSet resultSet = statement.executeQuery("select * from student where (chinese >= 90 and math >= 90) or (chinese >= 90 and english >= 90) or(english >= 90 and math >= 90)");
        while (resultSet.next()) {
            String name = resultSet.getString("name");
            System.out.println(name);

        }
        System.out.println();
    }

    // 14.请找出没有一科挂科的学生名称。
    public static void task14(Statement statement) throws SQLException {
        System.out.println("没有一科挂科的学生名称");
        ResultSet resultSet = statement.executeQuery("select * from student where  chinese >= 60 and english >= 60 and math >= 60");
        while (resultSet.next()) {
            String name = resultSet.getString("name");
            System.out.println(name);
        }
        System.out.println();
    }

}

结果

image-20220126195713402

举报

相关推荐

Day11_file&流_侯一鸣

Day3

Python Day3

QT DAY3

Qt(day3)

Leetcode Day3

PAT DAY3

JS DAY3

0 条评论