利用MySQL创建employee表
时间: 2024-10-20 16:03:10 浏览: 63
当然,我们可以创建一个名为`employee`的表,通常用于存储员工信息,包括基本属性如ID、姓名、职位、工资、奖金等。下面是一个简单的示例创建语句:
```sql
CREATE TABLE employee (
id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,自增ID
name VARCHAR(100) NOT NULL, -- 姓名,不允许为空
gender ENUM('男', '女') NOT NULL, -- 性别,枚举类型,不允许为空
job_title VARCHAR(50), -- 职位
salary DECIMAL(10, 2), -- 工资,保留两位小数
bonus DECIMAL(10, 2), -- 奖金,保留两位小数
department_id INT,
hire_date DATE, -- 雇佣日期
education_level ENUM('高中', '大专', '本科', '硕士', '博士') -- 教育程度
);
```
这个表包含了基础员工信息,可以根据实际需求添加更多字段。`NOT NULL`意味着这些字段不能为空,`AUTO_INCREMENT`使得id自动递增。
相关问题
在MySQL数据库中新建数据库sparktest,再创建表employee,包含如下 表所示的两行数据。 (2)配置 Spark通过JDBC连接数据库MySQL,编程实现利用DataFrame 插入 如下表所示的两行数据到MySQL中,最后打印出age的最大值和age的 总和。
好的,我来为您详细介绍如何在MySQL中创建数据库和表,以及如何使用Spark通过JDBC连接MySQL并插入数据,最后计算age的最大值和总和。
1. 在MySQL中创建数据库和表:
首先,登录到MySQL命令行界面或使用图形化工具(如phpMyAdmin)执行以下SQL语句:
```sql
CREATE DATABASE sparktest;
USE sparktest;
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
INSERT INTO employee (id, name, age) VALUES
(1, 'Alice', 30),
(2, 'Bob', 25);
```
2. 配置Spark通过JDBC连接MySQL:
确保您的Spark环境中包含了MySQL JDBC驱动。然后,使用以下Scala代码(也可以转换为PySpark):
```scala
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
val spark = SparkSession.builder()
.appName("MySQL JDBC Example")
.config("spark.master", "local")
.getOrCreate()
import spark.implicits._
// 创建DataFrame
val newEmployees = Seq(
(3, "Charlie", 35),
(4, "David", 40)
).toDF("id", "name", "age")
// 写入MySQL
newEmployees.write
.format("jdbc")
.option("url", "jdbc:mysql://localhost:3306/sparktest")
.option("driver", "com.mysql.cj.jdbc.Driver")
.option("dbtable", "employee")
.option("user", "your_username")
.option("password", "your_password")
.mode("append")
.save()
// 读取数据
val df = spark.read
.format("jdbc")
.option("url", "jdbc:mysql://localhost:3306/sparktest")
.option("driver", "com.mysql.cj.jdbc.Driver")
.option("dbtable", "employee")
.option("user", "your_username")
.option("password", "your_password")
.load()
// 计算age的最大值和总和
val ageStats = df.agg(max("age"), sum("age")).first()
println(s"Max age: ${ageStats.getInt(0)}")
println(s"Sum of ages: ${ageStats.getLong(1)}")
spark.stop()
```
这段代码首先创建一个包含新员工数据的DataFrame,然后将其写入MySQL数据库。接着,它从数据库中读取整个employee表,并计算age列的最大值和总和,最后打印结果。
3.编程实现利用 DataFrame 读写 MySQL 的数据 (1)在 MySQL 数据库中新建数据库 sparktest,再创建表 employee,包含的两行数据。id name gender Age: 1 ,Alice, F, 22; 2, John, M,,25
下面是基于Python语言的DataFrame读写MySQL的实现代码:
```python
# 导入相关的库
import pandas as pd
from sqlalchemy import create_engine
# 创建连接MySQL的Engine对象
engine = create_engine('mysql+pymysql://username:password@localhost:3306/sparktest')
# 创建DataFrame
df = pd.DataFrame({'id': [1, 2], 'name': ['Alice', 'John'], 'gender': ['F', 'M'], 'Age': [22, 25]})
# 将DataFrame写入MySQL数据库中的employee表中
df.to_sql('employee', con=engine, if_exists='replace', index=False)
# 从MySQL数据库中读取数据到DataFrame
df = pd.read_sql('employee', con=engine)
# 打印读取到的数据
print(df)
```
需要注意的是,在代码中需要将`username`和`password`替换成自己的MySQL用户名和密码。同时,这里使用了`sqlalchemy`库来创建连接MySQL的Engine对象。在创建DataFrame时,我们可以直接传入一个字典来表示数据,然后使用`to_sql`方法将DataFrame写入MySQL数据库中的employee表中。最后,我们使用`read_sql`方法从MySQL数据库中读取数据到DataFrame中。
阅读全文
相关推荐

















