mysql-dql(Data QueryLanguage)summary

1.基础查询

DESC 库名//查看库

SHOW DATABASES ;//查看当前所在数据库

SHOW TABLES;//查看当前库的所有表

USE database;//datebase为需要查询的库名

SELECT attribute,attribute2 FROM form;//从form中查询attribute,attribute2

SELECT * FROM beauty;//查询表中所有属性

SELECT DISTINCT attribute FROM form;//查询相关元素并去重,当查询多个属性时,需多个属性同时相同才满足去重条件

SELECT id FROM beauty WHERE id=1;//where后为限制条件


/*  where子句中的运算符
	
 =:等于
<>:不等于(在sql的一些版本中也可以写成!=)	
>:大于
<:小于
>=:大于等于
<=:小于等于
and(&&):且
or(||):或
not(!):否
between:在某个范围内,如:where income between 1000 and 2000,等价于 between income>=1000 and income <=2000
like:模糊查询
	 %表示多个字符,_表示一个字符
	 如: like 'm%'; 表示查询以m开头的内容
	 	 like '%m_'; 表示查询以m在倒数第二位的所有内容

in:查询内容在某些可能值内 如: where income in (1000,2000,3000)

null:空

*/

ORDER BY;//用于对结果集按照一个列或者多个列进行排序,当其后跟有多列时,先按第一列排序,再按第二列....,默认情况为按升序排列,但可以进行修改,如 ORDER BY A ,B DESC; 按a的升序,b的降序排列




2.常见函数

1.字符函数
		concat:拼接
		举例:
		concat("aaa","bbb","ccc");
		返回:"aaabbbccc"
		
		substr:截取子串
		举例:
		substr("一二三四五六",1,5);
		返回:"一二三四五"
		
		
		upper:转换成大写
		举例:
		upper("AbcB");
		返回:"ABCB"
		
		lower:转换成小写
		同上
		
		trim:去前后指定的空格和字符
		举例:
		trim("  aaaa   ");
		返回:"aaaa"
		
		ltrim:去左边空格
		同上
		
		rtrim:去右边空格
		同上
		
		length:获取字节个数
		举例:
		length("1 2");
		返回:3


2.数学函数
		round:四舍五入
		举例:
		ROUND(4.3);
		返回:4
		

		rand: 随机产生介于0~1之间的数
		
		floor:向下取整
		举例:
		FLOOR(4.2);
		返回:4
		
		ceil:向上取整
		同上

		mod:取余
		举例:
		MOD(9.2,2.1);
		返回:0.8
				
		truncate:截断
		举例:
		TRUNCATE(7.12345678,3);
		返回:7.123

3.流程控制函数
		
		IF(expr1,expr2,expr3):expr1为true,返回expr2,否则返回expr3
		
		IF   THEN
		ELSEIF   THEN
		ELSE
		END IF;(与c语言if else语句基本相同)

		SELECT CASE 1
		WHEN 1 THEN 'one'
		WHEN 2 THEN 'two'
		ELSE 'other'
		END;(返回'one',与c语言switch语句基本相同)


4.分组函数
		sum: 求和
		举例:
		SELECT SUM(column_name) FROM table_name;
		说明:求table_name表中,所有column_name的和
		
		
		max: 最大值
		同上
		
		min: 最小值
		同上
		
		avg: 平均值
		同上
		
		count: 计数
		举例:
		SELECT COUNT(income) AS nums FROM access_log
		WHERE site_id=3;
		说明:求access_log表中,site_id=3的人的工资之和,并存在nums中
		
		注意:
		1、以上五个分组函数都忽略null值,除了count(*)
		2、sum和avg一般用于处理数值型
			max、min、count可以处理任何数据类型
	    3、都可以搭配distinct使用,用于统计去重后的结果
		4、count的参数可以支持:
			字段、*、常量值,一般放1
		

3.分组查询

	select 查询的字段,分组函数
	fromgroup by 分组的字段
	
	注意:
	1、可以按单个字段分组
	2、和分组函数一同查询的字段最好是分组后的字段
	3、分组筛选
		针对的表	位置			关键字
		分组前筛选:	原始表		group by的前面		where
		分组后筛选:	分组后的结果集	group by的后面		having

	4、可以按多个字段分组,字段之间用逗号隔开
	5、可以支持排序
	6having后可以支持别名

4.连接查询(多表查询)


1.分类:
     按年代:
    		 sq192标准:仅仅支持内连接
     		 sq199标准: 支持内连接+外连接(左外+右外)+交叉连接

	 按功能分类:
	 		内连接:
	 				等值连接
	 				非等值连接
	 				自连接
	 		外连接:
	 				左外连接
	 				右外连接
	 				全外连接
	 		交叉连接

2.sq192标准:
		
	SELECT 查询元素
	FROM 元素来自哪些表 AS 别名
	WHERE 查询条件,连接条件(不加连接条件会出现表与表之间的笛卡尔乘积)
	
	注意:如果为表取了别名。对元素进行限定只能通过别名
	根据where的条件区分等值连接,和非等值连接
	自己连接自己为自连接(为了方便区分,取别名)

3.sq199标准:
	
	SELECT 查询元素
	FROM1 别名 (连接类型)JOIN2 ON 连接条件
	WHERE 筛选条件
	
	连接类型关键词 :
	内连接:inner
	外连接:
		左外:left outer(可省略)(join 左边的是主表)
		右外:right outer(join 右边的是主表)
		全外:full outer
	交叉连接:cross(迪达尔乘积)
		
	 
	


5.子查询:出现在其他语句中的select语句,称为子查询或内查询

分类:
	按子查询出现的位置:
			select后面:标量子查询
			from后面:表子查询
			wherehaving后面:标量子查询,列子查询,行子查询⭐
			exists后面:表子查询
	按结果集进行查询
			标量子查询(结果集只有一行一列)
			列子查询(结果集一列多行)
			行子查询(结果集多行队列)
			表子查询(随意)



wherehaving后面:
	1.标量子查询(单行子查询)
	通常在单行操作符后
	SELECT 元素1,元素2 
	FROMWHERE 元素2>SELECT 元素2
				 FROM2
				 WHERE 条件
	
	);
	
	


	2.列子查询(多行子查询)
	通常在多行操作符后:INNOT INANYSOMEALL 
	SELECT 元素1,元素2 
	FROMWHERE 元素2 INSELECT 元素2
				 FROM2
				 WHERE 条件
	
	);
	


	3.行子查询(多行多列)
	SELECT 元素1,元素2 
	FROMWHERE (元素1,元素2) INSELECT 元素1,元素2
				 	 FROM2
					 WHERE 条件
	
	);
	


	特点:
	1.子查询放在小括号内
	2.子查询一般放在条件的右侧
	3.标量子查询一般搭配着单行操作符使用



SELECT后的子查询:(子查询结果必须为11列)
	SELECT a.元素1 (SELECT b.元素2,b.元素1
					FROM2 b
					WHERE b.元素1=a.元素1
					
		 )
 	FROM1 a;


	
	

6.分页查询

	SELECT 元素
	FROM 表
		【join typejoin2
		on 连接条件
	WHERE 筛选条件
	group by 分组元素
	having 筛选条件
	order by 排序字段
	limit 起始位子,数量;
	
	起始位子从0开始

7.联合查询:将多条查询语句的结果合并成一个结果


SELECT 元素 FROMWHERE 条件
UNION ALL(all不去重)
SELECT 元素 FROMWHERE 条件

注意:元素数必须相同
	  会去重


安装教程
DML
DDL
TCL


在这里插入图片描述
                                                                                --某科学的超电磁炮

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值