python入门(十七)python连接mysql数据库

mysql 数据库:关系型数据库
mysql:互联网公司 
sqllite:小型数据库,占用资源少,手机里面使用
oracle:银行、保险、以前外企。
sybase:银行+通信

互联网公司
key:value
mongodb:磁盘上
redis:内存数据库,持久化
memchache:内存数据库

 

mysql -uroot -p密码

装完了之后,cmd下输入mysql命令,需要将安装目录下的bin目录( mysql.exe 所在的目录)加入到path中  本地连接

mysql -uroot -p

 mysql -h127.0.0.1 -utest -p密码  -P3306 

远程连接

 mysql -h
IP地址 -u用户名 -p密码  -P3306   查看都有哪些库  show databases;  选择一个库  mysql> use gloryroad

Database changed 查看当前在哪个库下

select database();  查看库里面有哪些表 show tables;  查看表里有哪些数据 select * from testdata; 创建表 create table test(id int,name varchar(20));  插入数据  mysql> insert into test values(1,"吴老师");

Query OK, 1 row affected (0.01 sec)

mysql> insert into test values(2,"李老师");

Query OK, 1 row affected (0.02 sec)

mysql> insert into test values(3,"张老师");

Query OK, 1 row affected (0.03 sec)

select * from test;  删除某条记录 delete from test where id =1; 修改某条记录 update test set id = 100 where name="李老师";  建库 create database testman;  删库 drop database testman;  删除所有数据,表还在  mysql> delete from test;

Query OK, 2 rows affected (0.02 sec)

mysql> select * from test;

Empty set (0.00 sec)  删除数据并且删除表结构 drop table test;  查看建表语句 show create table studentinfo;    外键 create table grade(

ID int auto_increment not null,

stuID varchar(20),

course varchar(20) not null,

score tinyint(4) default 0,

primary key (ID),

key idx_stuid(stuID),

CONSTRAINT FK_ID FOREIGN KEY(stuID) REFERENCES studentInfo(student_id)

)engine=innodb character set utf8 comment "学生成绩表";  外键:

grade表中插入的stuID字段的数据必须在studentInfo

的student_id中存在,不在,则不让插入。

删除studentInfo中的student_id数据,那么grade中相关

的stuID数据必须先删除,才能成功。    studentInfo 

student_id:2007123  #不能直接删除,grade表中

                    删除2007123,就可以删除

                    student_id:2007123 

grade:

stuID:2007124  插入失败

stuID:2007123  插入成功--》把删掉   python连接mysql需要装pymysql包 pip3 install PyMySQL

py -3 -m pip install pymysql     写一堆参数连接数据

获取游标

执行sql

关闭游标

关闭连接  #encoding=utf-8

import pymysql

import random

def insertData():

conn = pymysql.connect(

host = "127.0.0.1",

port = 3306,

user = "root",

passwd = "123456",

db = "my_test",

charset = "utf8")

cur = conn.cursor()

conn.select_db(‘my_test‘)

courseList = [‘python‘, ‘java‘, ‘mysql‘, ‘linux‘, ‘接口测试‘, ‘性能测试‘, ‘自动化测试‘,‘数据结构与算法‘]

for i in range(1, 101):

student_id = ‘201603‘ + ‘0‘ * (3 - len(str(i))) + str(i)

name = random.choice([‘Lucy‘,‘Tom‘,‘Lily‘,‘Amy‘,‘Dave‘,‘Aaron‘,‘Baron‘]) + str(i)

tel = ‘1‘ + str(random.choice([3, 5, 7, 8])) + str(random.random())[2:11]

sex = random.choice([‘女‘, ‘男‘])

stuinfo_sql = "insert into studentInfo(student_id, name, sex, tel, AdmissionDate) \

values(‘%s‘, ‘%s‘, ‘%s‘, ‘%s‘, date_sub(now(),interval %s day))" \

%(student_id, name, sex, tel, random.randint(90, 120))

cur.execute(stuinfo_sql)

conn.commit()

for j in courseList:

grade_sql = "insert into grade(stuID,course,score) values(‘%s‘,‘%s‘,%s)" %(student_id,j,random.randint(80, 100))

cur.execute(grade_sql)

conn.commit()

cur.close()

conn.commit()

conn.close()

insertData()

print (u"数据插入结束!")     select count(*) from studentinfo;

相关文章