ParisGabriel
 
 
         每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰
 
  开局一张图
 
 
表字段重命名(change)
  alter table 表名 change 原名 新名 数据类型;
 
SQL查询
 
执行顺序:
    3. select ...聚合函数 from 表名
    1. where ...
    2. group by...
    4. having...
    5. order by...
    6. limit...
group by 语句
   作用:给查询结果进行分组
   注意:
     1.group by之后字段必须要select之后字段
     2.如果select之后的字段和group by 之后的字段不一致,则必须
       字段进行聚合处理(聚合函数)
having 语句
   作用:对查询结果进一步筛选
   注意:
      1.having语句通常和group by联合使用过滤group by语句返回的记录集
      2.where只能操作表中实际存在的字段having by可操作由聚合函数生成的显示列
distinct
   作用:不显示字段重复值
   注意:
      1.distinct和from之间所有字段都相同 才会去重
      2.distinct不能对任何字段做聚合处理
 运算符:
      +     -    *    /    %
   ## sudo apt-get install python3-pip     安装pip3
   ## sudo pip3 install pymysql                安装mysql
 
  约束:
   1.作用保证数据完整性、一致性、有效性
   2.约束分类
        1.默认约束(default)
              插入字段给该字段赋值 则使用默认值
        2.非空约束(not NULL)
             不允许该字段值有NULL记录
             sex enum(“M”,"F","S") not null defaulf "S"
索引
  定义:
    对数据库表色一列或多列的值进行排序的一种结构
    (Btree方式)
 

 
  优点:
     加快数据的检索速度
  缺点:
     1.需要占用物理存储空间
     2.当对表中数据更新时,索引需要动态维护降低
       数据维护速度 占用系统资源
运行时间检测:
   开启:set profiling=1;
   关闭:set profiling=0;
   查询MySQL变量:show variables like profiling;
   查询执行记录:show profilings;
字段创建索引:
    create index name on t1(字段名);
索引的分类:
    1.普通索引(index)
       使用规则:
            1.可设置多个字段
            2.字段值无约束
            3.key标志:MUL
       创建index
            创建表时创建
            create table(....
              ...
             index(字段名),
             index(字段名2)...)
       已有表添加index
             create index 索引名 on 表名(字段名);
       查看索引:
            1.desc 表名;   key:MUL
            2.show index from 表名
            3.show index from\G;
       删除索引:
            drop index 索引名 on 表名;
    2.唯一索引(unique)
       使用规则:
            1.可以设置多个字段
            2.约束:字段值不允许重复,但可以为NULL
            3.key标志:UNI
       创建unique:
          1.创建表时创建
             unique(字段名),..
          2.已有表
               create unique index 索引名 on 表名(字段名);
       查看、删除 和普通索引一致
          
    3.主键索引(primary key)
          自增属性(auto_increment,配合主键一起使用
       使用规则:
           1. 只能有一个主键字段
           2. 约束:不允许重复,且不能为NULL
           3.key标志:PRI
           4.通常设置记录编号字段id,能唯一锁定一条记录
       创建primary key
         创建表时:
           1.id int primary key auto_increment,
           2.起始值:表()auto_inctement=10000;
        已有表:
            alter table 表名 add primary key(id);
            添加:alter table 表名 modify id int auto_inctement;
       删除:
          1.删除自增属性(modify)
              alter table 表名 modify id int;
          2.删除主键索引
              alter table 表名 drop primary key;
 
    4.外键索引........
算法全是btree 节省时间都一样  不同的是约束不同
 
这里btree 算法 有人说btree就是btree 不是二叉树  但是我觉得就是二叉树 没什么区别
根据数据量的大小 提升速度  快能达到几百倍的提速
 
 
数据导入:
   作用:
      把文件系统的内容导入到数据库
   语法:
     load data  infile “文件名”
     into table 表名
     fields terminated by “分隔符”
     lines terminated by “\n”;
步骤:
       1.数据库创建对应
       2.把文件拷贝到数据库的默认搜索路径
          1.查看默认路径 
              show variables like “secure_file_priv”;
              /var/lib/mysql-files/
          2.拷贝文件
              sudo cp ~/scoretable.csv /var/lib/mysql-files/
       3.把表导入到数据库
数据导出:
   作用:
     数据库中表的记录导出到系统文件里
   语法:
      select ... from 表名
      into outfile “/var/lib/mysql-files/文件名”
      fields terminated by “分隔符”
      lines terminated by “\n”;
步骤:
    1.直接执行导出命令
    2.自动创建文件
    3.默认导出到默认搜索路径
 
 
  文件权限:
       rwxrw-rw- 1 tarena tarena 
                            所有者 所属组
        rwx:tarena用户
        rw-:同组其他用户
        rw-:其他组的用户(mysql)
           r:  4
           w:  2
           x:  1
           最高权限:7
     查看权限:ls -l 文件名
        修改文件权限:chmod  644 文件名
 
Excel表格如何化为CSV文件
        打开Excel文件 -> 另存为 -> CSV(逗号分隔)
更改文件编码格式
        用记事本/编辑器 打开,文件->另存为->选择编码
 
 
导入示例:

 

将scoretable.csv文件导入到数据库的表中
1、在数据库中创建对应的表
create table scoretab(
id int,
name varchar(15),
score float(5,2),
number bigint,
class char(7)
);
2、把文件拷贝到数据库的默认搜索路径中
1、查看默认搜索路径
show variables like "secure_file_priv";
/var/lib/mysql-files/
2、拷贝文件
sudo cp ~/scoretable.csv /var/lib/mysql-files/
3、执行数据导入语句
load data infile "/var/lib/mysql-files/scoretable.csv"
into table scoretab
fields terminated by ","
lines terminated by "\n";

导出示例:

把MOSHOU库下的sanguo表英雄的姓名、攻击值、国家导出来,sanguo.txt

    select name,gongji,country from MOSHOU.sanguo
into outfile "/var/lib/mysql-files/sanguo.txt"
fields terminated by " "
lines terminated by "\n"; 将mysql库下的user表中 user、host两个字段的值导出到 user.txt select user,host from mysql.user
into outfile "/var/lib/mysql-files/user.txt" fields terminated by " "
lines terminated by "\n"; 查询
$ sudo -i
$ cd /var/lib/mysql-files/
$ ls
$ cat sanguo.txt

Python全栈 MySQL 数据库 (索引、数据导入、导出)的更多相关文章

  1. Python全栈 MySQL 数据库 (引擎、事物、pymysql模块、orm)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图     存储引擎(处理表的处理器)     基本操作:         ...

  2. Python全栈 MySQL 数据库(SQL命令大全、MySQL 、Python调用)

    为了梦想与了信仰    开局一张图   主要三个方面: 1.Linux终端命令 2.MySQL语句 3.Python调用   先删库 再跑路.....                         ...

  3. Python全栈 MySQL 数据库 (简述 、安装、基本命令)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图     一个月的python已经结束了  下面就是数据库了   先说M ...

  4. Python全栈 MongoDB 数据库(数据的修改)

    修改操作符的使用   $set 修改一个域的值,增加一个域   阿哲年龄修改为33 db.class1.update({name:'阿哲'},{$set:{age:33}})   如果sex域不存在则 ...

  5. Python全栈 MySQL 数据库 (SQL查询、备份、恢复、授权)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图   今天接着昨天的说   索引有4种:      普通 索引 :ind ...

  6. Python全栈 MongoDB 数据库(数据的查找)

      非关系型数据库和关系型数据库的区别? 不是以关系模型构建的,结构自由 非关系型数据库不保证数据一致性 非关系型数据库可以在处理高并发和海量数据时弥补关系数据库的不足 非关系型数据库在技术上没有关系 ...

  7. Python全栈 MySQL 数据库 (表字段增、删、改、查、函数)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图         查询SQL变量 show variables 1.表字 ...

  8. Python全栈 MongoDB 数据库(概念、安装、创建数据)

    什么是关系型数据库?           是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,             同时也是一个被组织成一组拥有正式描述性的表格( ...

  9. docker中mysql数据库的数据导入和导出

    导出数据 查看下 mysql 运行名称 docker ps 结果:  执行导出(备份)数据库命令: 由第一步的结果可知,我们的 mysql 运行在一个叫 mysql_server 的 docker ...

随机推荐

  1. 软件架构中的SOA架构有哪些特点?

    面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互. SOA是一 ...

  2. js 实现链表

    我们通常会在c++这类语言中学习到链表的概念,但是在js中由于我们可以动态的扩充数组,加之有丰富的原生api.我们通常并不需要实现链表结构.由于突发奇想,我打算用js实现一下: 首先我们要创建链表: ...

  3. 配置伪静态(URL重写)

    本篇借鉴了很多文章,这里做个记录. 有时我们的导航栏出现xx.aspx?id=x&name=xx 等等这样,会显得不好看,我们可以利用伪静态来美化我们的导航栏,伪静态的形式可以自己定义,本质还 ...

  4. How good are detection proposals, really?

    How good are detection proposals, really? J. Hosang, R. Benenson, B. Schiele Oral at BMVC 2014 http: ...

  5. open cv & vs

    原来基于vs和msdn一起读视频,结果发现现在的函数不能用了.找不到合适的解码器了,只好转战opencv. 具体怎么用,网上查吧,不过opencv读视频的例子,可以见这个. http://blog.c ...

  6. 2.Netty的粘包、拆包(一)

    Netty粘包.拆包 1.什么是拆包.粘包 (1)拆包.粘包介绍 TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其间并没有分界线.TC ...

  7. SAP标准导出功能 - 删除默认选定格式

    我们经常会使用SAP系统的标准功能导出ALV显示的数据,一般会选择电子表格. 选择电子表格之后,需要选择电子表格的具体格式. 选择格式之后点击确定,会弹出保存对话框. 如果在使用这个功能的时候,选择了 ...

  8. BeanUtils工具的实现

    BeanUtils工具的实现 自定义一个将数据映射到类里的方法 方法一: package utils; import java.lang.reflect.Field; import java.lang ...

  9. 【JavaScript高级程序设计】6.1 理解对象

    上一章曾经介绍过,创建自定义对象的最简单方式就是创建一个Object 的实例,然后再为它添加属性和方法,如下所示. var person = new Object(); person.name = & ...

  10. JZOJ 3534. 【NOIP2013提高组day1】货车运输

    Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的 ...