文章目录
DQL(Data Query Language)数据查询语言
数据查询语句是使用频率最高的一个操作,是可以从一个表中查询数据,也可以从多张表中进行关联查询数据。
基础语法:
SELECT 查询列表 FROM 表名 [WHERE 条件];
特点:
查询列表可以是:表中的字段、常量、表达式、函数
查询的结果是一个虚拟出的表格。
查询结果的处理
- 查询常量值(了解一下就行了,没啥用)
SELECT 100;
- 查询表达式
在SQL中可用的表达式有: +、-、*、/
SELECT 100*2
SELECT 列+5 FROM 表;
--例如:
SELECT height+5 FROM t_student;
--给查出的每一列数据都加上一个5
- 查询函数
SELECT 函数;
-- 例如:
SELECT VERSION();
-- 查看当前SQL的版本是多少
- 特定列查询
SELECT 列名1,列名2,... FROM 表名;
- 全部列查询
SELECT * FROM 表名;
- 去除重复行查询
将查询出来的重复数据去掉,针对查询出来的结果,要求是查询出的所有列数据都要一样,才会去掉。
SELECT DISTINCT 列名1,列名2,... FROM 表名;
使用函数对查询结果的处理
函数: 类似于Java中的方法,将一组逻辑语句事先在数据库中定义好,在需要使用的时候直接调用就好了,想调用now()函数一样。
优点:
- 隐藏了实现的细节
- 提高了代码的重用性
调用方式:
SELECT 函数名(实参列表)[from 表];
分类:
- 单行函数:如concat、lengthifnull等。
就是查询出来的结果是多少行,这个函数就会对每一行的数据都进行处理操作。 - 分组函数:做统计使用,又称为统计函数、集合函数、组函数。
也叫聚合函数;多行转为一行。
单行函数
字符函数
● length():获取参数值的字节个数。
一个中文3个字节。
-- 获得当前列名的字节各处
SELECT LENGTH(列名),列名 FROM 表名;
● char_length():获取参数值的字符个数。
-- 获取当前列名的字符个数。
SELECT CHAR_LENGTH(列名),列名 FROM 表名;
● concat(str1,str2,…):拼接字符串。
它可以将两个字符接在一起,以一个列进行发送。
SELECT CONCAT(str1,str2...) FROM 表名;
-- 例如:
-- 将两个列,通过字符的连接,以一个列进行了发送。
SELECT CONCAT(列名1,':', 列名2)AS name FROM 表名;
-- AS name 是对定义了一个别名(AS也是可以省略的)
● upper():将字符串变成大写。
SELECT UPPER(列名) FROM 表名;
● lower():将字符串变为小写。
SELECE LOWER(列名) FROM 表名;
● substring(str,pos,length):截取字符串,从位置pos位置开始。
SELECT SUBSTRING(列名,开始截取位置(从1开始),截取长度) FROM 表名;
● instr(str,指定字符):返回子串第一次出现的索引,如果找不到就返回0
类似于java中的indexof();
SELECT INSTR(列名,指定的字符) FROM 表名;
-- 例子:
SELECT INSTR('abcd','a');
● trim(str):去掉字符串前后的空格或子串。trim(指定子串from字符串)
-- 去掉字符前后的空格。
SELECT TRIM(列名) FROM 表名;
-- 去掉子串
SELECT TRIM(指定的子串 FROM 列名) FROM 表名;
-- 列子
SELECT TRIM('d' FROM 'abcd');