数据库练习

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

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

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

Course (cno, cname, tno)

Score (no, cno, degree)

一个学生对应许多课程。一个课程对应多个学生

一个老师对应一个课程 一个课程对应一个老师

一个学生对应一个分数 一个分数对应多个学生

其中表中包含如下数据:

Course表:

 

数据库练习_第1张图片数据库练习_第2张图片

Score表:

数据库练习_第3张图片数据库练习_第4张图片

 

Student表:

 

数据库练习_第5张图片

Teacher表:

数据库练习_第6张图片

 

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

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

DDL

  1. 写出上述表的建表语句。

数据库练习_第7张图片

命令:

DML

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

 

单表查询

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

数据库练习_第8张图片

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

数据库练习_第9张图片

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

数据库练习_第10张图片

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

数据库练习_第11张图片

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

数据库练习_第12张图片

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

数据库练习_第13张图片

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

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

数据库练习_第14张图片

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

数据库练习_第15张图片

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

数据库练习_第16张图片

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

数据库练习_第17张图片

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

 

数据库练习_第18张图片

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

数据库练习_第19张图片

封装数据库类

package mthod;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class Method {
	private String driver = "com.mysql.jdbc.Driver";
	private static String url =  "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8";
	private String username = "root";
	private String password = "root";
	private Connection conn = null;
	private Statement st = null;
	private ResultSet rs = null;
	//加载驱动 在程序启动被加且执行
	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		}catch(ClassNotFoundException e) {
			e.printStackTrace();
		}	
	}
	
	public static Connection getConnection() throws SQLException {
		return (Connection) DriverManager.getConnection(url,"root","root");
	}
	
	public static void jdbcClose(Connection conn, Statement st, ResultSet rs) throws SQLException {
		try {
			rs.close();
			if (rs != null) {
				rs = null;
			}
			
		}catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				st.close();
				if (st != null) {
					st = null;
				}
			}catch (SQLException e) {
				e.printStackTrace();
			}finally {
				try {
					conn.close();
					if (conn != null) {
						conn = null;						
					}
				}catch(SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		
	}
	
}
package mthod;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import mthod.Method;
public class test {

	public static void main(String[] args) throws SQLException {
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		
		try {
			conn = Method.getConnection();
			st = (Statement) conn.createStatement();
			
			int bRet = st.executeUpdate("insert into tb1 (id,name) values (20,'woqu')");
			if (bRet == 1) {
				System.out.println("success");
			}else {
				System.out.println("failed");
			}
			rs = st.executeQuery("select * from tb1");
			while (rs.next()) {
				System.out.println(rs.getString(1) + ":" + rs.getString(2));
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			Method.jdbcClose(conn, st, rs);
		}
		

	}

}

 

你可能感兴趣的:(数据库练习)