数据库连接

  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 '''

 

posted @ 2017-08-18 12:05  halo_vagabond  阅读(1097)  评论(0编辑  收藏  举报