大数据——MySQL数据库操作实例

大数据——四种数据库(MySQL,HBase,MongoDB,Redis)操作实例

问题描述:

                                                                Student学生表

1. 根据上面给出的表格,利用MySQL5.7设计出student学生表格;

     a) 设计完后,用select语句输出所有的相关信息,并给出截图;

     b) 查询zhangsan的Computer成绩,并给出截图;

     c)修改lisi的Math成绩,改为95.给出截图.

2. 根据上面已经设计出的student表,用MySQL的JAVA客户端编程;

     a)添加数据:English:45 Math:89 Computer:100

      b)获取scofield的English成绩信息

问题解决:

1. 根据上面给出的表格,利用MySQL5.7设计出student学生表格;

设计表代码:(复制粘贴代码时,要删除注释部分,下同)

$ hadoop@jiantao-VirtualBox:~$ mysql -u root -p
(密码是:******)
进入mysql>之后,分别执行:
mysql> Create DATABASE stu; //创建数据库stu
mysql> USE stu;
mysql> create table student(  //创建表student
    name varchar(30) not null,
    English tinyint unsigned not null,
    Math tinyint unsigned not null,
    Computer tinyint unsigned not null
    );
mysql> insert into student values("zhangsan",69,86,77);  //向表中插入数据
mysql> insert into student values("lisi",55,100,88);

对应的Linux终端运行截图:

a) 设计完后,用select语句输出所有的相关信息,并给出截图;

mysql> select * from student;//显示表中的所有数据

对应的Linux终端运行截图:

b) 查询zhangsan的Computer成绩,并给出截图;

mysql> select name , Computer from student where name = "zhangsan"; //查询zhangsan的Computer成绩

对应的Linux终端运行截图:

c)修改lisi的Math成绩,改为95.给出截图.

mysql>  update student set Math=95 where name="lisi"; //修改lisi的Math成绩,改为95.

对应的Linux终端运行截图:

2. 根据上面已经设计出的student表,用MySQL的JAVA客户端编程;

(1)按Ubuntu操作系统桌面左上角的搜索图标,搜索到Eclipse,点击打开

(2)新建一个Java Project,随便起一个工程名,点击完成

a)添加数据:English:45 Math:89 Computer:100

(1)右键点击工程名,新建一个class,起名mysql_test

(2)将如下代码粘贴至mysql_test.java

import java.sql.*;
public class mysql_test {

	/**
	 * @param args
	 */
	//JDBC DRIVER and DB
	static final String  DRIVER="com.mysql.cj.jdbc.Driver";
	static final String DB="jdbc:mysql://localhost/stu?useUnicode=true&characterEncoding=utf-8&useSSL=false";
	//Database auth
	static final String USER="root";
	static final String PASSWD="123456";
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Connection conn=null;
		Statement stmt=null;
		try {
			//加载驱动程序
			Class.forName(DRIVER);
			System.out.println("Connecting to a selected database...");
			//打开一个连接
			conn=DriverManager.getConnection(DB, USER, PASSWD);
			//执行一个查询
			stmt=conn.createStatement();
			String sql="insert into student values('scofield',45,89,100)";
			stmt.executeUpdate(sql);
			System.out.println("Inserting records into the table successfully!");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally
		{
			if(stmt!=null)
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if(conn!=null)
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}
}

(3)将JDBC驱动mysql-connector-java-6.0.5-bin.jar导入到工程中去,操作方法:工程名(右键)--buildpath--configure build path--add external jars(在Libraries栏目下),添加mysql-connector-java-6.0.5-bin.jar(如果没有jar包,可下载:https://download.csdn.net/download/weixin_43042683/12439546),点击确定。

(4)运行此mysql_test.java,在Linux终端通过select语句查询名为scofield的学生记录是否已经被添加?

java运行结果:

Nosql检验结果:scofield的学生记录已经被添加

b)获取scofield的English成绩信息

(1)为了获取scofield的English成绩信息,请将如下代码添加至新建的mysql_query.java文件中,调试运行,给出结果截图。

import java.sql.*;
public class mysql_query {

	//JDBC DRIVER and DB
	static final String  DRIVER="com.mysql.cj.jdbc.Driver";
	static final String DB="jdbc:mysql://localhost/stu?useUnicode=true&characterEncoding=utf-8&useSSL=false";
	//Database auth
	static final String USER="root";
	static final String PASSWD="123456";
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		try {
			//加载驱动程序
			Class.forName(DRIVER);
			System.out.println("Connecting to a selected database...");
			//打开一个连接
			conn=DriverManager.getConnection(DB, USER, PASSWD);
			//执行一个查询
			stmt=conn.createStatement();
			String sql="select name,English from student where name='scofield' ";
			//获得结果集
			rs=stmt.executeQuery(sql);
			System.out.println("name"+"\t\t"+"English");
			while(rs.next())
			{
				System.out.print(rs.getString(1)+"\t\t");
				System.out.println(rs.getInt(2));
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally
		{
			if(rs!=null)
				try {
					rs.close();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			if(stmt!=null)
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if(conn!=null)
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}
}

 Java运行结果如下:

 

  • 12
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Sakila是MySQL官方提供的一个样例数据库,用于演示和练习MySQL数据库的使用。数据库包含了一个虚构的DVD租赁店的数据,其包括客户、电影、租赁记录等等。 Sakila数据库包含16张,包括: 1. `actor`:演员,包含演员的ID、名字和最后更新时间。 2. `address`:地址,包含地址的ID、地址、邮编、电话和最后更新时间。 3. `category`:电影类别,包含类别的ID和名称以及最后更新时间。 4. `city`:城市,包含城市的ID、城市名称、国家ID和最后更新时间。 5. `country`:国家,包含国家的ID、国家名称和最后更新时间。 6. `customer`:客户,包含客户的ID、姓名、地址、邮编、电话、积分、注释和最后更新时间。 7. `film`:电影,包含电影的ID、标题、描述、发行年份、语言ID、原始语言ID、租金、长度、评级和最后更新时间。 8. `film_actor`:电影演员,包含电影ID和演员ID。 9. `film_category`:电影类别,包含电影ID和类别ID。 10. `inventory`:库存,包含DVD的ID、电影ID和最后更新时间。 11. `language`:语言,包含语言的ID、名称和最后更新时间。 12. `payment`:支付,包含支付的ID、客户ID、租赁ID、支付时间、租赁时长和支付金额。 13. `rental`:租赁,包含租赁的ID、客户ID、电影ID、租赁时间和最后更新时间。 14. `staff`:员工,包含员工的ID、姓名、地址、邮编、电话、邮箱、店铺ID、用户名、密码和最后更新时间。 15. `store`:店铺,包含店铺的ID、地址、邮编、电话和最后更新时间。 16. `sales_by_film_category`:按电影类别统计销售额的视图,包含类别名称和销售额。 使用Sakila数据库可以练习SQL查询、联结、聚合、子查询等等操作,是学习MySQL的很好的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值