实验一:熟悉MySQL和HDFS操作(全过程)

第一步:创建一个数据库school。(因为我已经创建过了,所以显示databases exists)。

create database school;

show databases;

下面这个就是创建好了。

第二步:插入数据

把下面的代码复制到mysql里面。

-- 使用school数据库
USE school;

-- 创建Student表
CREATE TABLE IF NOT EXISTS Student (
    Sno VARCHAR(10) NOT NULL,
    Sname VARCHAR(50) NOT NULL,
    Ssex CHAR(1) NOT NULL,
    Sage INT NOT NULL,
    Sdept VARCHAR(50) NOT NULL,
    PRIMARY KEY (Sno)
);

-- 创建Course表
CREATE TABLE IF NOT EXISTS Course (
    Cno VARCHAR(10) NOT NULL,
    Cname VARCHAR(50) NOT NULL,
    Credit INT NOT NULL,
    PRIMARY KEY (Cno)
);

-- 创建SC表
CREATE TABLE IF NOT EXISTS SC (
    Sno VARCHAR(10) NOT NULL,
    Cno VARCHAR(10) NOT NULL,
    Grade INT,
    PRIMARY KEY (Sno, Cno),
    FOREIGN KEY (Sno) REFERENCES Student(Sno),
    FOREIGN KEY (Cno) REFERENCES Course(Cno)
);

-- 插入Student表数据
INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('10001', 'Jack', '男', 21, 'CS');
INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('10002', 'Rose', '女', 20, 'SE');
INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('10003', 'Michael', '男', 21, 'IS');
INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('10004', 'Hepburn', '女', 19, 'CS');
INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('10005', 'Lisa', '女', 20, 'SE');

-- 插入Course表数据
INSERT INTO Course (Cno, Cname, Credit) VALUES ('00001', 'DataBase', 4);
INSERT INTO Course (Cno, Cname, Credit) VALUES ('00002', 'DataStructure', 4);
INSERT INTO Course (Cno, Cname, Credit) VALUES ('00003', 'Algorithms', 3);
INSERT INTO Course (Cno, Cname, Credit) VALUES ('00004', 'OperatingSystems', 5);
INSERT INTO Course (Cno, Cname, Credit) VALUES ('00005', 'ComputerNetwork', 4);

-- 插入SC表数据
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10002', '00003', 86);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10001', '00002', 90);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10002', '00004', 70);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10003', '00001', 85);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10004', '00002', 77);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10005', '00003', 88);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10001', '00005', 91);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10002', '00002', 79);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10003', '00002', 83);
INSERT INTO SC (Sno, Cno, Grade) VALUES ('10004', '00003', 67);

第三步:操作。

在pycharm里面运行下面的代码即可。

import pymysql

connection = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='314159',
    db='school',
    charset='utf8'
)

try:
    with connection.cursor() as cursor:
        # (1) 查询学号为“10002”的学生的所有成绩
        cursor.execute("""
        SELECT Student.Sno, Student.Sname, Student.Sdept, Course.Cno, Course.Cname, SC.Grade
        FROM Student
        JOIN SC ON Student.Sno = SC.Sno
        JOIN Course ON SC.Cno = Course.Cno
        WHERE Student.Sno = '10002';
        """)
        results = cursor.fetchall()
        print("学号为10002的学生的所有成绩:")
        for row in results:
            print(row)

        # (2) 查询每位学生成绩大于85的课程
        cursor.execute("""
        SELECT Student.Sno, Student.Sname, Student.Sdept, Course.Cno, Course.Cname, SC.Grade
        FROM Student
        JOIN SC ON Student.Sno = SC.Sno
        JOIN Course ON SC.Cno = Course.Cno
        WHERE SC.Grade > 85;
        """)
        results = cursor.fetchall()
        print("\n每位学生成绩大于85的课程:")
        for row in results:
            print(row)

        # (3) 更新课程号为“00001”、课程名为“DataBase”的课程的学分
        cursor.execute("""
        UPDATE Course
        SET Credit = 5
        WHERE Cno = '00001' AND Cname = 'DataBase';
        """)
        connection.commit()
        print("\n课程DataBase的学分已更新为5学分。")

        # (4) 插入学号为“10005”的学生的OperatingSystems(00004)成绩为73分的记录
        cursor.execute("""
        INSERT INTO SC (Sno, Cno, Grade)
        VALUES ('10005', '00004', 73);
        """)
        connection.commit()
        print("\n学号为10005的学生的OperatingSystems课程成绩已添加。")

        # (5) 删除学号为“10003”的学生记录
        cursor.execute("DELETE FROM SC WHERE Sno = '10003';")
        cursor.execute("DELETE FROM Student WHERE Sno = '10003';")
        connection.commit()
        print("\n学号为10003的学生记录已删除。")

finally:
    connection.close()

运行结果如下:

第四步:操作。

Hadoop是一个分布式系统基础架构, 是一个存储系统+计算框架的软件框架。主要解决海量数据存储与计算的问题。

(1)使用自己的用户名登录Windows系统,启动Hadoop,为当前登录的Windows用户在HDFS中创建用户目录“/user/[用户名]”;

(2)接着在HDFS的目录“/user/[用户名]”下,创建test目录;

(3)将Windows系统本地的一个文件上传到HDFS的test目录中,并查看上传后的文件内容;

(4)将HDFS目录test复制到Windows本地文件系统的某个目录下。

在sbin目录下启动hadoop

start-dfs.cmd

在bin目录下

fs -mkdir hdfs://localhost:9000/user/
fs -mkdir hdfs://localhost:9000/user/【用户名】
hadoop fs -mkdir hdfs://localhost:9000/user/【用户名】/test

创建一个文件test.txt,输入一行语句“hello”,

> hadoop fs -put 【文件位置】 hdfs://localhost:9000/user/【用户名】/test
> hadoop fs -cat hdfs://localhost:9000/user/【用户名】/test/test.txt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值