我目前正在尝试开发一个查询文本信息的网站。我已经拥有了我需要的所有文本文件,但我对数据库完全不熟悉,并且不知道从哪里开始。
我知道我需要解析文本文件并将它们插入到数据库中,但我在网上发现的大部分信息都指向某种SQL服务器在线。我如何解析文本文件并将它们插入到数据库中,作为回报,将它们移植到网站?一个开始的地方会很棒,我完全迷失了):
我在Java和Python方面有一定的经验,熟悉CSS / HTML。
答案 0 :(得分:0)
这是一项很重要的工作(大量数据)还是刚接触它?
如果您有大量数据,请考虑操纵您的文件来执行LOAD DATA INFILE,或者如果您真的有很多操作,请考虑Jasper/Talend ETL,但我猜这是过度的。
在阅读您的评论后,我已经起草了一些脚本。
使用mysql客户端或使用工作台登录
CREATE DATABASE IF NOT EXISTS `test`;
USE test;
试试这些
DROP TABLE IF EXISTS `test`.`user`;
CREATE TABLE `test`.`user` (
`userid` INT NOT NULL AUTO_INCREMENT ,
`firstname` VARCHAR(45) NOT NULL ,
`lastname` VARCHAR(45) NOT NULL ,
`jobdescription` TEXT NULL,
`childhooddescription` TEXT NULL,
PRIMARY KEY (`userid`)
);
DROP TABLE IF EXISTS `test`.`tempuser`;
CREATE TABLE `test`.`tempuser` (
`fullname` VARCHAR(90) NOT NULL,
PRIMARY KEY (`fullname`)
);
-- Examples you can use
-- INSERT INTO `test`.`user` (`firstname`,`lastname`) VALUES ("bob","jones");
-- INSERT INTO `test`.`tempuser` (`fullname`) VALUES ("JOHN DOE");
INSERT INTO `test`.`user`(
`firstname`,
`lastname`
)
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS firstname,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1) AS lastname
FROM
tempuser;
SELECT * FROM `user`;
DROP TABLE IF EXISTS `tempuser`;
然后这些
DROP TABLE IF EXISTS `test`.`tempjop`;
CREATE TABLE `test`.`tempjop` (
`fullname` VARCHAR(45) NOT NULL,
`description` TEXT NOT NULL
);
-- Example
-- INSERT INTO `test`.`tempjop` (`fullname`, `description`) VALUES ("JOHN DOE", "John is a programmer");
LOAD DATA INFILE 'C:/Temp/Job.txt' INTO TABLE tempjop
FIELDS
TERMINATED BY ':' OPTIONALLY ENCLOSED BY '"'
LINES
TERMINATED BY '\r\n';
SELECT
*
FROM
`tempjop`
;
UPDATE
`user` AS U,
`tempjop` AS J
SET
U.jobdescription = J.description
WHERE
J.fullname = CONCAT(CONCAT(U.firstname, ' '), U.lastname)
-- If you need first names only like 'MARY' uncomment this
-- OR J.fullname = U.firstname;
;
SELECT * FROM `user`;
DROP TABLE IF EXISTS `tempjop`;
我还没有对所有这些进行过测试,但希望它能指出你正确的方向。
祝你好运。答案 1 :(得分:0)
MySQL的full-text search是第一个尝试的东西。它可能足以满足您的需求。使用this example作为您可能需要的模板。
简而言之,您可能根本不解析文件。只需标识文档标题和文档正文,然后将它们作为两个单独的字段插入表格行。如果有格式或其他元内容,可能会在插入之前删除它们。