Python中ipython-sql + pymysql的使用方法(比pymysql使用更简单)

使用ipython-sql简化Mysql操作
通过安装pymysql和ipython-sql包,本文介绍了一种简化Mysql数据库操作的方法。利用ipython环境,可以直接使用SQL命令进行数据库查询、插入等操作,极大提升了数据库操作的便利性。

pip install pymysql
pip install ipython-sql

安装pymysql、ipython-sql 两个包后,能够以非常便捷的方法针对Mysql数据库使用各类SQL语句。

优点:ipython安装后,可以直接使用“%”加SQL命令来实现SQL操作,使用方法相比在pymysql包下使用SQL的方法要简单的多。

连接数据库方法如下:

	%load_ext sql
	#载入SQL命令环境
	%sql mysql+pymysql://py:123456@localhost/test
	#连接数据库//用户名:密码......./库

SELECT使用:

	%sql select * from test

在Python中将变量代入SQL语句:只需在变量前加“:”即可:

	%sql INSERT INTO test VALUES (:x,:y)

使用SELECT将数据库数据赋值给Python变量:

	s=%sql select CODE  from test where CODE_ID = '0014' 
			#此处,返回的s是一个SQL结果集,类型class 'sql.run.ResultSet',其实际上可以看作是一个二维数组(数据库列表)
			#若想取得CODE的值,需要以数组方法对s进行操作
	y=s[0][0]
			#查看s、y的内容与类型
	print (s,type(s[0]))
	print (y,type(y))
--------------------------------------------------------------------------- OperationalError Traceback (most recent call last) <ipython-input-2-bb1780f10cf3> in <module> 27 28 # 连接 MySQL 数据库 ---> 29 conn = pymysql.connect( 30 host='localhost', 31 user='root', D:\Program Files\Anaconda3\lib\site-packages\pymysql\connections.py in __init__(self, user, password, host, database, unix_socket, port, charset, collation, sql_mode, read_default_file, conv, use_unicode, client_flag, cursorclass, init_command, connect_timeout, read_default_group, autocommit, local_infile, max_allowed_packet, defer_connect, auth_plugin_map, read_timeout, write_timeout, bind_address, binary_prefix, program_name, server_public_key, ssl, ssl_ca, ssl_cert, ssl_disabled, ssl_key, ssl_key_password, ssl_verify_cert, ssl_verify_identity, compress, named_pipe, passwd, db) 363 self._sock = None 364 else: --> 365 self.connect() 366 367 def __enter__(self): D:\Program Files\Anaconda3\lib\site-packages\pymysql\connections.py in connect(self, sock) 679 680 self._get_server_information() --> 681 self._request_authentication() 682 683 # Send "SET NAMES" query on init for: D:\Program Files\Anaconda3\lib\site-packages\pymysql\connections.py in _request_authentication(self) 956 957 self.write_packet(data) --> 958 auth_packet = self._read_packet() 959 960 # if authentication method isn't accepted the first byte D:\Program Files\Anaconda3\lib\site-packages\pymysql\connections.py in _read_packet(self, packet_type) 780 if self._result is not None and self._result.unbuffered_active is True: 781 self._result.unbuffered_active = False --> 782 packet.raise_for_error() 783 return packet 784 D:\Program Files\Anaconda3\lib\site-packages\pymysql\protocol.py in raise_for_error(self) 217 if DEBUG: 218 print("errno =", errno) --> 219 err.raise_mysql_exception(self._data) 220 221 def dump(self): D:\Program Files\Anaconda3\lib\site-packages\pymysql\err.py in raise_mysql_exception(data) 148 if errorclass is None: 149 errorclass = InternalError if errno < 1000 else OperationalError --> 150 raise errorclass(errno, errval) OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
最新发布
10-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值