• 大小: 46KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 数据库
  • 标签:

资源简介

数据库大作业,设计一个可以识别并处理SQL语句的数据库程序

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 

#include “../include/client.h“
#include “./tokenize0.h“
#include “./split_csv0.h“

//#include 
//using namespace std;

map > table2name;//由表名称对应列名称
map > table2type;//由表名称对应列类型
map > table2pkey;//由表名称对应主码名称
map column2table;//由列名称对应表名称
mapcolumn2index;//由列名称对应表中的列索引号
map > >table2info;//表名称对应表的内容,使快速查找
map > >table2info_temp;
map >table2filename;//表名称对应表文件名称
map file2line;//表文件名对应文件内行数
vector result;//结果寄存
map output_line;//行号
vector out_line;//行号

typedef struct {
int col_index;
int op_num;
string comp;
}Cond;

void doInsert(const string & insert_table_nameconst vector & insert_table_values);
void doSelect(const vector& output_table const vector& output_index const vector& table const vector& condition);
void doJoin(const vector& output_table  const vector& output_index  const vector& table const vector >& join_table_compareconst vector >&join_index_compareint depth);
//void show ( const string & table_name );
void doJoin0(const vector& output const vector& table const int & depthconst int & num);

void done(const vector& output_table const vector& output_index  const vector&table const int & depth)
//递归对每一的表做查找连接
{
if(table2info_temp.size() == 0) {
int size = table2info[table[depth]].size();//表示当前表的行数
if ( depth == table.size()-1 ){
for(int i=0; i output_line[table[depth]] = i;
string str = table2info[output_table[0]][output_line[output_table[0]]][output_index[0]];
for( int j=1 ; j str += ““ + table2info[output_table[j]][output_line[output_table[j]]][output_index[j]];
str[str.size()] = ‘\0‘;
result.push_back(str);
}
return;
}
for(int i=0 ; i output_line[table[depth]] = i;
done(output_tableoutput_indextabledepth+1);
}
}
else
{
int size = table2info_temp[table[depth]].size();//表示当前表的行数
if ( depth == table.size()-1 ){
for(int i=0; i output_line[table[depth]] = i;
string str = table2info_temp[output_table[0]][output_line[output_table[0]]][output_index[0]];
for( int j=1 ; j str += ““ + table2info_temp[output_table[j]][output_line[output_table[j]]][output_index[j]];
str[str.size()] = ‘\0‘;
result.push_back(str);
}
return;
}
for(int i=0 ; i output_line[table[depth]] = i;
done(output_tableoutput_indextabledepth+1);
}
}

}

void create(const string& table const vector& column
const ve

评论

共有 条评论