zoukankan      html  css  js  c++  java
  • MySQL的课堂的实践

    MySQL的课堂的实践

    基本认识

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

    • 数据表

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

    • SQL语句

    • SQL操作界面

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

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

    SQL语句小拓展

    • SUM

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

    -MAX

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

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

    实践项目

    实际上,在代码行中同样可以把数据库给用上,课本上有一段统一的代码供我们来使用,根据要求,我们要连上名为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 = "
    Table: " + tableName + "
    " +
                            "=======================================================
    ";
                    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 + '
    ' +
                            "------------------------------------------------------------");
                }
            } 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();
            }
        }
    
    

    结果截图:

    • 实践项目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();
            }
        }
    
    

    结果截图:

    • 实践项目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();
            }
        }
    
    

    结果截图:

  • 相关阅读:
    PHP array_udiff_assoc() 函数
    PHP array_udiff() 函数
    app已损坏,打不开。你应该将它移到废纸篓
    [WC2013]糖果公园
    win10 uwp 绑定静态属性
    win10 uwp 修改Pivot Header 颜色
    win10 uwp 修改Pivot Header 颜色
    win10 uwp 修改Pivot Header 颜色
    win10 uwp 反射
    win10 uwp 反射
  • 原文地址:https://www.cnblogs.com/VersionP1/p/7007819.html
Copyright © 2011-2022 走看看