javaWeb第一次作业

数据库作业16个题

现在有一教学管理系统,具体的关系模式如下:

Student (no, name, sex, birthday, class)

Teacher (no, name, sex, birthday, prof, depart)

Course (cno, cname, tno)

Score (no, cno, degree)

其中表中包含如下数据:

Course表:

 

Score表:

Student表:

 

Teacher表:

根据上面描述完成下面问题:

注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)

DDL

  1. 写出上述表的建表语句。
student表
create table student(
no int primary key,
name varchar(16),
sex char(6),
birthday varchar(32),
class int );
Teacher表
create table Teacher(
no int primary key auto_increment,
name varchar(16),
sex char(6),
birthday varchar(211),
prof varchar(21),
depart varchar(122));
course表
create table course(
cno int primary key auto_increment,
cname varchar(23),
tno int ));
score表
create table score(
no int primary key,
cno int ,
degree double(8,2));

命令:

DML

2,给出相应的INSERT语句来完成题中给出数据的插入。

    数据我放在我的C盘了    
       mysql> truncate table db1.teacher;
		Query OK, 0 rows affected (0.01 sec)

		mysql> select * from teacher;
		Empty set (0.01 sec)

		mysql> LOAD DATA  INFILE 'C:\db1_teacher.txt' INTO TABLE teacher;
		Query OK, 15 rows affected (0.01 sec)
      mysql> truncate table db1.score;
		Query OK, 0 rows affected (0.01 sec)

		mysql> select * from teacher;
		Empty set (0.01 sec)

		mysql> LOAD DATA  INFILE 'C:\db1_score.txt' INTO TABLE  score;
		Query OK, 15 rows affected (0.01 sec)
      mysql> truncate table db1.student;
		Query OK, 0 rows affected (0.01 sec)

		mysql> select * from student;
		Empty set (0.01 sec)

		mysql> LOAD DATA  INFILE 'C:\db1_teacher.txt' INTO TABLE student;
		Query OK, 15 rows affected (0.01 sec)
       mysql> truncate table db1.course;
		Query OK, 0 rows affected (0.01 sec)

		mysql> select * from course;
		Empty set (0.01 sec)

		mysql> LOAD DATA  INFILE 'C:\db1_teacher.txt' INTO TABLE course;
		Query OK, 15 rows affected (0.01 sec)

命令:

 

单表查询

3,以class降序输出student的所有记录(student表全部属性)

命令:

select * from student order by class desc;

 

 

 

 

 

 

 

 

 

 

4,列出教师所在的单位depart(不重复)。

命令:

Select distinct depart from teacher;

 

5,列出student表中所有记录的name、sex和class列

命令:

select name,sex,class from Student;

  1. 输出student中不姓王的同学的姓名。

命令:

Select name from student where name not like ‘王%’;

 

  1. 输出成绩为85或86或88或在60-80之间的记录(no,cno,degree)

命令:

select  no,cno,degree from score where degree in(85,86,88) or degree between 60 and 80;

 

  1. 输出班级为95001或性别为‘女’ 的同学(student表全部属性)

命令:

select * from student where sex=’女’or class=95001;

 

  1. 以cno升序、degree降序输出score的所有记录。(score表全部属性)

命令:

select * from score order by degree desc,cno;

 

  1. 输出男生人数及这些男生分布在多少个班级中     

命令:

select count(name),count(distinct class) from student where sex=’男’;

  1. 列出存在有85分以上成绩的课程编号。

命令:

select cno from score where degree>85;

 

  1. 输出95001班级的学生人数

命令:

select count(1) from student where class =95001;

 

  1. 输出‘3-105’号课程的平均分

命令:

select avg(degree) from Score where cno=’3-105’;

  1. 输出student中最大和最小的birthday日期值

命令:

select min(birthday),max(birthday) from student;

 

  1. 显示95001和95004班全体学生的全部个人信息(不包括选课)。(student表全部属性)

命令:

Select * from student where class in(95001,95004);

 

聚合查询

  1. 输出至少有5个同学选修的并以3开头的课程的课程号,课程平均分,课程最高分,课程最低分。

命令:

select cno,avg(degree),max(degree),min(degree)from Score inner Student on Score.no=Student.no group by cno having count(name)>5;

作业2:

import java.sql.*;

public class JDBCTest {
    /**
     * 1.使用DriverManager 进行加载驱动 Driver
     * 2.通过驱动的加载拿到连接对象 Connection
     * 3.通过connection对象获取到 Statement
     * 4.使用Statement对象 进行sql查询或更新
     * 5.查询执行完一定会拿到一个结果
     * 6.关闭资源()
     *
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1,加载驱动
       Class.forName("com.mysql.jdbc.Driver");
       //2,获取连接的对象
        Connection conn =      DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","admin","DEFdef123!");
        //3,获取statement对象
        Statement st =conn.createStatement();
        //4,进行查询,返回结果集
        ResultSet rs =st.executeQuery("select * from tb4");
        //5,对结果进行遍历
        while(rs.next()){
                 System.out.println(rs.getString("user_name")+":"+rs.getInt("id")+":"+rs.getInt("pid")+":"+rs.getString("age"));
        }
        //6,关闭连接
        rs.close();
               st.close();
              conn.close();

    }
}

JDBC封装
封装
public class JDBCUtils {
    private static String driver ="com.mysql.jdbc.Driver";
    private  static String url="jdbc:mysql://localhost:3306/db1";
    private static String username="admin";
    private static String password ="DEFdef123!";
    private static Connection conn;
    private static Statement ts;
    private static ResultSet rs;
    static {
    try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //封装连接
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,username,password);
    }
     //封装关闭
    public static void jdbcClose(ResultSet rs,Statement st ,Connection  conn) throws SQLException {
        rs.close();
        if(rs!=null){
            rs=null;
        }
        st.close();
        if(st!=null){
            st=null;
        }
        conn.close();
        if(conn!=null){
            conn=null;
        }

    }

}
查询封装
//查询封装
public static List  select(String sql,User user) throws SQLException {
    List<User> list =new ArrayList<>();
    conn= getConnection();
    ts =conn.createStatement();
    ResultSet rs =ts.executeQuery(sql);
    while(rs.next()){
        user.setId(rs.getInt("id"));
        user.setUsername(rs.getString("username"));
        user.setPassword(rs.getString("password"));
    }
    list.add(user);
    jdbcClose(rs,ts,conn);
    return list;

}

查询封装后的测试:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws SQLException{
       Scanner input =new Scanner(System.in);
       System.out.println("请输入用户名");
        String username =input.next();
        System.out.println("请输入密码");
        String password =input.next();
        String sql ="select * from user";
        User u =new User();
        ArrayList l =(ArrayList) JDBCUtils.select(sql,u);
        u=(User)l.get(0);
        System.out.println(u);
        if(username==u.getUsername()&&password==u.getPassword()){
            System.out.println("登录成功");
        }
        else{
            System.out.println("登录失败,请重新输入");
        }
        }

    }
User实体类
public class User {
    private String username;
    private int id;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", id=" + id +
                ", password='" + password + '\'' +
                '}';
    }
}

增删改封装
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class JDBCUtils {
    private static String driver ="com.mysql.jdbc.Driver";
    private  static String url="jdbc:mysql://localhost:3306/db1";
    private static String username="admin";
    private static String password ="DEFdef123!";
    private static Connection conn;
    private static Statement ts;
    private static ResultSet rs;
    static {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //封装连接
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,username,password);
    }
    //增增删改封装
   public static void update(String sql) throws SQLException {
        conn= getConnection();
        ts =conn.createStatement();
        int bSet =ts.executeUpdate(sql);
        System.out.println(bSet);
        jdbcClose(ts,conn);
    }

    private static void jdbcClose(Statement ts, Connection conn) throws SQLException {
                 ts.close();
                 if(ts!=null){
                     ts=null;
                 }
                 conn.close();
                 if(conn!=null){
                     conn=null;
                 }
    }

    //封装关闭
    public static void jdbcClose(ResultSet rs,Statement st ,Connection conn) throws SQLException {
        rs.close();
        if(rs!=null){
            rs=null;
        }
        st.close();
        if(st!=null){
            st=null;
        }
        conn.close();
        if(conn!=null){
            conn=null;
        }

    }

}
增删改测试:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Test {
    public static void main(String[] args) throws SQLException{
       String sql ="insert into tb4 values('wangxing4',6,7,'22')";
       JDBCUtils.update(sql);
    }
}
查询单元测试
  @Test
    public void select() throws SQLException {
        String sql ="select * from tb4";
        JDBCUtils.select(sql);
    }
}

查询单元测试
import org.junit.Test;

import java.sql.SQLException;

import static org.junit.Assert.*;

public class TestTest {

    @Test
    public void update() throws SQLException {
        String sql ="insert into  tb4 values('wangxing5',8,9,'34')";
        JDBCUtils.update(sql);
    }
}

 作业3:

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class JDBCUtils {
    private static String driver ="com.mysql.jdbc.Driver";
    private  static String url="jdbc:mysql://localhost:3306/db1";
    private static String username="admin";
    private static String password ="DEFdef123!";
    private static Connection conn;
    private static Statement ts;
    private static ResultSet rs;
    static {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //封装连接
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,username,password);
    }
    //查询增删改
    public static void update(String sql) throws SQLException {
        conn= getConnection();
        ts =conn.createStatement();
        int bSet =ts.executeUpdate(sql);
        System.out.println(bSet);
        jdbcClose(ts,conn);
    }
    //查询封装
    public static List  select(String sql,User user) throws SQLException {
        List<User> list =new ArrayList<>();
        conn= getConnection();
        ts =conn.createStatement();
        ResultSet rs =ts.executeQuery(sql);
        while(rs.next()){
            user.setId(rs.getInt("id"));
            user.setUsername(rs.getString("username"));
            user.setPassword(rs.getString("password"));
        }
        list.add(user);
        jdbcClose(rs,ts,conn);
        return list;

    }

    private static void jdbcClose(Statement ts, Connection conn) throws SQLException {
                 ts.close();
                 if(ts!=null){
                     ts=null;
                 }
                 conn.close();
                 if(conn!=null){
                     conn=null;
  

猜你喜欢

转载自blog.csdn.net/qq_37244548/article/details/107179300
今日推荐