python Mysql的简记

1)安装连接mysql的驱动器:mysql-connector:python -m pip install mysql-connector
可以使用下面代码进行测试是否安装成功:import mysql.connector
另外:也可以用PyMySQL驱动,安装:pip3 install PyMySQL

2)创建数据库连接:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="yourusername", # 数据库用户名
passwd="yourpassword" # 数据库密码
)

3)创建数据库:
#cursor游标:此处的游标感觉不像以前的游标,以前的游标算是一个标志点,记录你遍历到哪里。只读,不能更新。这里创建的游标对象是可以对数据库进行增删查改似的,类似于数据库连接对象。
mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE runoob_db")

4)打印mysql中数据库的名称:(类似都可以这样用:比如打印数据库中的所有表)
mycursor.execute("SHOW DATABASES")#此时的mycursor会存储execute执行完所得到的东西
for x in mycursor:
print(x)

5)创建数据库表:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456",
database="runoob_db"#对指定数据库操作,自然要在连接的时候指定数据库了
)
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")

6)主键设置:(alter table tab add property : 给表添加主键)
mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")
如果表尚未创建,可以创建的时候直接指定主键:
mycursor.execute("CREATE TABLE sites (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))")

7)插入:
sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
val = ("RUNOOB", "https://www.runoob.com")#批量插入的话,直接在该括号里添加新的元素即可
mycursor.execute(sql, val)
mydb.commit() # 数据表内容有更新,必须使用到该语句

8)查询:
mycursor.execute("SELECT name, url FROM sites")
myresult = mycursor.fetchone() # fetchone() 获取一条记录
myresult = mycursor.fetchall() # fetchall() 获取所有记录
for x in myresult:#输出所查到的记录
print(x)
指定条件下的查询:where语句:
sql = "SELECT * FROM sites WHERE name ='RUNOOB'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
通配符查询:%
sql = "SELECT * FROM sites WHERE url LIKE '%oo%'"
为了防止数据库查询发生sql注入的攻击,我们可以使用%s占位符来转义查询的条件:(删除和更新也是可以这样处理)
sql = "SELECT * FROM sites WHERE name = %s"
na = ("RUNOOB", )
mycursor.execute(sql, na)
myresult = mycursor.fetchall()

9)排序:查询结果排序可以使用 ORDER BY 语句,默认的排序方式为升序,关键字为 ASC,如果要设置降序排序,可以设置关键字 DESC。
sql = "SELECT * FROM sites ORDER BY name"#按 name 字段字母的升序排序,降序则改为“ORDER BY name DESC”
mycursor.execute(sql)
myresult = mycursor.fetchall()

10)limit:设置查询的数据量,可以通过“limit”语句来指定。
mycursor.execute("SELECT * FROM sites LIMIT 3")#限定:读取前面3条记录
另外也可以指定起始位置: 0 为 第一条,1 为第二条,以此类推
mycursor.execute("SELECT * FROM sites LIMIT 3 OFFSET 1") #通过OFFSET进行设置:从第二条开始,读取三条记录,也就是2,3,4记录

11)删除记录:delete
sql = "DELETE FROM sites WHERE name = 'stackoverflow'"
mycursor.execute(sql)
mydb.commit()#更改的都要进行提交
删除表:sql = "DROP TABLE IF EXISTS sites" # 删除数据表 sites

12)更新:update
sql = "UPDATE sites SET name = 'ZH' WHERE name = 'Zhihu'"
mycursor.execute(sql)
mydb.commit()

原文地址:https://www.cnblogs.com/yangrongkuan/p/12114459.html