Data Analysis

MYSQL必知必会

2019-07-20  本文已影响0人  戈小蓓

第一章:了解SQL

数据库概念、表、列和数据类型、行、主键

第二章:MYSQL简介

1、mysql是一种DBMS(数据库管理系统):客户机-服务器的DBMS

第三章:使用MYSQL

1、连接:主机名-端口,默认3306-用户名

2、不要使用关键词命名一个表或者一个列

第四章:检索数据

一、select语句

1、用途:从一个或多个表中检索信息——需要给到信息想选择什么及从什么地方选择

2、语句特性:①多条SQL语句必须以分号结尾;②SQL语句不区分大小写;③SQL语句可以写成长句也可以分写多行

3、检索多列时:一定要在列名之家加上逗号,但是最后一个列名不加

select  prod-id, prod-name, prod-price

from  Products;

4、检索所有列:用通配符*

select  *  from  Products;

5、检索不同行:distinct—指示数据库只返回不同的值

注意:distinct关键词作用于所有列,不能部分使用distinct

select  distinct prod-id  from  Products;

6、限制结果:limit  5  offset  5表示从第5行起的5行数据(mysql语法)

注意:第一个被检索的是第0行,而不是第一行

小结:mysql使用select语句来检索单个列表、多个列表、所有列表、distinct、limit

第五章:排序检索数据

1、排序数据:在指定order  by子句时,应保证它是select语句最后一条子句

select   prod-name  from  Products order  by  prod-name;

2、按多个列排序:在多个列排序时,排序顺序完全按照规定进行

select  prod-id, prod-name, prod-price  from  Products 

 order  by  prod-name, prod-price ;

排序先姓名再价格

3、指定方向排序:Desc降序,Asc升序(默认升序)

如果想多个列上进行降序排序,必须对没个列指定Desc关键词

4、再给出order by子句时,应该保证他位于from子句之后,如果使用limit,它必须位于order byz之后

小结:本章学习了select语句中order by子句对检索数据进行排序,这个子句必须是select最后一条子句

第六章:过滤数据

1、数据根据where子句指定条件进行过滤,where子句在表名from之后给出,如有order by应位于where之后

2、where子句操作符(=、>、<,!= / <>、between  and-包括指定开始值及结束值、is null)

select  prod-id, prod-name, prod-price  from  Products 

where  prod-price>5 desc;

3、检查单个值

4、不匹配检查:单引号用来限定字符串

select  prod-id, prod-name  from  Products

where  prod-name<>‘dllo1’;

5、空值检查:is null

select  prod-price  from  Products

where prod-price is null;(空prod-price字段,不是价格为0)

小结:学习了where子句过滤返回的数据,等于、大于、小于、不等于及null等

第七章:数据过滤

1、组合where子句

and操作符:

select  prod-id, prod-name, prod-price  from  Products 

where prod-name'good' and prod-price >5  ;

or操作符:它指示DBMS检索匹配匹配任意条件行

2、计算次序:在and和or中会优先处理and,如要解决就要用圆括号对操作符进行明确分组—圆括号先处理

任何具有and和or操作符的where子句,都应使用圆括号明确分组,消除歧义

3、in操作符:用来指定条件范围,范围每个条件都可以进行匹配,in取合法值由逗号分隔,全都括在圆括号

功能相当于or

select  prod-id, prod-name, prod-price  from  Products 

where  prod-price in(1,,8);

4、not操作符:否定其后跟的任何条件,因为not从不单独使用,所以not关键词可以用在过滤列前

select  prod-id, prod-name, prod-price  from  Products

where not  prod-name=‘goog’;

小结:and和or操作符组成的where子句,如何明确计算次序,如何使用in和not操作符

第八章:用通配符进行过滤

1、like操作符:指示DBMS

通配符是用来匹配值得一部分的特殊字符

百分号%通配符:表示任何字符出现任意次数

select  prod-id, prod-name, prod-price  from  Products

where  prod-name like ‘good%';

下划线—通配符:只能匹配单个字符而不是多个字符

方括号[]通配符:用来指定一个字符集(只有access和sql server支持集合)

2、使用通配符技巧:①不要过度使用通配符;②尽量不把通配符用在搜索模式开始处;③注意通配符位置,如果放错地方可能不会返回想要的数据

第九章:用正则表达式进行搜索

1、正则表达式是用来匹配文本的特殊的串(字符集)

2、基本字符匹配regexp

regexp与like区别:like匹配整个列,如果被匹配的文本在列值出现,like将不会找到它,相应行也不会被返回。regexp在列值进行匹配

3、进行or匹配:× | ×

select  prod-name

from  prdoucts

where  prod-name regexp '1000  | 2000'

order  by   prod-name 

两个以上or条件:× | × | ×

3、匹配几个字符之一:匹配特定字符,用[ ]括起来的字符完成

select  prod-name

from  prdoucts

where  prod-name regexp' [123]Ton'

注意:返回是1ton或者2ton、3ton,这和'1| 2| 3 ton'的区别

4、匹配范围:[1-99]

5、匹配特殊字符:\\为前导,\\——表示查找——

6、匹配字符类:

第十章:创建计算字段

1、拼接concat:

select   concat  (prod-id , ' ( ' ,prod-name, ' ) '   )

from  Products   

order  by  prod-id desc;

2、rtrim函数:删除串右边空格  ; ltrim函数:删除串左边空格  ; trim函数:删除串两边空格

3、使用别名:用as赋予关键词

4、执行算术计算:+ - * /  (加减乘除)

小结:本章学习串拼接好,算术计算,别名使用

第十一章:使用数据处理函数

1、文本转为大写函数:upper函数

2、日期和时间处理函数:日期格式必须是yyyy-mm-dd

3、date

第十二章:汇总数据

1、聚集函数:avg、count、max、min、sum

select  avg(prod-price)as  avg-price  from products;

2、聚集不同值:distinct只能用于count()

3、组合聚集函数:

第十三章:分组数据

1、创建分组group by:

2、过滤分组having:功能和where相似,区别是where过滤行,having过滤分组

第十四章:使用子查询

1、select语句中子查询总是从内向外处理 

第十五章:联结表

1、关系表:把信息分解成多个表,一类数据一个表

2、外键:某表一列,它包含另一个主键,定义了两个表之间的关系

3、创建联结

select vend-name,prod-name,prod-price

from vendors,products

where vendors.vend-id=products.vend-id

order by vend-name,prod-name;

4、不要忘记where子句:联结都应有where子句,表示联结条件

第十六章:创建高级联结

1、使用表别名

2、使用不同类型联结

上一篇下一篇

猜你喜欢

热点阅读