美文网首页
MySQL基础 - MySQL视图和索引 、 python操作M

MySQL基础 - MySQL视图和索引 、 python操作M

作者: 莫名ypc | 来源:发表于2018-11-22 19:28 被阅读0次

关系型数据库如何保证数据的完整性

1.实体完整性

每一条记录都是独一无二的没有冗余数据 - 主键/唯一索引

2.参照完整性/引用完整性

外键

3.领域完整性

没有无效的数据 - 数据类型 / 非空约束 / 默认值约束 / 检查约束

创建索引

create index idx_emp_ename on tbemp(ename);

删除索引

alter table tbemp drop index idx_emp_ename;

注意:表的索引相当于一本书的目录,它可以加速查询
但是索引会让增删改变得更慢 因为增删改数据时索引也需要更新
所以索引要建在经常被用作查询筛选条件的列上

python操作MySQL

导入pymysql模块
连接数据库插入多条数据

import pymysql


def main():
    # 1.创建连接(主机、端口、用户名、口令、数据库名)
    con = pymysql.connect(host='localhost',
                          port=3306,
                          user='root',
                          password='123456',
                          database='HRS',
                          charset='utf8',
                          autocommit=True)
    try:
        # 2.获取游标
        with con.cursor() as cursor:
            # 3.游标对象的executemany方法可以一次执行多个SQL操作
            # 相当于是以批处理的方式执行SQL(比一个个执行单条SQL效率更高)
            result = cursor.executemany(
                'insert into tbdept values (%s,%s,%s)',
                ((50, '研发2部', '深圳'),
                 (60, '销售3部', '广州'),
                 (70, '运维2部', '上海'))
            )
            # 4.处理服务器返回的信息
            print(result)
    except pymysql.MySQLError as e:
        print(e)
        con.rollback()
    finally:
        # 5.关闭连接释放资源
        con.close()


if __name__ == '__main__':
    main()

python连接数据库查询记录

import pymysql


class Dept(object):

    def __init__(self, no, name, loc):
        self.no = no
        self.name = name
        self.loc = loc

    def __str__(self):
        return f'{self.no}\t{self.name}\t{self.loc}'


def main():
    con = pymysql.connect(
        host='localhost',
        port=3306,
        user='root',
        password='123456',
        database='hrs',
        charset='utf8',
        cursorclass=pymysql.cursors.DictCursor
    )
    try:
        with con.cursor() as cursor:
            cursor.execute('select dno no, dname name, dloc loc from tbdept')
            depts = cursor.fetchall()
            for dept_dict in depts:
                dept = Dept(**dept_dict)
                print(dept)
    except pymysql.MySQLError as e:
        print(e)
    finally:
        con.close()


if __name__ == '__main__':
    main()

Redis内存数据库 - KV数据库

Redis提供了两种数据持久化数据的方案:
RDB - 周期性将内存数据写入dump文件
AOF - Append Only File - 把执行过的命令保存起来

Redis - 缓存(热点数据) / 队列

通过配置文件启动Redis服务

redis-server redis.conf > redis.log &

配置信息:

端口号

port 6379

绑定主机ip

bind 1.2.3.4

AOF

appendonly yes

设置密码

requirepass 123456

简单命令:

插入键值对

set key value

通过key取到value

get key

设置数据存货存活时间

set key value ex 10

查看数据存活时间

ttl key

查看数据库数据大小

dbsize

查看所有数据的key

keys *

查看指定key

keys key

保存数据

save

后台保存数据

bgsave

删除记录

del key

清空所有数据

flushall

退出数据库(默认保存)

shutdown

退出时不保存

shutdown nosave

相关文章

  • MySQL基础 - MySQL视图和索引 、 python操作M

    关系型数据库如何保证数据的完整性 1.实体完整性 每一条记录都是独一无二的没有冗余数据 - 主键/唯一索引 2.参...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • 5.2MySQL创建高性能索引考察点

    MySQL索引的基础和类型延伸:MySQL索引的创建原则延伸:MySQL索引的注意事项 索引的基础索引类似于书籍的...

  • 第二十章 Python3 操作 MySQL

    操作 MySQL 一、基本介绍 Python3 操作 MySQL 数据库 可以使用的模块是 pymysql 和 M...

  • Mysql 相关

    MySQL索引 MySQL索引背后的数据结构及算法原理 覆盖索引和回表操作 MySQL性能优化 MySql表分区详...

  • mysql高级:视图、事务、索引

    # mysql高级:视图、事务、索引 * 视图 * 事务 * 索引 * 账户管理 * 主从 ## 1.视图 动态抽...

  • DataWhale Mysql Task2 2019-04-03

    DataWhale Mysql Task2 2.1 MySQL 基础 (二)- 表操作 项目三 项目四 2.2 M...

  • 索引 - MySQL / NoSQL

    文集主页 Ubuntu 安装 MySQL 和 mysqlclientMySQL 基本操作MySQL 约束与索引My...

  • 【转】MySQL索引操作命令小结

    MySQL索引操作命令小结 这篇文章主要介绍了MySQL索引操作命令小结,本文讲解了创建索引、查询索引、删除索引等...

网友评论

      本文标题:MySQL基础 - MySQL视图和索引 、 python操作M

      本文链接:https://www.haomeiwen.com/subject/wmmkqqtx.html