work01
问题:利用jdbc来实现作业
有如下一张表
create table student(
id int,
name varchar(20),
chinese float,
english float,
math float
);
- 请添加2列信息,出生日期,籍贯。
- 请修改语文成绩的数据类型为int型.
- 请将各科成绩修改为默认值为0
- 请在里面插入10名学生数据。(名字请以汉字输入)
- 请分别找出单科成绩最高的学生名单。语文最高的,英语最高的,数学最高的。
- 请找出总成绩最高的学生。
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();
}
}