目录

  • 创建数据表
  • 向数据表中添加数据
  • 实例


创建数据表

首先创建连接对象

import pymssql  #调入模块connect = pymssql.connect(host='localhost',server='服务器名称',port='端口号',user='用户名',password='用户密码',database='数据库名称') #服务器名,账户,密码,数据库名

创建游标对象(数据表的创建,查询等命令都要用游标对象执行)

db = connect.cursor()  #创建游标对象

执行数据库的命令格式:
游标对象.execute(“数据库命令”)

创建数据表,创建的数据表将会添加到你所连接的数据库里面。

格式:

#首先判断是否有数据表,有的话就执行删除命令,然后创建数据表db.execute("""IF OBJECT_ID('数据表名称','U') IS NOT NULL    DROP TABLE 数据表名称CREATE TABLE 数据表名称(    列名 数据类型 是否能为空)""")

例:
判断有无数据表number,有的话删除然后新建,在数据表中添加列名为 ID 数据类型为 整形 不能为空。添加列名为 Url 数据类型为 长字符串型 不能为空

db.execute("""IF OBJECT_ID('number','U') IS NOT NULL    DROP TABLE numberCREATE TABLE number(    IDINTNOT NULL,    UrlVARCHAR(30)NOT NULL)""")

向数据表中添加数据

格式:

db.execute("INSERT INTO 数据表名称 VALUES ('添加的数据','添加的数据')")

这里要注意的是你所要添加数据的项数要和数据表的列数是相等的,即你所添加的数据和数据表的列名是一一对应的,有三列就一次添加三项数据。

还有就是你所添加的数据类型要和每列要求的数据类型是相同的。

例:

db.execute("INSERT INTO number VALUES ('第一列','第二列','第三列')"

执行后结果如图:

当我们直接执行这些命令时,他是不会产生变化的,因为我们的命令还没有被提交,接下来我们就要添加语句:

connect.commit() #提交数据

现在再去看我们的数据表就可以发现,我们所要添加的数据就成功被添加到了数据表中。

当执行完所有数据库命令后,要记得断开Python和数据库的连接,执行语句:

connect.close()  #关闭连接

实例

下面就附一个爬取网页信息并存取到数据表中的实例。

import requestsfrom lxml import etreeimport pymssql #引入pymssql模块#创建连接对象connect = pymssql.connect(host='localhost',server='服务器名称',port='端口号',user='用户名',password='用户密码',database='数据库名称') #服务器名,账户,密码,数据库名# print(connect)  可以输出查看一下连接对象if connect:print("连接成功!")url = "http://www.tiantianxieye.com/"html = requests.get(url).textetree = etree.HTML(html)number = etree.xpath('//div[@class="ListLink2"]/ul/li/a/text()')  #获取数据表中三个列名对应的三项数据number_url = etree.xpath('//div[@class="ListLink2"]/ul/li/a/@href')target = etree.xpath('//div[@class="ListLink2"]/ul/li/a/@target')# print(number_url)db = connect.cursor()  #创建游标对象#用游标对象执行SQL命令,创建数据表,添加列。db.execute("""IF OBJECT_ID('number','U') IS NOT NULL    DROP TABLE numberCREATE TABLE number(    Name VARCHAR(20) NOT NULL,    Url VARCHAR(30) NOT NULL,    Bank VARCHAR(10) NOT NULL)""")#循环爬取的数据,依次写入数据表中。for i in range(len(number)):num = str(number[i])href = str(number_url[i])bank = str(target[i])db.execute("INSERT INTO number VALUES ('%s','%s','%s')" % (num,href,bank))  #执行SQL命令 数据表名称不区分大小写 所以这里的number = Number添加的数据要放在括号内 添加的项数要和数据表中的列数相等 并且要对应相对列的类型connect.commit() #提交数据connect.close()  #关闭连接

执行结果如图:

©著作权归作者所有:来自51CTO博客作者小甜甜?的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python爬虫:如何将Request Payload添加到请求中
  2. Python操作SQL Server(三)数据表查询和fetchall()与fetchone()的
  3. crmeb 知识付费系统-首页说明-看云
  4. 如何在Mac上的iMovie剪辑中添加转场?
  5. 【EMCC】 12.1.0.5 OEM server agent 安装配置及监控MySQL数据库
  6. 在 iMovie 中如何添加音乐和声音片段?
  7. Java 线程池 ThreadPoolExecutor -01
  8. navicat连接mysql数据库,添加 timestamp字段,报错显示invalid defa
  9. JavaScript:1.图片懒加载演示;2.轮播图为翻页按钮添加功能;

随机推荐

  1. Android键盘自适应方法.
  2. [Android] 环境配置之Android Studio开发
  3. android GradLayout实现计算器
  4. android之Spinner控件用法
  5. Android控件及API说明(三)
  6. android 无界面通过开机下载
  7. Android 多线程之线程池
  8. android:layout_weight属性的简单使用
  9. 详解如何让Android(安卓)UI设计性能更高
  10. 基于Android平台下的科学计算器