zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    微信小程序 组件事件传递
    vue 项目引入字体报错
    vue 单文件 样式写了scoped 不能覆盖框架原有样式的解决办法
    react 动态获取数据
    百度地图marker点击任意一个当前的变化,其余的marker不变
    对象字面量中可以使用中括号作为属性,表示属性也能是一个变量
    二维数组转化为一维数组 contact 与apply 的结合
    一个对象如何复制给另一个对象,互不影响
    在-for 循环里面如何利用ref 操作dom
    mac 进程管理
  • 原文地址:https://www.cnblogs.com/yangrongkuan/p/12114459.html
Copyright © 2011-2022 走看看