MYSQL必知必会

作者: 戈小蓓 | 来源:发表于2019-07-20 13:54 被阅读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、使用不同类型联结

    相关文章

      网友评论

        本文标题:MYSQL必知必会

        本文链接:https://www.haomeiwen.com/subject/bapoxctx.html