产生虚拟表c1,查找字典内容时可以根据目录查找

2019-07-15 作者:数据库   |   浏览(158)

认知mysql第三篇,发出的剧情符合初大家,若是能不断关切自己的博客,能够周全的驾驭mysql的常用知识,后续笔者也会陆陆续续爆发python相关的学识,关怀自个儿,和作者一齐升高啊!

 

0.sql的实行各种
手写顺序
图片 1
机读顺序
图片 2
总结
图片 3
①From:对from右侧的表和侧边的表总结笛Carl积,发生虚构表c1
②On:对c第11中学的数据开始展览on过滤,只有切合过滤条件的数据记录才会记录在编造表c第22中学
③Join:若钦点了连接条件(left、right),主表中的未相配的行就能够作为外界行增加到c第22中学,生成虚构表c3
④Where:对虚构表c3中的数据开始展览规范化过滤,符合过滤条件的记录插入到虚构表c4中
⑤Group by:根据group by子句中的列,对c4中的记录进行分组操作,生成c5
⑥Having:对设想表c5中的记录举办having过滤,符合筛选规范的记录插入设想表c6中
⑦Select:试行select操作,选拔钦命的列,插入到设想表c7中
⑧Distinct:对c7中的数据去重,生成虚构表c8
⑨Order by:对设想表c第88中学的数据遵照内定的排序法则进行排序,生成虚构表c9
⑩Limit:收取钦命的记录,发生虚构表c10,将结果重临
1.join图
图片 4
2.数量希图
图片 5
①C、Z两表共有(交集部分)
Select * from tbl_emp inner join tal
图片 6
②C、Z共有 C的独有
图片 7
③ C、Z共有 Z的独有
图片 8
④C的独有
图片 9
⑤Z的独有
图片 10
⑥C的独有 Z的独有
图片 11
⑦AB全有
图片 12

目录,是数据库中非常用于支引用户赶快查询数据的一种数据结构。类似于字典中的目录,查找字典内容时方可根据目录查找到数据的寄存地方,然后径直获取即可。

1、SQL查询
  1、实践顺序
    3、select ...聚合函数 from 表名
      1、where ...
      2、group by ...
      4、having ...
      5、order by ...
      6、limit ...
  2、group by
    1、作用 :给查询结果开始展览分组
    2、示例
      1、查询表中累计有多少个国家

这几天察觉贰个数据库中的有些表有个字段名前面富含了一个空格,那几个空格引起了部分小标题,一般出现这种情况,是因为创制对象时,使用双引号或双括号的时候,由于马虎或手误多了一个空格,如下轻巧案例所示:

以 B-tree 格局积存:

      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                     30
2  
3         10                        40
4  
5    5         15            35             66
6  
7 1   6     11    19      21      39     55     100

## 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"

 

MySQL中常见索引有:

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用户)

USE TEST;

GO

 

--表TEST_COLUMN中两个字段都包含有空格

CREATE TABLE TEST_COLUMN 

(

    "ID  "    INT IDENTITY (1,1),

    [Name ]   VARCHAR(32),

    [Normal]  VARCHAR(32)

);

GO

 

--表[TEST_TABLE ]中包含空格, 里面对应三个字段,一个前面包含空格(后面详细阐述),一个字段中间包含空格,一个字段后面包含空格。

CREATE TABLE [TEST_TABLE ]

(

 

    [ F_NAME]        NVARCHAR(32),

    [M NAME]         NVARCHAR(32),

    [L_NAME ]        NVARCHAR(32)

)

GO
  • 平常索引
  • 独一索引
  • 主键索引
  • 整合索引

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";

 

1、普通索引

本节完!

 

平时索引只有一个功用:加快查询

 

图片 13图片 14

 

1 create table in1(
2     nid int not null auto_increment primary key,
3     name varchar(32) not null,
4     email varchar(64) not null,
5     extra text,
6     index ix_name (name)
7 )

那么要怎样寻找表名或字段名包蕴空格的相关信息呢? 不管是日常格局依旧正则表达式,那一个都会功效不高。我们得以用八个取巧的主意,正是经过字段的字符数和字节数的法规来剖断,若无包蕴空格,那么列名的字节数和字符数满意上边规律(表名也是那样):

创建表 索引

 

图片 15图片 16

    DATALENGTH(name) = 2* LEN(name)

1 create index index_name on table_name(column_name)

 

创建索引

 

图片 17图片 18

 

1 drop index_name on table_name;
SELECT  name ,

        DATALENGTH(name) AS NAME_BYTES ,

        LEN(name)         AS NAME_CHARACTER

FROM    sys.columns

WHERE   object_id = OBJECT_ID('TEST_COLUMN');

删去索引

本文由小鱼儿玄机30码发布于数据库,转载请注明出处:产生虚拟表c1,查找字典内容时可以根据目录查找

关键词: 小鱼儿玄机30码