MySQL数据库操作——创表,增删改查

# 建立连接

 1 try:
 2     # 获取连接
 3     conn = MySQLdb.connect(
 4         host='127.0.0.1',
 5         user='root',
 6         passwd='*',
 7         port=3306,
 8         charset='utf8',
 9     )
10     # 获取数据
11     cursor = conn.cursor()
12 except MySQLdb.Error as e:
13     print('Error: %s' % e)

# 建立数据库

# 插入名为news的数据库,编码格式为utf8
cursor.execute('CREATE DATABASE news character set utf8;') 

# 建表

1 cursor.execute('CREATE TABLE `news` ('
2                 '`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,'
3                 '`title` VARCHAR(200) NOT NULL,'
4                 '`centent` VARCHAR(20000) NOT NULL,'
5                 '`created_at` DATETIME NULL,'
6                 '`types` VARCHAR(10) NOT    NULL,'
7                 '`author` VARCHAR(20) NULL,'
8                 '`view_count` INT DEFAULT 0,'
9                 '`is_valid` SMALLINT DEFAULT 1) DEFAULT CHARSET "UTF8";')

# 增加数据

# 增加单条数据
sql = "INSERT INTO `news` (`title`, `centent`, `created_at`, `types`) VALUE('这个春天,她们光彩夺目','新闻内容',now(),'新闻');"
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
# 增加多条数据
sql = "INSERT INTO `news` (`title`, `centent`, `created_at`, `types`) VALUES('今天的头条,送给她们!','新闻内容',now(),'新闻')," \
      "('乘公交致13人感染 研究:新冠在密闭空调车厢可传4.5米','新闻内容',now(),'新闻')," \
      "('剧情狗血成这样,它凭什么收视率超《安家》?','新闻内容',now(),'娱乐')," \
      "('宋慧乔陷入感染危机,前夫宋仲基不戴口罩露面,身处国外神态轻松','新闻内容',now(),'娱乐')," \
      "('锡安太狠了!单挑KO热火悍将,直接把对手打回','新闻内容',now(),'体育')," \
      "('詹姆斯,如果空场比赛我是不会打的,我为球迷而战','新闻内容',now(),'体育')," \
      "('56只个股跨越牛熊分界线','新闻内容',now(),'财经')," \
      "('你宅着,带火了这些行业','新闻内容',now(),'财经')," \
      "('一个勤务保障队队长的“N”种身份','新闻内容',now(),'军事')," \
      "('萨达姆超800架战机在手,为何却埋入黄沙?专家:高明之举','新闻内容',now(),'军事')," \
      "('40强赛也能模拟?国足迪拜集训忙不停 5天2战提','新闻内容',now(),'百家')," \
      "('一个勤务保障队队长的“N”种身份','新闻内容',now(),'百家')," \
      "('国足迪拜“艰难”开练 一天两练将于3月20日回国','新闻内容',now(),'百家')," \
      "('爱无疆|三峡集团资助的海外学子为中国加油','新闻内容',now(),'百家');;"
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()

# 删除数据

1 # 删除id为15的新闻数据—— 删除多条修改WHERE条件即可
2 sql = "DELETE FROM `news` WHERE id=15"
3 cursor.execute(sql)
4 conn.commit()
5 cursor.close()
6 conn.close()

# 修改数据

1 # 需修改多条,修改WHERE条件即可
2 sql="UPDATE `news` SET title='新闻标题' WHERE id=14"
3 cursor.execute(sql)
4 conn.commit()
5 cursor.close()
6 conn.close()

# 查询数据

# 查询一条数据——— id为1的数据
sql = 'SELECT * FROM `news` WHERE id=1 "
cursor.execute(sql)
rest = dict(zip([k[0] for k in cursor.description], cursor.fetchone()))
print(rest)
# 查询多条数据—— 查询所有新闻的types为'百家'的数据
sql = "SELECT * FROM `news` WHERE types=%s"
cursor.execute(sql,('百家',))
list=[]
for i in cursor.fetchall():
    rest = dict(zip([k[0] for k in cursor.description], i))
    list.append(rest)
for a in list:
    print(a)
cursor.close()
conn.close()

猜你喜欢

转载自www.cnblogs.com/zuzhuangmengxiang/p/12514205.html