【NLP方向】【万时计划】7-15

这篇博客介绍了如何使用Python进行数据库操作,包括连接、查询、插入、更新和删除数据,以及处理数据库异常。同时,讲解了time.strftime()函数在时间格式化中的应用,展示了一系列日期和时间的格式化示例。
摘要由CSDN通过智能技术生成

python操作数据库execute操作

  1. 连接数据库:
def do_sql(sql,dbname='MYSQL',ip="localhost ",pwd="109945love",user='huayong',port=3306):
    print(sql)
    conn = getconnection(ip,pwd,dbname,user,port)
    cur = conn.cursor()
    result = 0
    try:
        result = cur.execute(sql)
        connect.commit()
        cur.close()
    except Exception as e:
        print(str(e))
        conn.rollback()
        if re.search("You have an error in your Sql syntax;", str(e), re.I|re.S|re.M):
            print(sql)
            print("byq's db.py 退出")
            sys.exit(0)
    finally:
        conn.close()
        return result
   

查看列名:在定义光标时,可以将其定义为字典形式,这样查询数据时可以查看对应列名

import MySQLdb
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='08day5')
cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)

sql='select * from userinfo'
reCount = cur.execute(sql)
reData  = cur.fetchall() 

print reData

cur.close()
conn.close()

查询数据库内容

reCount	=	cur.execute("select * from userinfo")#execute对数据库进行操作。

reData	=	cur.fetchall()#查询数据库内容,需进行操作后,再使用该命令

对数据库进行插入

reCount	=	cur.execute(' insert into userinfo(id, name, passwd) values(2, "root", "2345")' )

conn.commit()#提交数据

对数据库进行修改

reCount	=	cur.execute('update userinfo set name = "test" where id = 2')
`conn.commit()

对数据库进行删除

reCount	=	cur.execute('delete from userinfo where id=2')
conn.commit()

在进行数据库操作时,我们需要进行不同的操作和修改不一致的内容,所以可以将数据库命令和修改的内容分别用变量来表示

sql = 'insert into userinfo(id, name, passwd) values(%s, %s, %s)'
params = (2, "root", "2345")#使用元组进行数据添加
reCount = cur.execute(sql, params)# execute(sql[, parameters])
conn.commit()

批量插入数据

1、将要插入的数据定义为列表

2、使用executemany来执行命令

sql = 'insert userinfo(id, name, passwd) values(%s, %s, %s)'
params = [(2, "root", "2345"),
		  (3, "test", "3456")]
reCount = cur.executmany(sql, params)
conn.commit()

指针移动

相对位置:cur.scroll(-1, mode=‘relative’)

绝对位置:cur.scroll(0, mode=‘absolute’)

可以使用fetchone来进行验证.

获取自增ID:使用lastrowid来获取

关闭数据库

cur.close()
conn.close()

SQL select distincty语句

select distinct 语句用于返回唯一不同的值

在表中,一个列可能会包含多个重复值,有时也许希望仅仅列出不同的值即使用distinct关键词。

SELECT DISTINCT column_name, column_name
FROM table_name;

time.strftime(format[,t])

转换一个元组或struct_time表示的由gmtime()或localtime()返回的时间到由format参数指定的字符串。若未提供t则使用由localtime()返回的当前时间。format必须是一个字符串。如果t中的任何字段超出允许范围,则valueError

import time

print(time.strftime("1. %Y-%m-%d %H:%M:%S",time.localtime()))
print(time.strftime("2. %Y-%m-%d is %A",time.localtime()))
print(time.strftime("3. 十二小时制时间是:%Y-%m-%d %I:%M:%S%p",time.localtime()))
print(time.strftime("4. 现在是: %Z %c",time.localtime()))
print(time.strftime("5. 现在是: %Z %a %b %d %I:%M:%S%p",time.localtime()))
print(time.strftime("6. %Y-%m-%d是%B,这是%Y一年的第%j天",time.localtime()))
# %U 一年中的星期数(00-53)星期天为星期的开始
print(time.strftime("7. %Y-%m-%d是%A,这是%Y一年的第%U周",time.localtime(1607221844)))
# %W 一年中的星期数(00-53)星期一为星期的开始
print(time.strftime("8. %x是是%A,这是%Y一年的第%W周",time.localtime(1607221844)))
print(time.strftime("9. 现在是:%Z %X%p",time.localtime()))
1. 2020-12-10 10:45:00
2. 2020-12-10 is Thursday
3. 十二小时制时间是:2020-12-10 10:45:00AM
4. 现在是: 中国标准时间 Thu Dec 10 10:45:00 2020
5. 现在是: 中国标准时间 Thu Dec 10 10:45:00AM
6. 2020-12-10是December,这是2020一年的第3457. 2020-12-06是Sunday,这是2020一年的第498. 12/06/20是是Sunday,这是2020一年的第489. 现在是:中国标准时间 10:45:00AM
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值