赞
踩
https://blog.csdn.net/qq_36582604/article/details/80526287 ???
MySQL下载与安装
intellij怎么导入MySQL的驱动包
SQL 常用命令行大全【高级程序员必备】
PLSQLDeveloper安装与配置
UML类图
依赖关系 与UML图
uml 类图依赖与关联的区别
SQL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server等。SQL标准有:
1986年,ANSI X3.135-1986,ISO/IEC 9075:1986,SQL-86
1989年,ANSI X3.135-1989,ISO/IEC 9075:1989,SQL-89
1992年,ANSI X3.135-1992,ISO/IEC 9075:1992,SQL-92(SQL2)
1999年,ISO/IEC 9075:1999,SQL:1999(SQL3)
2003年,ISO/IEC 9075:2003,SQL:2003
2008年,ISO/IEC 9075:2008,SQL:2008
2011年,ISO/IEC 9075:2011,SQL:2011
2016年,ISO/IEC 9075:2016,SQL:2016
这些标准就与JDK的版本一样,在新的版本中总要有一些语法的变化。不同时期的数据库对不同标准做了实现。
虽然SQL可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以称之为“方言”。例如MySQL中的LIMIT语句就是MySQL独有的方言,其它数据库都不支持!当然,Oracle或SQL Server都有自己的方言。
SQL语句可以单行或多行书写,以分号结尾;
可以用空格和缩进来来增强语句的可读性;
关键字不区别大小写,建议使用大写;
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
SELECT
selection_list /*要查询的列名称*/
FROM
table_list /*要查询的表名称*/
WHERE
condition /*行条件*/
GROUP BY
grouping_columns /*对结果分组*/
HAVING
condition /*分组后的行条件*/
ORDER BY
sorting_columns /*对结果分组*/
LIMIT
offset_start(0开始), row_count /*结果限定*/
执行顺序:
FROM 和 JOINs
FROM 或 JOIN会第一个执行,确定一个整体的数据范围. 如果要JOIN不同表,可能会生成一个临时Table来用于 下面的过程。总之第一步可以简单理解为确定一个数据源表(含临时表)
WHERE
我们确定了数据来源 WHERE 语句就将在这个数据源中按要求进行数据筛选,并丢弃不符合要求的数据行,所有的筛选col属性 只能来自FROM圈定的表. AS别名还不能在这个阶段使用,因为可能别名是一个还没执行的表达式
GROUP BY
如果你用了 GROUP BY 分组,那GROUP BY 将对之前的数据进行分组,统计等,并将是结果集缩小为分组数.这意味着 其他的数据在分组后丢弃.
HAVING
如果你用了 GROUP BY 分组, HAVING 会在分组完成后对结果集再次筛选。AS别名也不能在这个阶段使用.
SELECT
确定结果之后,SELECT用来对结果col简单筛选或计算,决定输出什么数据.
DISTINCT
如果数据行有重复DISTINCT 将负责排重.
ORDER BY
在结果集确定的情况下,ORDER BY 对结果做排序。因为SELECT中的表达式已经执行完了。此时可以用AS别名.
LIMIT / OFFSET
最后 LIMIT 和 OFFSET 从排序的结果中截取部分数据.
select 不一定是列名,可以是函数,运算过后的
查询所有列
SELECT * FROM 表名;
查询单个或多个列,中间用逗号隔开
SELECT 列名1 [,列名2...列名n] FROM 表名;
查询不同的值,即相同的值只出现一次
SELECT DISTINCT * FROM 表名;
SELECT DISTINCT 列名1 [,列名2...列名n] FROM 表名;
列运算后查询(数量类型的列可以做加、减、乘、除运算,字符串会转化成数字,如果不能就是NULL)
SELECT 列名*1.5 FROM 表名;
SELECT 列名1+列名2 FROM 表名;
列连接后查询(此处示例用逗号隔开)
SELECT CONCAT(列名1,',', 列名2[.....]) FROM 表名;
列为空时转换查询(表达式1为null则显示表达式2)
SELECT IFNULL(表达式1, 表达式2) FROM emp;
给列起别名后查询
SELECT 列名 AS 别名 FROM 表名;
mysql中+的作用:
1、加法运算
①两个操作数都是数值型
100+1.5
②其中一个操作数为字符型
将字符型数据强制转换成数值型,如果无法转换,则直接当做0处理
'张无忌'+100===>100
③其中一个操作数为null
null+null====》null
null+100====》 null
如果查询的值为null,则查不出来,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。