第一章:了解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、使用不同类型联结
网友评论