IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 学习MySQL——单表查询 -> 正文阅读

[大数据]学习MySQL——单表查询

一、SQL语言规范

  1. MySQL在Windows环境下大小写不敏感。

  2. MySQL在Linux环境下大小写敏感。

  3. 推荐的书写规范:

    (1) 数据库名、表名、表别名、字段名、字段别名等都小写。

    (2) SQL关键字、函数名、绑定变量等都大写。

  4. 注释规则:

    (1) 单行注释:#注释文字(MySQL特有)

    (2) 单行注释:-- 注释文字(–后有一个空格)

    (3) 多行注释:/* 注释文字 */

  5. 数据导入指令:(dos窗口执行) source 要导入的文件的绝对路径

二、基本的SELECT语句

1. 列的别名

(1)相当于重命名一个列,便于计算,方法是紧跟列名,也可以在列名和别名之间加入关键字 AS ,别名使用双引号 (别名包含空格时的命名方法)。

(2)举例:SELECT employee_name emp , last_name AS name FROM employees;

(3)注意:列的别名不可以在WHERE语句中使用,因为执行顺序为FROM–>WHERE–>SELECT

2. 去除重复行

(1)在SELECT语句中使用关键字DISTINCT去除重复行

(2)举例:SELECT DISTINCT department_id FROM employees;

(3)DISTINCT是对其后的所有字段都去除重复行,一般只跟一个字段。

3. 空值参与运算

(1)所有的运算符或列值遇到null值,运算结果都为null

(2)在MySQL中,空值null不等于空字符串,空字符串的长度是0,空值的长度是空,空值是占用空间的

4. 着重号``

(1)着重号是为了保证表中的字段、表名等没有和关键字。保留字、数据库系统或者常用方法的名字发生冲突。如果真的相同,命名是必须用一对着重号引用起来。如`SELECT`

(2)SELECT查询还可以对常数进行查询。即在查询结果中增加一列固定的常数列,这一新的常数列的取值可以由自己指定。(常数列可以作为这个表的标记)

(3)举例:SELECT last_name , ‘888’ AS sign FROM employees;

5. 显示表结构

(1)使用DESC或者DESCRIBE显示表结构,如:DESCRIBE employees; 或者DESC employees;

(2)各个字段的含义:

  • Field:表示字段名称
  • Type:表示字段类型
  • Null:表示该列是否可以存储NULL值
  • Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次
  • Default:表示该列是否有默认值,如果有,那么值是多少
  • Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等

三、运算符

①比较运算符

1. 等号运算符(=)

①判断等号两边的值、字符串、表达式是否相等,相等返回1,不相等返回0

②如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较,当字符串无法转化为数字时,自动转化为0进行比较。如,1=‘1’,返回1,1=‘a’,返回0,0=‘a’,返回1

③如果等号两边的值有一个是null,则结果为null

④SQL中赋值符号使用 :=

2. 不等于运算符(<>或!=)

①不等于运算符用于判断两边的数字、字符串、表达式的值是否不相等,不相等返回1,相等返回0

②不等于运算符不能判断null值。

3. 安全等于运算符(<=>)

使用安全等于运算符时,两边的操作数的值都为null时,返回的结果为1而不是null,其他返回结果与等于运算符相同。

4. 空运算符(ISNULL或者IS NULL)

①空运算符判断一个值是否为null,如果为null则返回1,否则返回0

②无论是等于还是不等于,只要两边有任意一个值为null,结果就一定为null

5. 非空运算符(IS NOT NULL)

非空运算符判断一个值是否不为null,如果不为null返回1,否则返回0

6. 最小值运算符(LEAST(值1,值2,…,值n))

①当参数列表中的参数为整数或者浮点数时,LEAST将返回最小的值。

②当参数列表中的参数为字符串时,从前往后逐个比较字符串中的第一个、第二个、第n个字符的ASCII码值大小,返回相同位置字符ASCII码最小的字符串。

③当比较值列表中有null值时,不能判断大小,返回值为null。

7. 最大值运算符(GREATEST(值1,值2,…,值n))

①当参数列表中的参数为整数或者浮点数时,GREATEST将返回最大的值。

③当比较值列表中有null值时,不能判断大小,返回值为null。

8. BETWEEN AND运算符

BETWEEN AND运算符的使用格式通常为

SELECT D

FROM TABLE

WHERE C BETWEEN A AND B

此时,当C>=A并且C<=B时,结果为1,否则结果为0

9. IN运算符

①IN运算符用于判断给定的值是否是IN列表中的一个值,如果是则返回1,否则返回0。

②如果给定的值为NULL,IN列表中不存在NULL,则结果为NULL。

10. NOT IN运算符

①NOT IN运算符用于判断给定的值是否不是IN列表中的一个值,如果不是则返回1,否则返回0。
②如果给定的值为NULL,或者NOT IN列表中存在NULL,则结果为NULL。

11. LIKE运算符

①LIKE运算符主要用来匹配字符串,通常用于模糊匹配,如果满足条件则返回1,否则返回0。

②如果给定的值或者匹配条件为null,则返回结果为null。

③“%”匹配0个或者多个字符;“_”只能匹配一个字符。

例如:

SELECT last_name 

FROM employees 

WHERE last_name LIKE '_o%';

查询的结果为last_name这一列中符合 第一个字符为任意字符;并且第二个字符为o;并且第二个字符后面有任意0个或者多个字符的值。

④回避特殊符号的,使用转义字符**\** ,如**\** 可以代表单个字符""。

12. REGEXP运算符

①REGEXP运算符用来匹配字符串,语法格式为xxx REGEXP 匹配条件 ,满足返回1,否则返回0。

②常用的几种通配符:

  • ‘^’匹配以该字符后面的字符开头的字符串
  • ‘$’匹配以该字符前面的字符结尾的字符串
  • ‘.’匹配任何一个单字符
  • “[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。“[a-z]”匹配所有小写字母,而“[0-9]”匹配任何数字
  • ‘*’匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的‘x’字符,“[0-9]*”匹配任何数量的数字,而“*”匹配任何数量的任何字符

②逻辑运算符

1. 逻辑非运算符(NOT或!)

逻辑非(NOT或!)运算符表示当给定的值为0时返回1;当给定的值为非0值时返回0; 当给定的值为NULL时,返回NULL

2. 逻辑与运算符(AND或&&)

逻辑与(AND或&&)运算符是当给定的所有值均为非0值,并且都不为NULL时,返回 1;当给定的一个值或者多个值为0时则返回0;否则返回NULL

3. 逻辑或运算符(OR或||)

逻辑或(OR或||)运算符是当给定的值都不为NULL,并且任何一个值为非0值时,则返 回1,否则返回0;当一个值为NULL,并且另一个值为非0值时,返回1,否则返回NULL;当两个值都为 NULL时,返回NULL

4. 注意

OR可以和AND一起使用,且AND的优先级高于OR,所以先AND再OR。

四、排序与分页

①排序

1. 排序规则

  • 使用ORDER BY子句实现排序
  • ASC(ascend):升序
    DESC(descend):降序
  • ORDER BY子句在SELECT语句的结尾
#### 2. 一级排序

举例:

SELECT last_name, job_id, department_id, hire_date

FROM employees

ORDER BY hire_date ;

表示将hire_date字段进行升序排序(默认为升序排序)。

3. 多级排序

举例:

SELECT last_name, department_id, salary

FROM employees

ORDER BY department_id, salary DESC;

表示将department_id进行升序排序,然后再根据department_id对salary进行降序排序。

ORDER BY后面的第一个字段进行一级排序,然后第二个字段根据第一个字段排序完的情况进行二级排序。

②分页

  1. MySQL中使用LIMIT实现分页。格式为:LIMIT 位置偏移量,需要获取的行数;

  2. 举例:

    SELECT * FROM 表名 LIMIT 10,40;

    表示获取表格中的第11至50条记录。

  3. 注意

    LIMIT子句必须放在整个SELECT语句的最后。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:48:45  更:2022-10-08 20:52:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/22 15:14:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码