认知mysql(3)

发布时间:2019-11-09  栏目:sqlite  评论:0 Comments

认知mysql第三篇,发出的从头到尾的经过相符初行家,假诺能不断关注自己的博客,能够周到的主宰mysql的常用知识,后续小编也会陆陆续续发生python相关的文化,关切自个儿,和本身一齐升高呢!

—恢复生机内容初阶—

1、SQL查询
  1、试行顺序
    3、select …聚合函数 from 表名
      1、where …
      2、group by …
      4、having …
      5、order by …
      6、limit …
  2、group by
    1、效率 :给查询结果开展分组
    2、示例
      1、查询表中累积有几个国家

1、MySQL概述

      2、总结各类国家的平分攻击力
      select country,avg(gongji) from sanguo
      group by country;
    3、查找全部国家中勇于数量最多的前2名的 国家名称和勇敢数量
      select country,count(id) as number from sanguo
      group by country
      order by number desc
      limit 2;
3、注意
  1、group by之后的字段名必定要为select之后的字段名
  2、假若select之后的字段名和group
by之后的字段不雷同,则必得对该字段实行联谊管理(聚合函数)
  3、having语句
1、作用
对查询的结果实行特别筛选
2、示例
  1、寻觅平均攻击力>105的国度的前2名,展现国家名和平均攻击力
  select country,avg(gongji) as pjgj from sanguo
  group by country
  having pjgj>105
  order by pjgj DESC
  limit 2;
3、注意
  1、having语句常常和group by语句联合利用,过滤由group
by语句重返的记录集
  2、where只可以操作表中实际存在字段,having可操作由聚合函数生成的体现列
4、distinct
  1、作用 :不显得字段重复值
  2、示例
1、表中都有如何国家
  select distinct country from sanguo;
2、总括秦朝少年老成共有多少个大胆
  select count(distinct id) from sanguo
  where country=”蜀国”;
3、注意
  1、distinct和from之间全体字段都相通才会去重
  2、distinct不可能对其余字段做聚合管理
5、查询表记录时做数学生运动算
1、运算符
  + – * / %
2、示例
1、查询时全数胆大攻击力翻倍
select id,name,gongji*2 as gj from sanguo;

  1.什么样是数据库?

## sudo apt-get install python3-pip
## sudo pip3 install pymysql
2、约束
  1、作用 :保障数据的完整性、一致性、有效性
2、约束分类
  1、暗中认可节制(default)
  1、插入记录,不给该字段赋值,则利用暗中同意值
2、非空节制(not NULL)
  1、分歧意该字段的值有NULL记录
  sex enum(“M”,”F”,”S”) not null defalut “S”

  存储数据的库房

3、索引
  1、定义
  对数据库表的一列或多列的值实行排序的风流倜傥种结构(Btree方式)
  2、优点
  加速数据检索速度
3、缺点
  1、占用物理存款和储蓄空间
  2、当对表中数量更新时,索引要求动态维护,降低数据爱护速度
4、索引示例
  1、开启运行时刻检测 :set profiling=1;
  2、推行查询语句
  select name from t1 where name=”lucy99999″;
3、查看实施时间
  show profiles;
4、在name字段创建索引
  create index name on t1(name);
5、再实行查询语句
  select name from t1 where name=”lucy88888″;
6、查看奉行时间
  show profiles;
5、索引
1、普通索引(index)
1、使用法规
1、可安装几个字段
2、字段值无束缚
3、key标志 :MUL
2、创建index
1、成立表时
  create table 表名(…
  index(字段名),index(字段名));
2、已有表
  create index 索引名 on 表名(字段名);
  create index name on t3(name);
3、查看索引
  1、desc 表名; –> KEY标志为:MUL
  2、show index from 表名\G;
  4、删除索引
  drop index 索引名 on 表名;
2、独一索引(unique)
  1、使用法则
    1、可设置多少个字段
    2、节制 :字段值不允许再一次,但可为 NULL
    3、KEY标志 :UNI
    2、创建
    1、创造表时创办
    unique(字段名),
    unique(字段名)
2、已有表
  create unique index 索引名 on 表名(字段名);
3、查看、删除 同普通索引
3、主键索引(primary key)
自增进属性(auto_increment,同盟主键一同行使)
1、使用法则
1、只可以有一个主键字段
2、约束 :不允许再度,且不可能为NULL
3、KEY标志 :PRI
4、日常设置记录编号字段id,能唯意气风发锁定一条记下
2、创建
1、创造表时
  (id int primary key auto_increment,
  )auto_increment=10000;##安装自拉长初叶值
原来就有表增加自增加属性:
  alter table 表名 modify id int auto_increment;
本来就有表重新钦命开端值:
  alter table 表名 auto_increment=20000;
2、已有表
  alter table 表名 add primary key(id);
3、删除
1、删除自增进属性(modify)
  alter table 表名 modify id int;
2、删除主键索引
  alter table 表名 drop primary key;
4、外键索引
4、数据导入
1、功用 :把文件系统的开始和结果导入到数据库中
2、语法
load data infile “/var/lib/mysql-files/文件名”
into table 表名
fields terminated by “分隔符”
lines terminated by “\n”;
3、将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”;
4、文件权限
rwxrw-rw- 1 tarena tarena scoretable.csv
所有者 所属组
rwx : tarena用户
rw- : 同组别的客商
rw- : 别的组的其余客户(mysql顾客)

  2.都有何公司在用数据库?

r -> 4
w -> 2
x -> 1
chmod 644 文件名 rw-r–r–
5、Excel表格如何转变为CSV文件
1、张开Excel文件 -> 另存为 -> CSV(逗号分隔)
6、校勘文件编码格式
1、用记事本/编辑器 展开,文件->另存为->选取编码
5、数据导出
1、作用
将数据库中表的记录导出到系统文件里
2、语法格式
select … from 表名
into outfile “/var/lib/mysql-files/文件名”
fields terminated by “分隔符”
lines terminated by “\n”;
3、把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”;
$ sudo -i
$ cd /var/lib/mysql-files/
$ ls
$ cat sanguo.txt
4、将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”;

  金融机构、游戏集团、购物网址、论坛网址…

本节完!

  3.提供数据库服务的软件?

    1.软件分类

      MySQL、Oracle、SQL_Server、DB2、MongoDB、MariaDB

    2.生育蒙受中,如何筛选采用哪个数据库软件?

      开源:MYSql,Mariadb,MongoDB

      不开源:Oracle,DB2,SQL_Server

    3.小卖部的品种:

      1.买卖数据库:政党部门,金融机构

      2.开源数据库:游戏网址、购物网址、论坛网址…..

  4、MySQL的特点

  1.关系型数据库

    1.关系型数据库特点

      1.数量是以行和列(表格)的款式去存款和储蓄

      2.表中的每风度翩翩行叫一条记下,每一列叫一个字段

      3.表和表之间的雷柏关联叫关系

    2.示例

      1.关系型数据仓库储存款和储蓄

        表1  学子音讯表

        姓名  年龄  班级

        星矢  25     三班

        水冰月 29    六班

        表2  班级音讯表

        班级  班主任  

        三班  大空翼

        六班  松人

      2.非关系型数据库中存款和储蓄

        {“姓名”:”水冰月”,”年龄”:”25″}

    2、跨平台

      能够在Unix,Linux,Windows上运维数据库服务;

    3、扶持多样编制程序语言

      python,java,php,c/c++….

  5、数据库软件。数据库、数据货仓的概念

  1.数据库软件

    二个软件,看得见,可操作,达成数据库的逻辑效率

  2、数据库

    是生龙活虎种逻辑概念,用来存放数据的旅社,侧重存款和储蓄

  3、数据仓库

    从数据量上的话,比数据库宏大的多,首要用于数据深入分析和数目开掘

2、MySQL安装

  1.Ubuntu安装

    安装服务端

      sudo apt-get install mysql-server

    安装客户端

      sudo apt-get install mysql-client

    Ubuntu安装软件   

      1、sudo apt-get update

      访谈源列表中的种种网址,读取软件列表,保存到本地/var/lib/apt/lists

      2、sudo apt-get upgrade

      把地面已设置软件与刚下载的软件列表实行相比,若是开掘已安装版本低则更新

      3、sudo apt-get -f install

      修复信赖关系

3、运转和链接MySQL服务

  1.服务端运营

    1.查看MySQL状态

      sudo /etc/init.d/mysql status

  2、顾客端连接

    1命令格式

      mysql -h主机地址 -u客商名 -p密码

      如:mysql -hlocalhost -uroot -p123456

    2.当地连接可省略 -h选项

      mysql -uroot -p123456

4、基本SQL命令

  1.SQL发令的利用法则

    1.每条命令的施用准则

      1.每条命令必需以;结尾

      2.SQL命令不区分字母大小写

      3.使用\c来终止当前下令的试行

  2.库的治本

    1.库的基本操作

      1.查看本来就有库

      show databases;

      2.创设库(钦赐字符集)

      create database 库名 [character set utf8];

      3.翻看创建库的言语(字符集)

      show create database 库名
      4.翻看当前所在库

      select database 库名;

      5.切换库

      use 库名;

      6.查看库中本来就有库

      show tables;

      7.删除库

       drop database 库名;

    2、库名的命名法则

      1.数字、字母、下划线。但不可能接受纯数字

      2.库名区分字母大小写

      3.不可能利用特殊字符和mysql关键字

    3、练习

      1、成立库testdb,钦定字符集为 utf8

      create database testdb character set utf8;
      2、步入到库 testdb
      use testdb;
      3、查看当前所在库
      select database();
      4、创制库 testdb2,内定字符集为 latin1
      create database testdb2 character set latin1;
      5、步入到库 testdb2
      use testdb2;
      6、查看 testdb2 的字符集(查看创制库的讲话)
      show create database testdb2;
      7、删除库 testdb
      drop database testdb;
      8、删除库 testdb2
      drop database testdb2;

  3、表的治本

    1.表的基本操作

      1.成立表(钦定字符集)

      create table 表名(

      字段名 数据类型,

      字段名 数据类型,

      …

      );

    2、查看原来就有表的字符集
    show create table 表名;
    3、查看表结构
    desc 表名;
    4、删除表
    drop table 表名;

5、Mac安装mysql
  1、cd
  2、vi .bash_profile
  添加 :PATH=”$PATH”:/usr/local/mysql/bin
  3、source .bash_profile

6、表记录管理

  插入(insert)

    1、insert into 表名 values(值1),(值2),…;

    2、insert into 表名(字段1,…) values(值1),…; 

  2、查询(select)
    1、select * from 表名 [where 条件];
    2、select 字段1,字段名2 from 表名 [where 条件];

5、怎么样改良暗中同意字符集

  1、方法(通过转移MySQL配置文件落到实处)

*  2、步骤
    1、获取root权限
      sudo -i
    2、cd /etc/mysql/mysql.conf.d/
    3、备份 :cp mysqld.cnf mysqld.cnf.bak
    4、subl mysqld.cnf
    [mysqld]*

*    character_set_server = utf8
    5、重启mysql服务
    /etc/init.d/mysql restart*

    MAC:/etc/my.cnf

    [mysqld]
    character_set_server = utf8

 6、客户端把多少存款和储蓄到数据库服务器上的进度

*  1、连选择数据服务器 mysql -uroot -p123456
  2、接受贰个库 use 库名
  3、创建表/修改表 update 表名…
  4、断开与数据库连接 exit; | quit; | \q;*

7、数据类型
  1、数值类型
    1、整型
      1、int 大整型(4个字节)
      取值范围 :2**32 – 1(42亿多)
      2、tinyint 微小整型(1个字节)
      1、有符号(signed默认) : -128 ~ 127
      2、无符号(unsigned) : 0 ~ 255
      age tinyint unsigned,
      3、smallint 小整型(2个字节)
      4、bigint 超大整型(8个字节)

     2、浮点型

      1、用法

        字段名 float(m,n)  m->总位数 n->小数位位数

        float(5,2)取值范围? -999.99 ~ 999.99

       2、decimal(最多显示二十几个有效位)

        1、decimal(m,n)

           2、存款和储蓄空间(整数、小数分开积攒)

            准则:将9的倍数包装成4个字节

          示例:decimal(19,9)

          整数有的:10/9=商1余1 4字节+1字节=5字节

          小数部分:9/9=商1余0 4字节+0字节=4字节

          占:9字节

      

  2、字符类型
    1、char(定长)
      1、取值范围:1~255
    2、varchar(变长)
      1、取值范围:1~65535
      2、text / longtext(4G) / blob / longblob(4G)
    3、char和varchar的特点
      1、char :浪费存储空间,质量高
      2、varchar :节省存款和储蓄空间,品质低

 

 

 

 

 

 

 

 

      

—恢复内容甘休—

留下评论

网站地图xml地图