zoukankan      html  css  js  c++  java
  • python 安装操作 MySQL 数据库.

    以ubuntu和mysql为例

    检查自己的机器上面有没有安装数据库

    1 xpower@xpower-CW65S:~$ sudo service mysql start
    2 [sudo] xpower 的密码: 


    尝试输入命令打开 MySQL 不同的版本会有不同的效果 , 我的什么反馈也没有这就说明已经安装并且启动成功了 ( 没有消息就是最好的消息 ) 有的 ubuntu 会有反馈 , 自己看反馈内容 . 很容易判断 .

    安装MySQL(安装过程中可能需要填写一点东西 . 建议填写一下 . )

    1 xpower@xpower-CW65S:~$ sudo apt-get install mysql-server # 安装MySQL服务端,核心 程序
    2 xpower@xpower-CW65S:~$ sudo apt-get install mysql-client # 安装MySQL客户端

     安装MySQLdb              

    我当时尝试了好几种方法来安装但是都失败了 最后用了这个(好像是这个吧...)

    xpower@xpower-CW65S:~$ sudo pip install MySQL-python

    准备工作完毕 下面开始 , 实践一发 MySQL的基础操作温习一下.

    启动MySQL

    mysql -u root -p # 有密码的时候的启动方式 .
    
    mysql -u root     # 没有密码的时候的启动方式 . 

    练习 MySQL 的基本操作

    xpower@xpower-CW65S:~$ mysql -u root -p  # 启动数据库
    Enter password: 
    mysql> show databases;   #查看当前所有的数据库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | mysql_xpower       |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    mysql> use mysql_xpower # 链接 mysql_xpower 数据库
    Database changed
    mysql> show tables;   # 查看 mysql_xpower下的所有表单 
    +------------------------+
    | Tables_in_mysql_xpower |
    +------------------------+
    | Student_information    |
    | employee               |
    | user                   |
    +------------------------+
    3 rows in set (0.00 sec)
    mysql> DROP TABLE user;  # 删除表单 user
    Query OK, 0 rows affected (0.30 sec)
    mysql> CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); #创建一个 user 表单 
    Query OK, 0 rows affected (0.46 sec)
    mysql> show tables;   # 查看 mysql下的所有表单
    +------------------------+
    | Tables_in_mysql_xpower |
    +------------------------+
    | Student_information    |
    | employee               |
    | user                   |
    +------------------------+
    3 rows in set (0.00 sec)
    mysql> insert into user values('tom','12345');
    Query OK, 1 row affected (0.13 sec)
    
    mysql> insert into user values('jack','23456');
    Query OK, 1 row affected (0.04 sec)
    
    mysql> insert into user values('lucy','34567');
    Query OK, 1 row affected (0.12 sec)
    
    mysql> SHOW TABLES # 查看表单 
        -> ;
    +------------------------+
    | Tables_in_mysql_xpower |
    +------------------------+
    | Student_information    |
    | employee               |
    | user                   |
    +------------------------+
    3 rows in set (0.00 sec)
    
    mysql> SELECT * FROM user; 查看 user表单下所有项
    +------+----------+
    | name | password |
    +------+----------+
    | tom  | 12345    |
    | jack | 23456    |
    | lucy | 34567    |
    +------+----------+
    3 rows in set (0.00 sec)
    
     
    mysql> DELETE FROM user WHERE NAME='lucy'; # 删除用户 lucy
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> insert into user values('lucy','34567');
    Query OK, 1 row affected (0.04 sec)
    
    mysql> delete from user where name ='jack';
    Query OK, 1 row affected (0.05 sec)
    
    mysql> update user set password='111' where name ='lucy'; # 修改 lucy的密码 . 
    Query OK, 1 row affected (0.12 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from user
        -> ;
    +------+----------+
    | name | password |
    +------+----------+
    | tom  | 12345    |
    | lucy | 111      |
    +------+----------+

    上面是MySQL的基本操作 , 自己动手打一遍

    进入正题

    >>> conn= MySQLdb.connect(
    ...         host='localhost',
    ...         port = 3306,
    ...         user='root',
    ...         passwd='密码',
    ...         db = '需要链接的数据库',
    ...         )

    在这里虽然我们取得了 python 的数据库链接 , 但是不能在这个对象上直接对数据库进行操作 , 还需要获取对应的操作游标才能进行数据库的操作 , 所以还需要 获取游标 .

    1 >>> cur = conn.cursor()

    创建一个数据库 (cur.execute() 没有返回被影响的行数 , 因为这里是创建数据库 , 所以被影响的是 0L)

    但是到这里语句并没有被真正的执行必须使用MySQLdb.commit() ( git ?  ) 才是真正的执行完毕 . 到这里才是真正的执行完毕 , 这时候我们的表格才是真正的创建完成 ,  同理向表中写入数据 , 也是一样的操作流程 execute ==> commit 不过 , 写入的数据的 execute , 也是少有不同 , 如下

    >>> cur.execute('CREATE TABLE stu_info (name VARCHAR(20),stu_id VARCHAR(30))')
    0L
    >>> conn.commit()
    >>> 

    下面会向表单中插入数据 , 是和上面不一样的插入方式 .

    >>> cur.executemany("insert into stu_info (name,stu_id) values (%s,%s)",(("jack",18),("lucy",19)))
    2L
    >>> conn.commit()


    >>> cur.execute("insert into stu_info (name,stu_id) values ('yuanchongyang','156
    31030706')")
    1L
    >>> cur.execute("insert into stu_info (name,stu_id) values ('caiweiwei','1563103
    0717') ")
    1L
    >>> conn.commit()

    上面尝试了一下 , 看看能不能和 git 一样多个数据 一次 commit . 需要了解一下 数据库的工作流程....

    >>> cur.execute("select * from stu_info")
    4L
    >>> stus = cur.fetchall()
    >>> stus

    查看表单内容

    1 >>> cur.execute("select * from stu_info")
    2 4L
    3 >>> stus = cur.fetchall()
    4 >>> stus
    5 (('yuanchongyang', '15631030706'), ('caiweiwei', '15631030717'), ('jack', '18'), ('lucy', '19'))
    1 >>>conn.close()
    2 
    3 Conn.close()关闭数据库连接

    上文中我们已经知道 , 通过

    >>> import MySQLdb
    >>> conn = MySQLdb.connect(
    ...         host='localhost',
    ...         port = 3306,
    ...         user='root',
    ...         passwd='q.123456',
    ...         db = 'mysql_xpower',
    ...         )
    >>> cur = conn.cursor()
    >>> sqli = "insert into stu_info values(%s,%s)"
    >>> cur.execute(sqli,('mengmeng',123456789))
    1L
    >>> cur.close()
    >>> cur = conn.cursor()
    >>> cur.execute("select * from stu_info")
    5L

    这个时候获得的cur可以用于显示 表单的内容  

    >>> stus = cur.fetchall()
    >>> stus
    (('yuanchongyang', '15631030706'), ('caiweiwei', '15631030717'), ('jack', '18'),
     ('lucy', '19'), ('mengmeng', '123456789'))

    这样就显示出来了 但是如果想再显示一次怎么办呢?

    >>> cur.scroll(0,'absolute')

    没错就是他 , 他可以让游标指针跳到你想要的位置 . 其实还有一个fetchone这个东西和fetchall 有什么区别呢 ? 自己观察一下 单词就行了 .

  • 相关阅读:
    Python 如何安装、使用pip
    关于防范短信诈骗-贷款方向
    YouTube视频下载解析网站
    压力大导致你的Logstash重发消息吗?
    入职第一件事情
    监控多文件夹目录变化,python,win32
    https://pypi.org/project/watchdog/#files
    UVM_COOKBOOK学习【UVM基础】
    UVM实用技巧【二】
    UVM实用技巧【一】
  • 原文地址:https://www.cnblogs.com/A-FM/p/5808461.html
Copyright © 2011-2022 走看看