zoukankan      html  css  js  c++  java
  • 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 -hIP地址 -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;
  • 相关阅读:
    qt5--创建控件的两种方式
    qt5-编码转换
    C++qt助手assistant
    C++opencv绘制几何图形
    C++opencv创建图像
    【全球软件大会】华为前端工程师分享:华为云官网的智能化实践
    图解 Redis丨这就是 RDB 快照,能记录实际数据的
    云小课 | 玩转HiLens Studio之快速订购HiLens Studio版本
    带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式
    线性表、顺序表和链表,你还分不清?
  • 原文地址:https://www.cnblogs.com/suitcases/p/10680370.html
Copyright © 2011-2022 走看看