当前位置:   article > 正文

SQL数据库_数据库中standard.

数据库中standard.

https://blog.csdn.net/qq_36582604/article/details/80526287 ???

MySQL下载与安装
intellij怎么导入MySQL的驱动包
SQL 常用命令行大全【高级程序员必备】

PLSQLDeveloper安装与配置
UML类图
依赖关系 与UML图
uml 类图依赖与关联的区别

1.什么是SQL

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都有自己的方言。

2.SQL语法要求

 SQL语句可以单行或多行书写,以分号结尾;
 可以用空格和缩进来来增强语句的可读性;
 关键字不区别大小写,建议使用大写;

3.分类

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

4. 行查(DQL语法):

SELECT
	selection_list /*要查询的列名称*/
FROM 
	table_list /*要查询的表名称*/
WHERE 
	condition /*行条件*/
GROUP BY 
	grouping_columns /*对结果分组*/
HAVING 
	condition /*分组后的行条件*/
ORDER BY
	sorting_columns /*对结果分组*/
LIMIT 
	offset_start(0开始), row_count /*结果限定*/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

执行顺序:

  1. FROM 和 JOINs
    FROM 或 JOIN会第一个执行,确定一个整体的数据范围. 如果要JOIN不同表,可能会生成一个临时Table来用于 下面的过程。总之第一步可以简单理解为确定一个数据源表(含临时表)

  2. WHERE
    我们确定了数据来源 WHERE 语句就将在这个数据源中按要求进行数据筛选,并丢弃不符合要求的数据行,所有的筛选col属性 只能来自FROM圈定的表. AS别名还不能在这个阶段使用,因为可能别名是一个还没执行的表达式

  3. GROUP BY
    如果你用了 GROUP BY 分组,那GROUP BY 将对之前的数据进行分组,统计等,并将是结果集缩小为分组数.这意味着 其他的数据在分组后丢弃.

  4. HAVING
    如果你用了 GROUP BY 分组, HAVING 会在分组完成后对结果集再次筛选。AS别名也不能在这个阶段使用.

  5. SELECT
    确定结果之后,SELECT用来对结果col简单筛选或计算,决定输出什么数据.

  6. DISTINCT
    如果数据行有重复DISTINCT 将负责排重.

  7. ORDER BY
    在结果集确定的情况下,ORDER BY 对结果做排序。因为SELECT中的表达式已经执行完了。此时可以用AS别名.

  8. LIMIT / OFFSET
    最后 LIMIT 和 OFFSET 从排序的结果中截取部分数据.

4.1 基础查询

select 不一定是列名,可以是函数,运算过后的
查询所有列

SELECT * FROM 表名;
  • 1

查询单个或多个列,中间用逗号隔开

SELECT 列名1 [,列名2...列名n] FROM 表名;
  • 1

查询不同的值,即相同的值只出现一次

SELECT DISTINCT * FROM 表名;
SELECT DISTINCT 列名1 [,列名2...列名n] FROM 表名;
  • 1
  • 2

列运算后查询(数量类型的列可以做加、减、乘、除运算,字符串会转化成数字,如果不能就是NULL)

SELECT 列名*1.5 FROM 表名;
SELECT 列名1+列名2 FROM 表名;
  • 1
  • 2

列连接后查询(此处示例用逗号隔开)

SELECT CONCAT(列名1,',', 列名2[.....]) FROM 表名;
  • 1

列为空时转换查询(表达式1为null则显示表达式2)

SELECT IFNULL(表达式1, 表达式2) FROM emp;
  • 1

给列起别名后查询

SELECT 列名 AS 别名 FROM 表名;
  • 1

mysql中+的作用:

1、加法运算
①两个操作数都是数值型
100+1.5
②其中一个操作数为字符型
将字符型数据强制转换成数值型,如果无法转换,则直接当做0处理
'张无忌'+100===>100
③其中一个操作数为null
null+null====》null
null+100====》 null
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
在这里插入图片描述

如果查询的值为null,则查不出来,

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/639758
推荐阅读