认识mysql(叁)

认识mysql第一篇,发出的始末符合初专家,假若能不断关怀自个儿的博客,能够健全的操纵mysql的常用知识,后续作者也会六续产生python相关的学识,关心自小编,和自己一起进步呢!

1、SQL查询
  一、执行各种
    三、select …聚合函数 from 表名
      1、where …
      2、group by …
      4、having …
      5、order by …
      6、limit …
  2、group by
    1、效用 :给查询结果开展分组
    2、示例
      一、查询表中壹起有多少个国家

      贰、总计每种国家的平均攻击力
      select country,avg(gongji) from sanguo
      group by country;
    三、查找全部国家中勇于数量最多的前2名的 国家名称和敢于数量
      select country,count(id) as number from sanguo
      group by country
      order by number desc
      limit 2;
3、注意
  壹、group by之后的字段名必供给为select之后的字段名
  二、假如select之后的字段名和group
by之后的字段不同,则必须对该字段进行联谊处理(聚合函数)
  3、having语句
1、作用
对查询的结果实行特别筛选
2、示例
  一、找出平均攻击力>十五的国度的前二名,突显国家名和平均攻击力
  select country,avg(gongji) as pjgj from sanguo
  group by country
  having pjgj>105
  order by pjgj DESC
  limit 2;
3、注意
  一、having语句平日和group by语句联合利用,过滤由group
by语句再次回到的记录集
  二、where只可以操作表中其实存在字段,having可操作由聚合函数生成的体现列
4、distinct
  1、功能 :不显得字段重复值
  2、示例
一、表中都有哪些国家
  select distinct country from sanguo;
贰、总结西夏1共某个许个大胆
  select count(distinct id) from sanguo
  where country=”蜀国”;
3、注意
  壹、distinct和from之间有着字段都一律才会去重
  二、distinct无法对别的字段做聚合处理
五、查询表记录时做数学生运动算
1、运算符
  + – * / %
2、示例
1、查询时全部勇于攻击力翻倍
select id,name,gongji*2 as gj from sanguo;

## sudo apt-get install python3-pip
## sudo pip3 install pymysql
2、约束
  一、作用 :有限辅助数据的完整性、一致性、有效性
二、约束分类
  1、暗中同意约束(default)
  一、插入记录,不给该字段赋值,则选取私下认可值
二、非空约束(not NULL)
  壹、不允许该字段的值有NULL记录
  sex enum(“M”,”F”,”S”) not null defalut “S”

3、索引
  1、定义
  对数据库表的一列或多列的值举办排序的一种结构(Btree方式)
  2、优点
  加速数据检索速度
3、缺点
  一、占用物理存款和储蓄空间
  二、当对表中多少更新时,索引须求动态维护,下跌数据尊崇速度
4、索引示例
  一、开启运转时刻检查测试 :set profiling=壹;
  2、执行查询语句
  select name from t1 where name=”lucy99999″;
3、查看执行时间
  show profiles;
4、在name字段创立索引
  create index name on t1(name);
五、再实施查询语句
  select name from t1 where name=”lucy88888″;
陆、查看执行时间
  show profiles;
5、索引
一、普通索引(index)
1、使用规则
一、可设置四个字段
二、字段值无束缚
3、key标志 :MUL
2、创建index
一、创建表时
  create table 表名(…
  index(字段名),index(字段名));
2、已有表
  create index 索引名 on 表名(字段名);
  create index name on t3(name);
三、查看索引
  1、desc 表名; –> KEY标志为:MUL
  2、show index from 表名\G;
  四、删除索引
  drop index 索引名 on 表名;
贰、唯一索引(unique)
  一、使用规则
    一、可设置八个字段
    2、约束 :字段值不允许再一次,但可为 NULL
    3、KEY标志 :UNI
    2、创建
    1、创造表时创立
    unique(字段名),
    unique(字段名)
2、已有表
  create unique index 索引名 on 表名(字段名);
三、查看、删除 同普通索引
三、主键索引(primary key)
自增进属性(auto_increment,同盟主键一起利用)
一、使用规则
一、只好有2个主键字段
二、约束 :不容许再一次,且不可能为NULL
3、KEY标志 :PRI
肆、平常设置记录编号字段id,能唯1锁定一条记下
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、删除
一、删除自拉长属性(modify)
  alter table 表名 modify id int;
2、删除主键索引
  alter table 表名 drop primary key;
四、外键索引
四、数据导入
一、成效 :把文件系统的始末导入到数据库中
2、语法
load data infile “/var/lib/mysql-files/文件名”
into table 表名
fields terminated by “分隔符”
lines terminated by “\n”;
叁、将scoretable.csv文件导入到数据库的表中
一、在数据库中开创对应的表
create table scoretab(
id int,
name varchar(15),
score float(5,2),
number bigint,
class char(7)
);
二、把文件拷贝到数据库的默许搜索路径中
1、查看默许搜索路径
  show variables like “secure_file_priv”;
  /var/lib/mysql-files/
二、拷贝文件
  sudo cp ~/scoretable.csv /var/lib/mysql-files/
三、执行多少导入语句
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用户)

r -> 4
w -> 2
x -> 1
chmod 644 文件名 rw-r–r–
5、Excel表格怎么样转化为CSV文件
一、打开Excel文件 -> 另存为 -> CSV(逗号分隔)
陆、更改文件编码格式
1、用记事本/编辑器 打开,文件->另存为->采用编码
5、数据导出
1、作用
将数据库中表的笔录导出到系统文件里
二、语法格式
select … from 表名
into outfile “/var/lib/mysql-files/文件名”
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”;
$ sudo -i
$ cd /var/lib/mysql-files/
$ ls
$ cat sanguo.txt
肆、将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”;

本节完!

相关文章