Mysql
Posted yukizzc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql相关的知识,希望对你有一定的参考价值。
安装及配置
https://www.jb51.net/article/198291.htm
一、安装压缩包解压开来
二、进入目录内的bin,然后运行cmd(同时把这个路径放到环境变量中)。执行下面一系列动作(8.0版本已经不需要自己创建ini配置了)
三、启动服务成功后,敲mysql -u root -p
如果能进入mysql命令界面就说明成功了。
SQL命令
https://www.runoob.com/mysql/mysql-select-query.html
一般直接使用可视化的软件比如SQLyg来进行管理方便
python操作mysql
https://www.runoob.com/python3/python-mysql-connector.html
创建数据库
coon是建立连接,实例化一个connect()对象。
游标(cursor)**是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。
import mysql.connector coon = mysql.connector.connect( host="localhost", user="root", passwd="" ) cursor = coon.cursor() cursor.execute("CREATE DATABASE ft") #关闭游标 cursor.close() #关闭数据库链接 coon.close()
创建表、查询表
import mysql.connector coon = mysql.connector.connect( host="localhost", user="root", passwd="", database=\'ft\' ) cursor = coon.cursor() code = \'btc\' type_ = \'1min\' temp = \' (date INT(10),code VARCHAR(10),open FLOAT(10,2),amount FLOAT(20,2))\' sql = \'create table \' + code + \'_\' + type_ + temp cursor.execute(sql) cursor.close() coon.close()
import mysql.connector coon = mysql.connector.connect( host="localhost", user="root", passwd="", database=\'ft\' ) cursor = coon.cursor() sql = \'show tables\' cursor.execute(sql) table_list = [] for i in cursor: print(i) # 返回的是一个元组所以 table_list.append(i[0]) print(table_list) cursor.close() coon.close()
增删改查
import mysql.connector coon = mysql.connector.connect( host="localhost", user="root", passwd="", database=\'ft\' ) # 这里设置的缓存True,如果不设置的话在使用fetchone时候会报Unread result found # https://www.cnblogs.com/mentiantian/p/9531861.html cursor = coon.cursor(buffered=True) code = \'btc\' type_ = \'1min\' temp = \' (date,code,open,amount) values(%s,%s,%s,%s)\' sql = \'insert into \' + code + \'_\' + type_ + temp val = (1, "i love ft", 2, 15) cursor.execute(sql, val) # 提交事务,数据表内容有更新,必须使用到该语句 coon.commit() cursor.execute("SELECT * FROM btc_1min") # 查询所有数据 # print(cursor.fetchall()) # 查询第一条数据 print(cursor.fetchone()) cursor.close() coon.close()
import mysql.connector coon = mysql.connector.connect( host="localhost", user="root", passwd="", database=\'ft\' ) # 这里设置的缓存True,如果不设置的话在使用fetchone时候会报Unread result found # https://www.cnblogs.com/mentiantian/p/9531861.html cursor = coon.cursor(buffered=True) code = \'btc\' type_ = \'1min\' temp = " SET date={},code=\\\'{}\\\',open={},amount={}".format(10, \'我爱f婷\', 20, 30, 40) sql = "UPDATE " + code + \'_\' + type_ + temp # 通过这个语句要注意,字符串必须要有引号包起来,所以上面用了\\\'单引号的转义 print(sql) cursor.execute(sql) # 提交事务,数据表内容有更新,必须使用到该语句 coon.commit() print(cursor.rowcount, " 条记录被修改") cursor.close() coon.close()
注意:如果数据库实时更新时候普通的fetchone获取过来的数据不更新。具体解释看这里https://www.cnblogs.com/sidianok/p/12727409.html
import mysql.connector coon = mysql.connector.connect(host=\'localhost\', user=\'root\', passwd=\'\', database=\'ft\') cursor = coon.cursor(buffered=True) while True: cursor.execute("SELECT * FROM btc_1min") result = cursor.fetchone() print(result)
上面这段程序循环输出的时候,如果表有更新,那么输出的数据不会同步更新。解决方法如下
import mysql.connector def one(): coon = mysql.connector.connect(host=\'localhost\', user=\'root\', passwd=\'\', database=\'ft\') cursor = coon.cursor(buffered=True) while True: cursor.execute("SELECT * FROM btc_1min") result = cursor.fetchone() coon.commit() print(result) def two(): coon = mysql.connector.connect(host=\'localhost\', user=\'root\', passwd=\'\', database=\'ft\', autocommit=1) cursor = coon.cursor(buffered=True) while True: cursor.execute("SELECT * FROM btc_1min") result = cursor.fetchone() print(result) # one() two()
以上是关于Mysql的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段
使用 json rereiver php mysql 在片段中填充列表视图
关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段