MySQL学习笔记:基础应用总结

一、什么是数据库?

  1、数据库是按照数据结构来组织、存储和管理数据的仓库。每个数据库都提供API用于创建、访问、管理、搜索和复制所保存的数据。

  2、数据库的数据表之间有关联关系,我们称为关系型数据库,常见的关系型数据库有:Mysql,Sqlserver,Oracle等,Mysql是开源的,也是重点要掌握的。

  3、一些基本术语:主键,外键,复合键,索引,参照完整性,冗余(为了避免频繁多表查询,而在一张表中添加的在别的表中已经存在的列)等。

二、数据库按照,参考这个文章:

  https://blog.csdn.net/bobo553443/article/details/81383194

三、查询,试一下

  1、inner join 内连接,求完全相等的集合  

  2、left join 左连接,以左表为准的集合

  3、right join 右连接,以右表为准的集合

  4、left join unite right join  左右连接,左右表的并集

四、数据类型

五、创建表

六、增删改查语句

七、外键关联和联表查询

八、事务:

  1、定义:将多个步骤做捆绑的统一的处理,或者同时操作,或者同时不操作,就叫事务

  2、只有使用InnoDB数据库引擎才支持事务

  3、事务的四个特性:

    > 原子性:同时操作,或者同时操作,或者同时不操作

    > 稳定性:遇到约束比如外键则全部退回。

    > 隔离性:事务独立运行,一个事务的处理结果影响其他事务那么其他事务会撤回。事务100%隔离需要牺牲速度。

    > 可靠性:软硬件奔溃后,InnoDB会利用日志文件重构修改。可靠性和效率不可以兼得。

九、索引:

  1、定义:让数据表的检索速度变得更快,主键只有一个,但是可以对多个字段做索引。

  2、注意:

    > 索引其实也是一张表,如果只建立的索引,没有使用,那么索引依然没有发挥作用,比如你将身份证号和姓名做了索引,但是查询的时候仅查询居住地址,那么还是依然采用效率很低的遍历方式。

    > 索引会降低数据库整体速度,比如你在insert,update,delete一个索引列的原值时,mysql会同时更新索引表中的数据使其重新排序,那么如果操作的频繁了就会降低数据库整体速度。

    > 创建唯一索引,索引的值必须是唯一的,主键就是唯一索引,联合索引也是要确保多个字段的组合是唯一的

十、通过python操作数据库

  1、安装pymysql组件:可以在pycharm中直接安装

  2、操作的代码如下:

import pymysql
con = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="xxx", db="tangwei")
try:
    # 创建游标
    cursor = con.cursor()
    # 执行sql,并返回影响的行数,execute执行一行SQL语句
    # effect_row = cursor.execute("UPDATE `tangwei`.`user` SET `name` = 'tangwei12' WHERE (`id` = '1');")

    # 多行提交,update和delete操作也是同理
    effect_row = cursor.executemany("insert into user(name,sex) values (%s,%s)", [('name5', 'W'), ('name6', 'N')])
    # 默认是打开事务的,所以最后都要提交下,不然是不会插入成功
    con.commit()

    effect_row = cursor.execute("select * from user")

    # 查询的代码
    print(effect_row)
    for i in range(effect_row):
        print(cursor.fetchone())
finally:
    con.close()

 

posted @ 2020-05-29 09:48  卡吧不死机  阅读(215)  评论(0编辑  收藏  举报