记录MySQL相关操作命令以及使用pymysql模块管理MySQL数据库的相关代码,然后介绍可视化数据库的工具Navicat以及Pycharm中的工具。
直接官网下载手动版安装,设置环境变量以及设置密码。
参考win10下装mysql-5.7.18-winx64
启动(如果无法启动,可以右击我的电脑->管理->服务->MySQL->启动,如果是开启但仍然出错,可以重新启动)
net start mysql
停止
net stop mysql
登陆
mysql -u root -p
....输入密码
退出
exit
数据库从大到小依次为库->表->行->列
创建库
CREATE DATABASE database_name
删除库
DROP DATABASE_name
pip install pymysql
主要是SQL语言的使用,包括创建,插入,查找,删除,更新等操作
import pymysql
# 连接数据库
db = pymysql.connect("localhost", "root", "password", "database_name")
# 使用cursor()获取操作游标
cursor = db.cursor()
# 使用游标执行SQL命令
cursor.execute(sql_command)
# 提交到数据库执行
db.commit()
# 关闭数据库连接
db.close()
以下均给出SQL操作命令,可以直接将返回命令带入cursor.execute()中
def creat():
# 使用预处理语句创建表
sql_creat = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
return sql_creat
这里创建了一个名为EMPLOEE的表,包含姓、名、年龄、性别、收入等五个属性(列)。
注意需要标明数据类型,这里着重记录一下字符串类型:
可以在括号中给出数据最大大小,后面给出了最大大小(bytes)
char() < 255
varchar() < 65535
text() < 65535 ,
longtext() < 4G , 可以保存文章
def insert():
# SQL 插入语句
sql_insert1 = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Zhang', 'Kaiyan', 20, 'M', 2000)"""
# SQL 插入语句, 通过参数给出
first_name = 'Zhanf'
last_name = 'Kaiyan'
age = 21
gender = 'M'
income = 1000
sql_insert2 = """INSERT INTO EMPLOYEE
(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)
VALUES ('{}', '{}', {}, '{}', {})""".format(first_name, last_name, age, gender, income)
return sql_insert1
第二种通过参数给出,更常用,是使用的格式化,也可以这样给出
sql_insert2 = "INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, '%d', '%c', '%d')" % (first_name, last_name, age, gender, income)
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
def search(cursor):
# 查找收入大于1000的对象返回
sql = "SELECT * FROM EMPLOYEE WHERE INCOME > '%d'" % (1000)
cursor.execute(sql)
results = cursor.fetchall()
return results
可以遍历返回结果
for row in search(cursor):
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income ))
def delete():
# 删除表EMPLOEE中所有年龄大于20的对象
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
return sql
def update():
# 更新表EMPLOEE中性别为M的对象的年龄,将年龄加1
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
return sql
参考链接
Python3 MySQL 数据库连接
MySQL表操作及字段数据类型
安装破解参考Navicat Premium 12.0.29安装与激活
注意需要断网
一般在Pycharm的右边,选择MySQL,填入数据库名,以及用户名及密码即可,可以进行操作以及提交。
记录一个问题,在pycharm中,使用SQL语言会出现警告,解决参考idea的mybatis的xml文件总是报警告SQL dialect is not configured