数据库连接
Python初次连接数据库总结
用JDBC访问Oracle,即java连接本机数据库的时候,地址用localhost和127.0.0.1都可以。但是这两者有什么区别?哪个更好?有很多人认为这两个是完全一样的,也有人认为127.0.0.1更好,因为是本地IP,不需要从域名解析。
一. 两者区别
1. localhost也叫local ,正确解释为:本地服务器;
127.0.0.1在系统的正确解释是:本机地址(本机服务器)。
2. localhot(local)是不经网卡传输!所以它不受网络防火墙和网卡相关的的限制。访问localhost也不会解析成ip,不会占用网卡、网络资源;
127.0.0.1是需要通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
3. 这就是为什么有时候用localhost可以访问,但用127.0.0.1就不可以的情况,所以还是尽量用localhost。
二. 数据库默认端口号
SQL Server 1433 ; Oracle 1521 ; MySQL 3306 。
三. Python访问数据库实例
1. 将数据原始文件“law.sql”导入数据库(windows环境下)
1) 在设置过环境变量后,进入数据库:
C:\>MySQL -h hostname -u username -p
按ENTER键,等待然后输入密码。这里hostname为服务器的名称,如localhost,username为MySQL的用户名,如root。
2) 创建数据库:
mysql->create database mydb1
3) 退出MySQL:
exit; 或quit;
4) 导入数据:
C:\>MySQL -h hostname -u username -p mydb1 < law.sql
2. Python访问数据库
1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 4 import pandas as pd 5 from sqlalchemy import create_engine #create_engine建立连接 6 7 engine=create_engine('mysql+pymysql://root:1234567890@localhost:3306/mydb1?charset=utf8') 8 #engine=create_engine('mysql+pymysql://root:1234567890@127.0.0.1:3306/mydb1?charset=utf8') 9 10 sql=pd.read_sql('all_gzdata',engine,chunksize=10000) 11 12 ''' 13 用create_engine建立连接,连接地址的意思依次为“数据库格式(mysql)+程序名(pymysql)+账号密码@地址端口/数据库名(mydb1)”,最后指定编码为utf8; 14 all_gzdata是表名,engine是连接数据的引擎,chunksize指定每次读取1万条记录。这时候sql是一个容器,为真正读取数据。 15 '''