利用关系数据库MySQL、非关系数据库HBase完成如下操作: 1、创建病人信息表(patient), patient表中包含病人ID号、姓名、年龄、性别、病房号、所患疾病六个字段; 2
时间: 2024-11-22 18:35:40 浏览: 4
在MySQL(关系型数据库)中创建病人信息表(patient)的SQL语句会是这样的:
```sql
CREATE TABLE patient (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
gender ENUM('Male', 'Female'),
ward_number INT,
disease VARCHAR(255)
);
```
在这个例子中,`id`字段通常设置为主键,用于唯一标识每个病人。`name`、`age`和`gender`是字符串类型,`ward_number`是整数类型,用于表示病房号。`disease`也是一个字符串字段,用来存储病人的疾病名称。
而在HBase(非关系型数据库)中,创建表的语法有所不同,因为HBase更侧重于列族和行键。假设我们同样使用`id`作为行键,那么可以这样定义:
```java
// 使用HBase Java API
Configuration conf = HBaseConfiguration.create();
HTableDescriptor desc = new HTableDescriptor("patient");
(desc.addFamily(new HColumnDescriptor("info"))) // 创建一个名为"info"的列族
.setMaxVersions(1) // 设置最多版本数(默认无限)
.setCompactionPolicy(new SizeBasedCompactionPolicy()); // 设置合并策略
HTable table = new HTable(conf, desc.getName());
table.create(); // 如果不存在则创建表
// 插入数据
Put put = new Put(Bytes.toBytes(patientId));
put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes(name));
... (其他字段同理)
table.put(put); // 将数据写入表
```
阅读全文