SQL 基础教程
-
关键词DISTINCT
单列distinct
作用:结果集去重。
语法:SELECT DISTINCT 列名称 FROM 表名称。
这个属于入门就要学的,但是说真的,我目前为止还没在业务实际中用到这个关键字。
得出的结果会自动去重。但是如果select的是多列,要多列都不同才去重。
多列distinct -
WHERE 子句
<>的使用
作用:条件筛选
语法:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
可在 WHERE 子句中使用的运算符:<,>,<=,>=,=,between and,like,in,<>,!=...(这个<>和!=不是每个版本都支持的,但最少支持一个。)
!=的使用
注意这里有个小问题:就是mysql的数据转换,比如一个字符串的值,要用‘’单引号引起来,如果不引起来也可能不报错,但是中间会涉及数据类型转换啥的。查询效率会低。 -
AND 和OR 运算符
AND是使用
作用:对一个以上的条件进行筛选
语法 :SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 AND(OR) 列 运算符 值
这个其实见名知意,稍微有点语言基础的都能理解,用java来讲,就是逻辑与和逻辑或。
AND要二者都满足。OR是二者满足一个。不过这两个运算符是可以一起使用的。建议不要使用系统默认的优先级,而是想把先运算的括起来。
OR的使用
and和or联合使用 -
ORDER BY 子句
id降序
作用:ORDER BY 语句用于对结果集进行排序。
语法:SELECT 列 FROM 表 ORDER BY 列名 (DESC)
ORDER BY 语句默认按照升序排序。如果您希望按照降序进行排序,可以使用 DESC 关键字。然后order by语句可以有多个排序字段,以最左的为第一排序字段。第一排序字段相同才按照第二排序字段排序,如果有第三个,以此类推。每一个排序字段可单独指定升序还是降序。
age升序,id降序
age降序,id升序
SQL 高级教程
-
分页查询
作用:规定要返回的记录的数目。
这个其实真的挺烦人的,因为不同数据库不一样,对于项目用过mysql和sql server的我来说,两者的区别在分页还是很明显的。
mysql中用关键字LIMIT;
sqlserver中用top 条数;
语法:
SELECT TOP number|percent * FROM 表名;
SELECT * FROM 表名 LIMIT n,m;
n:从第n+1条开始显示,如果从第一条开始可省略。
m:显示多少条数据。
因为我现在没有sql server数据库,所以只做mysql 的demo。
显示前十条数据
从第十一条开始显示,显示十条数据 -
Alias(别名)
作用:可以为列名称和表名称指定别名(Alias)。
其实这个实际意义几乎没有,使用是为了使查询程序更易阅读和书写。
直接上例子:
字段别名
表取别名 -
JOIN
作用:join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
其实join分几种:
-
INNER JOIN(内连接)
image.png -
LEFT JOIN(左外连接)
image.png -
RIGHT JOIN(右外连接)
image.png -
FULL JOIN(全连接)
image.png
语法的话,简单一个例子,别的都是大同小异:
右连接实例
-
UNION 和 UNION ALL 操作符
作用:UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
注意:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
union用法
union all用法 -
MySQL 数据类型
我觉得还是mysql最常用,所以这里只说mysql了。在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。(用截图表示了,简书里的表格太麻烦了)
text数据类型
Number 类型
Date类型
先总结到这里,明天详细说sql中的函数,争取每天学习一点点,不知道多久会发生质变。然后大家共勉,祝大家工作生活顺顺利利的吧!
全文手打不易,如果你觉得有帮到你或者有点用,别吝啬的点个喜欢和点个关注哦~~
网友评论