DQL基础语法

12 篇文章 0 订阅

关于MySQL中DQL的部分基础语法


#进入数据库每次进行操作之前都要use上库名
USE information_schema;

#1.查询表中的单个字段
SELECT FILE_ID FROM FILES;

#2.查询表中的多个字段,使用逗号隔开
SELECT FILE_ID,FILE_NAME FROM FILES;

#3.查询所有字段,可以双击你要查中的字段,但是要手动加逗号
SELECT 
	`FILE_ID`,
	`FILE_TYPE`,
	`FILE_NAME`
 FROM 
	FILES;
#还有一种方法
SELECT * FROM FILES;

#查询常量值
SELECT 100;

#查询字符型常量值;
SELECT "john";#字符型用单引号

#查询表达式
SELECT 100 * 98 ;

#查询函数
SELECT VERSION();#调用version函数并返回他的值

#起别名方式1使用AS(1.为了提高可读性2.如果查询字段重名的情况,使用别名可以区分)
SELECT 100%98 AS "结果";
SELECT `FILE_ID`AS "id" FROM FILES;

#方式2使用空格
SELECT `FILE_ID` 'id' FROM FILES;



#去重
SELECT DISTINCT `FILE_ID` FROM FILES;

#+号的作用
/*
mysgl中的+号:
仅仅只有一个功能:运算符

select 100+90;两个操作数都为数值型,则做加法运算

select '123'+90;其中一方为字符型,试图将字符型数值转换成数值型

		如果转换成功,则继续做加法运算

select 'john'+90;如果转换失败,则将字符型数值转换成0

select null+10;只要其中一方为null,则结果肯定为null

*/


#扩展 concat
#例:两个字符连成一个字段,并显示id
SELECT CONCAT("a","b","c") AS 结果;
#表中栏位也能进行拼接

#IFNULL表达式 这个表达式只能对比null
SELECT IFNULL(`FILE_NAME`,0)/*如果为null则返回0*/ AS zz FROM FILES ;
#可以于concat连用
SELECT CONCAT(`FILE_ID`,IFNULL(`FILE_NAME`,0) AS 结果;



#======================================================

#进阶2:条件查询
/*
语法:
	select 
		查询列表 
	from 
		表名 
	where 
		筛选条件;
	
	执行顺序:from-->where-->select
	
一、按条件表达式筛选
	简单条件运算符:  > <= != <> >= <=
	
二、按逻辑表达式筛选
	逻辑运算符: && ll !
		    and or not
三、模糊查询
		like
		between and
		in
		is null
*/

#一、按条件表达式筛选
#案例1查询栏位id = 0 的数字
SELECT 
	* 
FROM 
	FILES
WHERE 
	FILE_ID=0;



#二、按逻辑表达式筛选
#案例:查询FILE_ID = 0 and FREE_EXTENTS = 2 的
SELECT 
	*
FROM
	FILES
WHERE
	FILE_ID=0,andFREE_EXTENTS=2;
	
#出了点小bug,但是格式没错


#-------------------------------------------------

#三、模糊查询

#案例1:查询栏位中包含a的信息
#1.like

SELECT
	*
FROM
	FILES
WHERE
	`FILE_NAME`LIKE'%i%';#%的意思,是表示要包含的这个字符前后都有可能还有其他字符,所以加上%号
	
#查询name中第三个字符为m的信息配合通配符下划线——
SELECT 	
	*
FROM 
	FILES
WHERE
	`FILE_NAME`LIKE'__m%';


#查询第二个字符为下划线_的(涉及转义关键字escape)
SELECT 
	*
FROM
	FILES
WHERE
	`FILE_NAME`LIKE'_$_%'ESCAPE '$';#这个关键字的意思是&现在是一个转义符号了
					#记住ESCAPE要引用后加引号


#----------------------------------

#2.between and
/*
使用between and可以提高语句的简洁度
包含临界值
两个临界值不要调换顺序
*/
#案例1:查询员工编号在100到120之间的员工信息
SELECT
	*
FROM
	employees
WHERE
	employee_id>=100 AND employee_id<=120;

#-------------—-
SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;


#----------------------------------
#3.in
/*
含义:判断某字段的值是否属于in列表中的某一项特点:
使用in提高语句简洁度
in列表的值类型必须一致或兼容
*/

#查询在FILE_TYPE栏位中有 UNDO LOG 的

SELECT 
	FILE_TYPE
FROM 
	FILES
WHERE
	FILE_TYPE IN('UNDO LOG');


#4.is null
/*
=或<>不能用于判断null值
is null或is not null 可以判断null值
*/
#查询在TABLE_NAME中为null的元素

SELECT 
	TABLE_NAME
FROM 
	FILES
WHERE
	TABLE_NAME IS NULL;
	
#查询在TABLE_NAME不为null的元素
SELECT 
	TABLE_NAME
FROM 
	FILES
WHERE
	TABLE_NAME IS NOT NULL;
	
#安全等于<=> 效果是一样的
SELECT 
	TABLE_NAME
FROM 
	FILES
WHERE
	TABLE_NAME <=>NULL;

#安全等于<=>还可以用于普通查询

SELECT 
	FILE_ID
FROM 
	FILES
WHERE
	FILE_ID <=>1;#查询id为1的元素

/* 
IS NULL:仅仅可以判断NULL值,可读性较高,建议使用
<=>:既可以判断NULL值,又可以判断普通的数值,可读性较低
*/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值