zoukankan      html  css  js  c++  java
  • Python-数据库(编程)

    1、数据库概念

      数据库:按照数据结构来组织,存储,管理数据的仓库

      按照数据模型分类:网状数据库,层次数据库,关系型数据库。

      层次数据库:

        以树形结构表示实体及其之间的联系,关系只能支持一对多。(IBM 的 IMS)

    2、去IOE

      IT架构中,去掉IBM 的小型机,Oracle数据库, EMC存储设备,取而代之使用自己在开源软件基础上开发的系统。

      去IOE 转而使用廉价的架构,稳定性一定下降,需要较高的运维水平解决。

    3、NoSQL

      NoSQL是对非SQL,非传统关系型数据库的统称。

      NoSQL:非关系型,非分布式,不提供ACID 的数据库设计模式。

      目前常用的数据库:

        

        redis:内存数据库,键值存储,v 可以是任何类型
        memcached:一般用来session同步,k-v的v只能是string
        MongoDB:文档数据库,非内存的

        处理大数据:
          cassandra:列存储数据库,不限制列数,可以根据具体情况增加列数
          HBase:列数据库

        搜索引擎:
          Elasticsearch: 倒排索引(反过来查),索引库
          Solr:大数据上使用

        HIve:大数据中的,类似于数据仓库,已经开始属于NoSQL领域
          支持SQL,所以可以认为是关系型

        SQL:大数据领域的唯一语言
        非传统的 关系型数据库,统称为NoSQL

    4、MySQL

      MySQL 是一种关系型数据库管理软件,支持网络访问,默认服务端口 3306

      MySQL 通信使用mysql协议

      SQL语句:

        SQL是结构化查询语言,Structured Query Language 1987被ISO 组织标准化

        所谓主流的关系型数据库都支持SQL, NoSQL也有很大一部分支持SQL

        SQL语句分为
          DDL 数据定义语言:复制数据库定义,数据库对象定义,由CREATE,ALTER与DROP三个语法组成

          DML 数据操作语言,负责对数据库对象的操作,CRUD增删改查

          DCL 数据控制语言:负责数据库权限访问控制,由GRANT 和REVOKE 两个指令组成

          TCL 事务控制语言:负责处理ACID 事务,支持commit, rollback指令

        SQL语句 不区分大小写

        SQL语句末尾应该使用分号结束

    5、约束:

      primary key :主键,一般表中的一个字段或者多个字段设置为主键,或者联合主键,主键的列不能包含空值null,主键一般是整形,长整形,且自动增长,一般表中都有主键

      unique key :唯一键,可以为空,但是不为空的不可重复。

      约束 Constraint

        定义了主键,就有主键约束

        定义了唯一键约束,就有唯一键约束

        外键约束:

          外键:在表B 中的列,关联表A 中的主键 ,表B中的列就是外键

          A表称为主表,B表称为从表

          插入规则:

            不要定义

            如果在表B中插入一条数据,B的外键列插入了一个值,这个值必须是表A中存在的主键值

            更新规则:

            定义外键约束时指定该规则

            删除规则:

            定义外键约束时指定该规则:

            外键约束的操作:(这四个值,定义在从表中,如果主表修改,从表如果设置了,就会影响主表,让不让主表删,删了,影响不影响从表)

            CASCADE:从父表删除或更新会自动删除或更新字表中匹配的行。

            SET NULL :从父表删除或更新行,会设置子表中的外键列为NULL,但必须保证子表列没有指定NOT NULL,

            RESTRIC:如果从父表删除主键,如果子表引用了,则拒绝对父表的删除或更新操作

            NO ACTION:标准SQL的关键字,在MySQL中与RESTRIC相同,拒绝对父表的删除或更新操作。

            外键约束,是为了保证数据完整性,一致性,杜绝数据冗余,数据讹误

    6、视图:    

      视图,也称为虚表,查询语句生成的,可以通过视图进程CRUD操作

      视图的作用:

        简化操作,将复杂查询SQL语句定义为视图,可以简化查询

        数据安全,视图可以只显示真实表的部分列,或计算后的结果,从而隐藏真实表的数据 

    7、数据类型:

      

      

      LENGTH函数返回字节数,

      char 可以将字符串变成等长,这样每个偏移量是一样的,空间换时间,效率极高varchar变长。

      

    8、关系操作:

      关系:在关系数据库中,关系就是二维表

      关系操作就是对表的操作

      选择:又称为限制,是从关系中选择出满足给定条件的元组

      投影:在关系投影就是从选择出若干属性列组成新的关系

      连接(join):将不同的两个关系连接成一个关系

    9、DML---CRUD增删改查

      INSERT INTO log (id,name, logname, password) VALUES(1,'jack', 'jakc', 'kacl') ON DUPLICATE KEY UPDATE name='lucy';

      如果主键,唯一键冲突,就执行update后面的设置。

      INSERT IGNORE INTO log (id) VALUE(1);

      如果主键,唯一键冲突,就忽略

     10、连接 join

     1 BOLB:一般对于图片等数据,都放在磁盘中,把路径(一般相对路径)放在数据库中
     2 text:一般不会把文件放在数据库中,查找非常麻烦,,一般选择搜索引擎数据库,如 ES等
     3 
     4 join:
     5     coross join = inner join, 需要写条件,重复列,不会去掉(join,默认就是inner)
     6     nature join 一般不怎么用,它是利用主键,不需要写条件,并且过滤掉重复项
     7 
     8  9 
    10     left join:从左表的每一项都存在,且都到右表找,没有的,就用NULL(悬空)

    11、事务Transaction

      隔离级别:

    12、数据仓库和数据库的区别:

    为什么要坚持,想一想当初!
  • 相关阅读:
    SQL 高级查询(层次化查询,递归)
    IntelliJ IDEA添加注释常用的快捷键
    java配置环境变量
    Python单例模式的4种实现方法 ++ redis pool的一种单例实现方式
    MYSQL安装配置文件my-small.ini、my-medium.ini、my-large.ini、my-huge.ini文件的作用
    flask中使用flask-sqlalchemy
    Python向Mysql写入时间类型数据
    [慢查优化]慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时
    Cocos2d-x 3.2 创建新应用
    In-App Purchase Programming Guide----(六) ----Working with Subscriptions
  • 原文地址:https://www.cnblogs.com/JerryZao/p/9926146.html
Copyright © 2011-2022 走看看