解析连接到python脚本的MySQL数据库
我使用pythonmysqldb包创建了这个python脚本,并试图从文件中打印一个请求的经文经文。(警告:链接的解析连接到python脚本的MySQL数据库,python,mysql,mysql-python,Python,Mysql,Mysql Python,我使用pythonmysqldb包创建了这个python脚本,并试图从文件中打印一个请求的经文经文。(警告:链接的.sql文件很大,我对下面的sql语句进行了采样) 我并不完全熟悉查询SQL数据库,到目前为止我所能做的就是显示数据库;展示表格和从圣经中选择* mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | |
.sql
文件很大,我对下面的sql语句进行了采样)
我并不完全熟悉查询SQL数据库,到目前为止我所能做的就是显示数据库;展示表格代码>和从圣经中选择*代码>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| openVdev |
+--------------------+
2 rows in set (0.00 sec)
mysql> show tables;
+--------------------+
| Tables_in_openVdev |
+--------------------+
| bible |
+--------------------+
1 row in set (0.00 sec)
从圣经中选择*代码>为我转储所有内容,我如何解析文件中的某一段经文/圣经
下面是SQL语法的示例:
INSERT INTO `bible` VALUES (1,'Genesis',1,1,'IN THE beginning God
INSERT INTO `bible` VALUES (531,'Genesis',21,17,'And God heard the voice
INSERT INTO `bible` VALUES (1035,'Genesis',35,23,'The sons of Leah: Reuben,
INSERT INTO `bible` VALUES (1531,'Genesis',50,24,'And Joseph said to his brethren,
INSERT INTO `bible` VALUES (1985,'Exodus',17,1,'ALL THE congregation
也有几种版本的圣经以关键值标识:
DROP TABLE IF EXISTS `bible`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `bible` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`book` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`chapter` int(11) NOT NULL,
`verse` int(11) NOT NULL,
`AMP` text COLLATE utf8_unicode_ci NOT NULL,
`ASV` text COLLATE utf8_unicode_ci NOT NULL,
`BENG` text COLLATE utf8_unicode_ci NOT NULL,
`CEV` text COLLATE utf8_unicode_ci NOT NULL,
`DARBY` text COLLATE utf8_unicode_ci NOT NULL,
`ESV` text COLLATE utf8_unicode_ci NOT NULL,
`KJV` text COLLATE utf8_unicode_ci NOT NULL,
`MKJV` text COLLATE utf8_unicode_ci NOT NULL,
`MSG` text COLLATE utf8_unicode_ci NOT NULL,
`NASB` text COLLATE utf8_unicode_ci NOT NULL,
`NIV` text COLLATE utf8_unicode_ci NOT NULL,
`NKJV` text COLLATE utf8_unicode_ci NOT NULL,
`NLT` text COLLATE utf8_unicode_ci NOT NULL,
`NRSV` text COLLATE utf8_unicode_ci NOT NULL,
`WEB` text COLLATE utf8_unicode_ci NOT NULL,
`YLT` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`book`,`chapter`,`verse`),
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=31103 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
我随后创建了python MySQLdb连接
import MySQLdb
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="openVuser", # your username
passwd="openVpw", # your password
db="openVdev") # name of the data base
# you must create a Cursor object. It will let
# you execute all the queries you need
cur = db.cursor()
# Use all the SQL you like
cur.execute("SELECT * FROM bible")
Question_1 = "\n Please enter a scripture?\n"
scripture = raw_input(Question_1)
print scripture
print all the first cell of all the rows
for row in cur.fetchall() :
print row[0]
如果看起来我没有做出任何努力,我很抱歉,但这已经是一个月没有进展了。我很难弄清楚如何使用命令行查询MySQL db,尽管我在这方面取得了一些进展:
我对圣经表中的KJV键很感兴趣,我如何从中提取该键并转到经文,并将用户收到的输入解析为SQL查询
Pseudocode:
Print: What scripture would you like to look up?
User: Romans 12:1
cur.execute("SELECT KJV FROM bible key")
cur.execute("SELECT 'Romans 12:1' FROM table")
print cur.execute
您的问题根本不是关于Python或MySQLdb的(当然也不是关于“解析”),而是学习足够的SQL以请求所需内容的简单问题,尽管您还没有说这是什么。你应该去做一个基本的SQL教程。@DanielRoseman谢谢你,你想做一个教程吗?
Pseudocode:
Print: What scripture would you like to look up?
User: Romans 12:1
cur.execute("SELECT KJV FROM bible key")
cur.execute("SELECT 'Romans 12:1' FROM table")
print cur.execute
/* Generic query */
SELECT `key1`, `key2`, `key3` FROM `table` WHERE `another_key` LIKE 'SOME_STRING';
/* Specific query for your problem */
SELECT `KJV` FROM `bible` WHERE `chapter` LIKE 'Romans' AND `verse` = '12';