mysql实践教程 教案_MySQL的课堂的实践

MySQL的课堂的实践

基本认识

如今的数据库有几种是主流,分别是:Oracle Database、Informix、SQL Server、PostgreSQL、MySQL等,我们现在学习的MySQL就算是其中之一。MySQL的功能强大,也是我们日后专业课所要面对的重点。在课堂实践上,我们学习了数据库的基础知识,包括数据库的界面介绍以及一些基本操作。

数据表

c26be3334c6578e8fafb13a97d29b76a.png

每一列是一个域,每一行是一个记录。在用数据库语言操作的时候,域和记录是很重要的两个部分。

SQL语句

SQL操作界面

b8e86c084d6dfdc24b93bc0a5d0ad640.png

若我要让数据表只查询语言(Language)和百分比(Percentage),我就可以通过修改SELECT后面的星号,改为"'Language','Percentage'"即可。

b0fd43701ad46b9fbe53cae1f00c2691.png

866fcd9c90138d02e4d05170af399b92.png

若我要看百分比(Percentage)大于5的,我可以通过修改后面WHERE的参数来达到目的

2020978fc9b279657c7c063a83e7fa12.png

4e90db9a071243632e8791e745e8c6e8.png

SQL语句小拓展

SUM

我想知道该表格中说英语的人的总数,我可以通过SUM来得到总数,再在后面的WHERE中限定语言为英语就好。

93282f1ae789afb171e57971383ba3c4.png

8fc65e0aae633c182360812d80b65c1a.png

-MAX

我想知道表格中说英语最多的国家以及它的百分比,就可以用到MAX来获取最大的单位。

SELECT `CountryCode`,`Language`,MAX(`Percentage`) FROM `countrylanguage` WHERE Language = 'English'

cd7c6991efa27ac817b10d8b4c2c546e.png

实践项目

实际上,在代码行中同样可以把数据库给用上,课本上有一段统一的代码供我们来使用,根据要求,我们要连上名为world的数据库来进行操作,经过调整,代码大体为:

//*******************************************************************

// DatabaseModfication.java Java Foundations

//

// Demonstrates interaction between a Java program and a database.

//*******************************************************************

import java.sql.*;

public class DatabaseModification

{

//-----------------------------------------------------------------

// Carries out various CRUD operations after establishing the

// database connection.

//-----------------------------------------------------------------

public static void main (String args[])

{

Connection conn = null;

try

{

// Loads the class object for the mysql driver into the DriverManager.

Class.forName("com.mysql.jdbc.Driver");

// Attempt to establish a connection to the specified database via the

// DriverManager

conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/" +

"world?user=root&password=");

// Check the connection

if (conn != null)

{

System.out.println("We have connected to our database!");

// Create the table and show the table structure

Statement stmt = conn.createStatement();

// Insert the data into the database and show the values in the table

Statement stmt2 = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,

ResultSet.CONCUR_UPDATABLE);

DatabaseModification.showValues(conn);

// Close the database

conn.close();

}

} catch (SQLException ex) {

System.out.println("SQLException: " + ex.getMessage());

ex.printStackTrace();

} catch (Exception ex) {

System.out.println("Exception: " + ex.getMessage());

ex.printStackTrace();

}

}

//-----------------------------------------------------------------

// Obtains and displays a ResultSet from the Student table.

//-----------------------------------------------------------------

public static void showValues(Connection conn)

{

try

{

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("SELECT * FROM 表名 WHERE 1");

DatabaseModification.showResults("表名", rset);

} catch (SQLException ex) {

System.out.println("SQLException: " + ex.getMessage());

ex.printStackTrace();

}

}

//-----------------------------------------------------------------

// Displays the structure of the Student table.

//-----------------------------------------------------------------

//-----------------------------------------------------------------

// Displays the contents of the specified ResultSet.

//-----------------------------------------------------------------

public static void showResults(String tableName, ResultSet rSet)

{

try

{

ResultSetMetaData rsmd = rSet.getMetaData();

int numColumns = rsmd.getColumnCount();

String resultString = null;

if (numColumns > 0)

{

resultString = "\nTable: " + tableName + "\n" +

"=======================================================\n";

for (int colNum = 1; colNum <= numColumns; colNum++)

resultString += rsmd.getColumnLabel(colNum) + " ";

}

System.out.println(resultString);

System.out.println(

"=======================================================");

while (rSet.next())

{

resultString = "";

for (int colNum = 1; colNum <= numColumns; colNum++)

{

String column = rSet.getString(colNum);

if (column != null)

resultString += column + " ";

}

System.out.println(resultString + '\n' +

"------------------------------------------------------------");

}

} catch (SQLException ex) {

System.out.println("SQLException: " + ex.getMessage());

ex.printStackTrace();

}

}

}

其中重要的部分就是:

public static void showValues(Connection conn)

{

try

{

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("SELECT * FROM 表名 WHERE 1");

DatabaseModification.showResults("表名", rset);

} catch (SQLException ex) {

System.out.println("SQLException: " + ex.getMessage());

ex.printStackTrace();

}

}

修改这一部分关系到你看到的结果。项目的操作也都在这里进行。

项目1:查询world数据库,获得人口超过500万的所有城市的列表。

public static void showValues(Connection conn)

{

try

{

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("SELECT * FROM city WHERE Population > 5000000");

DatabaseModification.showResults("city", rset);

} catch (SQLException ex) {

System.out.println("SQLException: " + ex.getMessage());

ex.printStackTrace();

}

}

结果截图:

94aa57345debb2ac6c15cd7b64f06d52.png

实践项目2:查询world数据库,获得New Jersey州所有城市的总人口数。

public static void showValues(Connection conn)

{

try

{

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("SELECT SUM(Population) FROM city WHERE District = 'New Jersey'");

DatabaseModification.showResults("city", rset);

} catch (SQLException ex) {

System.out.println("SQLException: " + ex.getMessage());

ex.printStackTrace();

}

}

结果截图:

4ee362a5da150d3e9a4ae32fef7c1bd9.png

实践项目3:查询world数据库,查询哪个国家的平均寿命最长

public static void showValues(Connection conn)

{

try

{

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("SELECT MAX(LifeExpectancy) FROM country WHERE 1");

DatabaseModification.showResults("country", rset);

} catch (SQLException ex) {

System.out.println("SQLException: " + ex.getMessage());

ex.printStackTrace();

}

}

结果截图:

127c60258431341e7eed56e541892016.png


版权声明:本文为weixin_42394054原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。