DQL基础查询

DQL基础查询

● DQL(Data Query Language)数据查询语言查询是使用频率最高的一个操作,可以从一个表中查询数据,也可以从多个表中查询数据。

● 基础查询语法: select 查询列表 from 表名;

● 特点:

查询列表可以是:表中的字段、常量、表达式、函数
查询的结果是一个虚拟的表格

查询结果处理:
特定列查询 :select column1,column2 from table
全部列查询 : select * from table
算数运算符 :+ - * /
排除重复行 : select distinct column1,column2 from table
查询函数: select 函数 ; / 例如 version()

字符函数
length() :获取参数值的字节个数
char_length() 获取参数值的字符个数
concat(str1,str2,.....) :拼接字符串
upper()/lower() :将字符串变成大写 / 小写
substring(str,pos,length) :截取字符串 位置从 1 开始
instr(str, 指定字符 ) :返回子串第一次出现的索引,如果找不到返回 0
trim(str) :去掉字符串前后的空格或子串 ,trim( 指定子串 from 字符串 )
lpad(str,length, 填充字符 ) :用指定的字符实现左填充将 str 填充为指定长度
rpad(str,length, 填充字符 ) :用指定的字符实现右填充将 str 填充为指定长度
replace(str,old,new) :替换,替换所有的子串

INSERT INTO basketmember(名字,生日,身高,体重,位置)
VALUES('德怀恩.韦德','1982-1-17',1.93,96,'null'),
      ('勒布朗.詹姆斯','1984-12-30',2.03,113,'前锋'),
      ('科比.布莱恩特','1978-8-23',1.92,99,'后卫'),
      ('德科.诺维斯基','1978-6-19',2.13,111,'null'),
      ('艾里斯.保罗','1985-5-6',1.82,79,'后卫'),
      ('托尼.帕克','1982-5-17',1.87,83,'后卫'),
      ('凯文.加内特','1981-7-14',2.12,113,'null'),
      ('保罗.皮尔斯','1977-10-13',2.00,106,'前锋'),
      ('迈克尔.乔丹','1963-2-17',1.98,98,'前锋'),
      ('德怀特-霍华德','1985-12-18',2.10,120,'中锋'),
      ('姚明','1980-9-12',2.29,140,'中锋'),
      ('沙奎尔.奥尼尔','1972-3-6',2.15,147,'中锋') 

此例子是我们今天所用的案例!!!

SELECT 编号 ,名字, 位置 FROM basketmember WHERE 编号=2 #在表格中选取固定的列

SELECT*FROM basketmember ORDER BY(体重)#将所选取的列进行排序

SELECT*FROM basketmember LIMIT 0,2#将所选取的列进行选取(初始,截止)行

SELECT DISTINCT 名字,生日 FROM basketmember#去除重复重复数据,重复数据指的是每列值都相同

SELECT 编号,身高+体重 FROM basketmember#将某几列进行加法运算

SELECT LENGTH(名字)FROM basketmember#以字节为长度进行输出

SELECT CHAR_LENGTH(名字)FROM basketmember#以字符串为单位进行输出

SELECT UPPER(名字)FROM basketmember#转大写

SELECT LOWER(名字)FROM basketmember#转小写

SELECT INSTR(名字,'i')FROM basketmember#返回指定字符在字符中首次出现的位置

SELECT SUBSTRING(名字,1,2)FROM basketmember#从开始至截止截取字符串内容

SELECT TRIM(名字)FROM basketmember#去掉前后的空格

SELECT TRIM('i'FROM 名字)FROM basketmember#去掉列名前后的字符串

SELECT LPAD(名字,8,'a')FROM basketmember#将字符加到前面至满足给定的字符长度

SELECT RPAD(名字,8,'b')FROM basketmember#将字符加到后面至给定的字符长度

SELECT REPLACE(名字,'姚明','刘子文')FROM basketmember#替换(旧,新)

逻辑处理:

case when 条件 then 结果1 else 结果2 end; 可以有多个when

ifnull(被检测值,默认值)函数检测是否为null,如果为null,则返回指定的值,否则返回

原本的值

if函数: if else的 效果 if(条件,结果1,结果2)

 SELECT 名字,生日,
      (CASE WHEN 身高>=2.00 THEN'巨人'
      WHEN 身高<=1.99 AND 身高>=1.8 THEN'中等' ELSE'不是中等' END
      )AS height 
      FROM basketmember#when语句

SELECT 编号,名字,IFNULL(身高,'暂未录入')FROM basketmember#判断是否有null,填充默认值

SELECT 编号,名字,IF(身高>=2.00,'高个子','低个子')AS height FROM basketmember#if判断语句

数学函数

round(数值):四舍五入
ceil(数值):向上取整,返回>=该参数的最小整数
floor(数值):向下取整,返回<=该参数的最大整数
truncate(数值,保留小数的位数):截断,小数点后截断到几位
mod(被除数,除数):取余,被除数为正,则为正;被除数为负,则为负
rand():获取随机数,返回0-1之间的小数

日期函数

now():返回当前系统日期+时间
curdate():返回当前系统日期,不包含时间
curtime():返回当前时间,不包含日期可以获取指定的部分,年、月、日、小时、分钟、秒
YEAR(日期列),MONTH(日期列),DAY(日期列) , HOUR(日期列) ,MINUTE(日期列)SECOND(日期列)
str_to_date:将日期格式的字符转换成指定格式的日期
date_format:将日期转换成字符串
datediff(big,small):返回两个日期相差的天数

分组函数

功能:用作统计使用,又称为聚合函数或统计函数或组函数

分类:sum 求和、avg 平均值、max 最大值、min 最小值、count 计数 (非空)

1.sum,avg一般用于处理数值型max,min,count可以处理任何类型

2.以上分组函数都忽略null值

3.count函数的一般使用count(*)用作统计行数

4.和分组函数一同查询的字段要求是group by后的字段

SELECT SUM(体重)FROM basketmember#总和

SELECT AVG(体重)FROM basketmember#平均值

SELECT MAX(体重)FROM basketmember#最大值

SELECT MIN(体重)FROM basketmember#最小值

条件查询

使用WHERE 子句,将不满足条件的行过滤掉,WHERE 子句紧随 FROM 子句。

语法:select <结果> from <表名> where <条件>

比较 =, != 或<>, >, <, >=, <=

逻辑运算

and 与
or 或
not 非

SELECT *FROM basketmember WHERE 身高 BETWEEN 1.80 AND 2.00#在一个 区间内,包含边界值

条件查询

模糊查询

LIKE :是否匹配于一个模式 一般和通配符搭配使用,可以判断字符型数值或数值型.

通配符: % 任意多个字符,包含0个字符 _ 任意单个字符

between and 两者之间,包含临界值;

in 判断某字段的值是否属于in列表中的某一项

IS NULL(为空的)或 IS NOT NULL(不为空的)

SELECT *FROM basketmember WHERE 名字 LIKE('姚%')#关键字匹配任意个字符

相关推荐
丶重明40 分钟前
【2024】MySQL账户管理
sql
Deryck_德瑞克2 小时前
mysql笔记—sql性能分析
笔记·sql·mysql
知识分享小能手12 小时前
mysql学习教程,从入门到精通,SQL DISTINCT 子句 (16)
大数据·开发语言·sql·学习·mysql·数据分析·数据库开发
NaZiMeKiY18 小时前
SQLServer数据分页
数据库·sql·sqlserver
码爸18 小时前
java 执行es中的sql
java·sql·elasticsearch
中文很快乐19 小时前
springboot结合p6spy进行SQL监控
java·数据库·sql
6667866619 小时前
Mysql高级篇(中)—— SQL优化
linux·运维·服务器·数据库·sql·mysql
知识分享小能手20 小时前
mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(19)
大数据·开发语言·数据库·sql·学习·mysql·数据开发
冰镇毛衣20 小时前
2.4 数据库表字段约束
数据库·sql·mysql
冰镇毛衣20 小时前
数据库简介
开发语言·数据库·sql·oracle