Python MySQL学习总结

python mysql总结

参考资料1:https://blog.csdn.net/yongheng0852/article/details/79508584

目录

python mysql总结

1、启动服务:

2、显示所有数据库:

5、使用数据库

6、显示所有的表

7、了解数据库:

8、数据库的处理语言

9、对表的数据处理

10、python操作数据库


1、启动服务:

方法一:以开启一个进程的方式开启:

(1)定位到mysqld.exe文件目录,cmd

(2)启动服务进程

(3)关闭服务进程

方法二:开启服务

注意:这个方法必须管理员身份运行cmd

(1)net start 服务名(开启服务)

(2)net stop 服务名(关闭服务)

方法三:任务管理器

右键开启就行,关闭一样

方法四:管理-->服务

2、显示所有数据库:

show databases;    --显示所有的数据库

注意:下面这三个数据库是系统数据库,一定不要修改

3、创建数据库

create database 数据库名 charset='utf8';  --创建数据库兼容utf8的字符集

show databases;    --查看有没有创建数据库

4、删除数据库

drop database 数据库名;

5、使用数据库

use 数据库名;

6、显示所有的表

show tables;

7、了解数据库:

  1. 视图view(sql产生一个表,用于简化代码复杂度)
  2. 存储过程(函数)------》减少了数据库的编译过程,直接将编译好的指令给数据库处理
  3. 触发器 trigger

常用数据库的处理过程:app 发送一个sql给数据库,数据库先检验sql语句的规范性,然后编译sql语句,执行sql语句,返回结果给app

8、数据库的处理语言

SQL 结构化查询语言(Structured Query Language):

  • DCL 数据控制语言(GRANT,REVOKE)
  • DDL 数据定义语言(创建表)
  • DML 数据操作语言(增删改查)
  • TCL 事务处理语言(COMIT,ROLLBACK,SAVEPOINT)
  • DQL 数据查询语言 (SELECT)
  • CCL 指针控制语言

9、对表的数据处理

----建表:

create table if not exists 表名(字段名1 数据类型 约束 , 字段名2 数据类型 约束 );
注释:约束:主键,序列(不允许重复unique),默认值default,核查(数据检查),not null

  (1)创建一个用户表

查看表结构:

eg:创建一个成绩表

create table t_score(id int auto_increment primary key not null,

                    xm varchar(20) not null,

                    shuxue int not null ,

                    yuwen int not null,

                    yingyu int not null);

----添加数据

insert into 表名(字段1,字段3,。。。) values (value1,value3,。。。)

注意:插入哪个字段,字段列表中写哪个字段。这儿字段次序无所谓,几个也无所谓

insert into 表名 values (所有字段值)

注意:这个就得把所有字段值一一写上了

eg:

insert into t_user(uname,upwd) values('zs','1234');

commit; #提交 (手动提交,一般都是自动提交了)

----扩展:

事务处理语言:https://blog.csdn.net/moxigandashu/article/details/62046030

  • commit; 提交
  • rollback; 回滚(一般应用于多表操作的时候,如果一个表操作成功,另外一个表的操作失败,这个时候就需要把数据回滚)
  • savepoint 回滚点
  • begin; 用于事物处理的开始

eg:

--删除数据

delete from 表名; #删除这个表数据,保留了表结构,会做日志,能回滚

delete from 表名 where 条件 #删除满足条件的数据

条件:> >= < <= = != <>

truncate table 表名; #删除表中所有的数据,保留了表结构,但是不会做日志,不能回滚

drop table 表名; #直接删除整张表以及表结构

eg:

--修改数据:

update 表名 set 字段1 =值1,字段3 =值3。。。; #修改所有数据

update 表名 set 字段1 =值1,字段3 =值3。。。 where 条件;; #修改满足条件的数据

eg:

10、python操作数据库

(1)创建一个新的虚拟环境

(2)安装模块

方法一:setting-->Project Interpreter-->右上角 + 号

方法二:--pip install pymysql    #(不用大写)

注意:使用pip list 查看当前环境所有模块

  (3)python代码

A----查看主机名:

B----Python 代码

#导包
import pymysql

#创建数据库的连接
# 1、conn = pymysql.connect(主机名,端口号,用户名,密码,数据库,字符集)
conn = pymysql.connect(host='localhost',port=3306,user='root',
                       password='root',db='person',charset='utf8')
print('conn类型:',type(conn))  #110测试

#2、创建游标---相当于一个指针(指向所有记录的最前边)
cursor = conn.cursor()

#3、通过游标去运行sql
try:
        # ====操作1:创建表======
        # --返回受影响的行数
        rows = cursor.execute('create table if not exists t_temp(a varchar(10) primary key)')
        print('受影响的行数为:',rows)  #110测试

        # =====操作2:插入数据======
        rows = cursor.execute("insert into t_temp values('aaa')")
        print(rows)  #110测试

        # =====操作3:删除数据=====
        rows = cursor.execute("delete from t_temp where a = 'aaa'")
        print(rows)  #110测试

        # =====操作4:插入大量数据=====
        for i in range(1000,1001):
            rows = cursor.execute("insert into t_temp values('aaaa%s')"%(str(i+1)))
            print(rows)  #110测试
            if i % 1000 == 0:
                conn.commit()

        # ======操作5:查询数据=======cursor是一个前进型的游标,不能向前走
        rows = cursor.execute("select * from t_temp")
        print(rows) #110测试

        rs = cursor.fetchone()  #读一行,游标指向下一个位置
        print(rs)  #110测试

        rss = cursor.fetchall()  #读取所有行,二维元组
        print(rss)  #110测试

        rsm = cursor.fetchmany(5)  #取得检索结果的n条数据
        print(rsm)  #110测试

        # 操作6:
        cursor.scroll(1,mode='absolute')  #绝对位置:游标指向下标为1位置
        cursor.scroll(-1,mode='relative')   #相对当前位置,-1的位置

        # 操作7:测试lastrowid   只有在新插入数据的时候,返回自增ID的值,
        #       如果只是查询,返回None,其余为0(如果没有自增主键也为0)
        lastrowid = cursor.lastrowid
        print(lastrowid)

        print('==》',cursor.fetchall())  #110测试

        #---提交----
        conn.commit()   #提交
except Exception as e:
    print(e)
    conn.rollback()   #回滚--当报错的时候
else:
    print('execute Ok!')
finally:
    #关闭游标
    cursor.close()

    #关闭这个连接
    conn.close()


 

猜你喜欢

转载自blog.csdn.net/feifeiyechuan/article/details/84144530