mysql操作
请自行安装mysql服务及mysql客户端,官网地址 http://dev.mysql.com/downloads/mysql/
mysql详细安装,操作请参考 http://www.cnblogs.com/wupeiqi/articles/5699254.html
mysql的一些简单语句
SHOW DATABASES; #查看当前数据库的的库名 USE test; #使用test库 SHOW TABLES; #查看当前库名中的表 CREATE DATABASE students; #创建一个数据库名字为students FLUSH PRIVILEGES; #刷新系统权限表

# 创建用户
create user '用户名'@'IP地址' identified by '密码';
# 删除用户
drop user '用户名'@'IP地址';
# 修改用户
rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
# 修改密码
set password for '用户名'@'IP地址' = Password('新密码')
# 授权管理:
show grants for '用户'@'IP地址' -- 查看权限
grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权
revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限
# 创建表
create table 表名(
列名 类型 是否可以为空,
列名 类型 是否可以为空
)
# 删除表
drop table 表名
# 清空表
delete from 表名
truncate table 表名
# 修改表
添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
alter table 表名 modify column 列名 类型; -- 类型
alter table 表名 change 原列名 新列名 类型; -- 列名,类型
添加主键:
alter table 表名 add primary key(列名);
删除主键:
alter table 表名 drop primary key;
alter table 表名 modify 列名 int, drop primary key;
添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
mysql API pymsql
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。
一、下载安装:
|
1
|
pip3 install pymysql |
二、基本使用
1、创建连接,并执行SQL,简单实例
#!/bin/bin/env python
# -*-coding:utf-8 -*-
# Author : rain
import pymysql
# 创建连接
conn = pymysql.connect(host='127.0.0.1', port='3306', user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor()
# 执行sql语句插入一行数据,并返回受影响的行数
res = cursor.execute("insert into students (name, adress) values ('rain', 'china') ")
# 提交数据,否则sql语句不生效
conn.commit()
# 关闭游标
cursor.close()
# 头闭连接
conn.close()

#!/bin/bin/env python
# -*-coding:utf-8 -*-
# Author : rain
import pymysql
# '''
# 创建连接
conn = pymysql.connect(host='127.0.0.1', port='3306', user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor()
# 删除表
reste = cursor.execute('delete from hello')
# 创建表
rest = cursor.execute("create table hello(id int AUTO_INCREMENT primary key not null,name CHAR(24) not null)")
# 执行sql语句插入一行数据,并返回受影响的行数
res = cursor.execute("insert into students (name, adress) values ('rain', 'china') ")
# 一次性插入多条数据,并返回受影响的行数
res1 = cursor.executemany("insert into students(name, adress))values(%s, %s)", [('yxy', 'china'), ('window', 'UK')])
# 更新一条数据
res2 = cursor.execute("update students set name='windows' where address ='UK'")
# 删除一条数据
res3 = cursor.execute("delete from students where id=1 and name='UK'")
# 删除整张表
res4 = cursor.execute("delete from students")
# 提交数据,否则sql语句不生效
conn.commit()
# 关闭游标
cursor.close()
# 头闭连接
conn.close()
# 获取最新自增ID
new_id = cursor.lastrowid
2、获取查询数据
# 创建连接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor()
# 执行sql语句 cursor.execute(),并返回受影响的行数
restin = cursor.execute("insert into students ( name, address) values('hi', 'china')")
# 执行查询语句
rest = cursor.execute('select * from test.students')
print(rest)
# 获取最新自增ID,必须放在insert语句下面
new_id = cursor.lastrowid
print(new_id)
# 读取第一条记录
queryone = cursor.fetchone()
# (1, 'yxy', 'china')
# 获取前三条记录,从上一个fetchone结束的地方开始
querymany = cursor.fetchmany(4)
# ((2, 'rain', 'UK'), (3, 'windows', 'china'), (4, 'pay', 'Uk'), (5, 'pay', 'Uk'))
# 获取全部数据,从上一个fetchmany结束的地方开始
queryall = cursor.fetchall()
# ((6, 'hello', 'china'), (7, 'hello', 'china'), (8, 'hello', 'china'))
print(queryone)
print(querymany)
print(queryall)
# 提交数据,否则sql语句不生效
conn.commit()
# 关闭游标
cursor.close()
# 头闭连接
conn.close()
注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:
- cursor.scroll(1,mode='relative') # 相对当前位置移动
- cursor.scroll(2,mode='absolute') # 相对绝对位置移动

3、fetch数据类型
关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
conn = pymysql.connect(host='127.0.0.1',user='root',passwd='123456',db='test')
# 将游标设置成字典类型
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
a = cur.execute('select * from students')
print(a)
result = cur.fetchmany(3)
# ({'name': 'yxy', 'id': 1, 'address': 'china'},
# {'name': 'rain', 'id': 2, 'address': 'UK'},
# {'name': 'windows', 'id': 3, 'address': 'china'})
print(result)
conn.commit()
cur.close()
conn.close()
如有另外见解,稍后补充。。。
来源:https://www.cnblogs.com/yxy-linux/p/5704683.html
