mysql基本语句

mysql语句

1.函数使用
	1.查看版本
		select version();
	
	2.查看当前登录的用户
		select user();
	
	3.查看当前使用的数据库
		select database();

	4.多个字段拼接到一起
		select concat(name,'+',uid,'+',shell) from ...
		select concat_ws(name,'+',uid,'+',shell) from ...

字符函数:select length('aa')

	length(str):返回字符串长度,以字节为单位,汉字3个字节
	char_length(str):返回字符串长度,以字符为单位,一个汉字一个字符
	upper(str)或ucase(str):转大写
	lower(str)或lcase(str):转小写
	substr(a,start,end):截取
	instr(str,str1):返回str1在str内的位置
	trim(s):去除两边空格

数学函数
	abs(x):绝对值
	pi()
	mod(x,y):x除以y的余数
	ceil(x):向上取整
	floor(x):向下取整

时间函数
	curtime():当前时间
	curdate():当前日期 ,date(now()):日期
	curnow():当前日期时间,time(now()):时间

	year('2024-12-12 10:28:46'):年
	month(now()):月
	day(now())/week(now()):日/一年的第几周
	hour(now()):时
	minute(now()):分
	second(now()):秒

	dayofyear(now()):年中的第几天
	dayofmonth(now()):月中的第几天
	
	quarter(now()):第几季度
	monthname(now()):月份名称
	dayname(now()):星期名称	

聚合函数(通常和group by连用,对字段进行分组)

	avg()
	sum()
	min()
	max()
	count()

数学计算(字段)
	+
	-
	*
	/
	%
	():优先级

if函数
	if(条件,v1,v2):条件为true返回v1,否则返回v2
	ifnull(v1,v2):v1不为null,返回v1,否则返回v2

case函数

	case 
	when 字段=值 then 输出结果
	when 字段=值 then 输出结果
	else 输出结果
	end



2.增,删,改,查

	insert into 表名(字段)  values(字段值),(字段值);
	
	delete from 表名  where 条件;
	
	update 表名 set 字段1=值1,…,字段n=值n  where 条件; 

	elect 列名 from 表名 where 条件;

3.基本查询	
	1.基本查询,
		别名as,(表和字段)
		distinct去重
		select 列名 from 表名 where 条件;

	2.正则匹配查询

		select 列名 from 表名 where 字段 regexp '^.{}$';

	3.模糊匹配查询(like,)

		%:0个或多个字符 
		-:一个字符
		select 列名 from 表名 where 字段 like '值';

	4.in/not in 关键字查询,字段为

		select 列名 from 表名 where 字段 in (值1,值2,……);
	
	5.between and 关键字查询

		select 列名 from 表名 where 字段 between 值1 and 值2;
	
	6.查询空null

		select 列名 from 表名 where 条件 is null;


4.高级查询

	1.内连接(inner join)
		
		等值:相同字段进行等号连接
			select 字段 from 表1 inner join 表2 on 连接条件 where 筛选条件

		非等值连接:无相等字段,基于非等号条件进行连接,
		
	2.外连接:根据字段连接


		左连接(left join):左为主,右为空

			select * from 表1 left join 表2 on 连接条件 where 筛选条件

		右连接(right join):右为主,左为空


	3.全连接(连接两个查询语句):union /union all

		select colum1,...columN from tableA  union select colum1,...columN from tableB;

		union语句注意事项:

	         1.通过union连接的SQL它们分别单独取出的列数必须相同;
	
	         2.不要求合并的表列名称相同时,以第一个sql 表列名为准;


	4.嵌套查询:
		where,having,from,select之后的嵌套查询

		=:外层查询的某个列的值是否等于子查询返回的值。
		>、<、>=、<=:用于比较外层查询的列值与子查询结果之间的大小关系。
		IN:用于检查外层查询的某个列值是否在子查询返回的一组结果中。
		ANY / SOME:用于检查外层查询的列值是否满足子查询返回结果中的任意一个值的条件。
		ALL:用于检查外层查询的列值是否满足子查询返回结果中的所有值的条件。



5.查询结果处理(分组、过滤、排序、分页)

	1.分组(一般和聚合一起使用)
		select 字段 from 表 where 条件 group by 字段;

	2.过滤:按照某个字段分组,统计每组符合条件的个数
			where和having条件
			where:处理表里面的真实字段
			having:处理select后面的临时字段
		select count(字段) from 表 where 条件 group by 字段 having count(字段)>1;

	3.排序
		select 字段 from 表 where 条件 order by 字段  asc/desc;

	4.分页,0开始计数

		select 字段 from 表名 where 条件 LIMIT 开始行,往后查几行;

mysql语句

1.函数使用
    1.查看版本
        select version();
    
    2.查看当前登录的用户
        select user();
    
    3.查看当前使用的数据库
        select database();

    4.多个字段拼接到一起
        select concat(name,'+',uid,'+',shell) from ...
        select concat_ws(name,'+',uid,'+',shell) from ...

字符函数:select length('aa')

    length(str):返回字符串长度,以字节为单位,汉字3个字节
    char_length(str):返回字符串长度,以字符为单位,一个汉字一个字符
    upper(str)或ucase(str):转大写
    lower(str)或lcase(str):转小写
    substr(a,start,end):截取
    instr(str,str1):返回str1在str内的位置
    trim(s):去除两边空格

数学函数
    abs(x):绝对值
    pi()
    mod(x,y):x除以y的余数
    ceil(x):向上取整
    floor(x):向下取整

时间函数
    curtime():当前时间
    curdate():当前日期 ,date(now()):日期
    curnow():当前日期时间,time(now()):时间

    year('2024-12-12 10:28:46'):年
    month(now()):月
    day(now())/week(now()):日/一年的第几周
    hour(now()):时
    minute(now()):分
    second(now()):秒

    dayofyear(now()):年中的第几天
    dayofmonth(now()):月中的第几天
    
    quarter(now()):第几季度
    monthname(now()):月份名称
    dayname(now()):星期名称    

聚合函数(通常和group by连用,对字段进行分组)

    avg()
    sum()
    min()
    max()
    count()

数学计算(字段)
    +
    -
    *
    /
    %
    ():优先级

if函数
    if(条件,v1,v2):条件为true返回v1,否则返回v2
    ifnull(v1,v2):v1不为null,返回v1,否则返回v2

case函数

    case 
    when 字段=值 then 输出结果
    when 字段=值 then 输出结果
    else 输出结果
    end

2.增,删,改,查

    insert into 表名(字段)  values(字段值),(字段值);
    
    delete from 表名  where 条件;
    
    update 表名 set 字段1=值1,…,字段n=值n  where 条件; 

    elect 列名 from 表名 where 条件;

3.基本查询    
    1.基本查询,
        别名as,(表和字段)
        distinct去重
        select 列名 from 表名 where 条件;

    2.正则匹配查询

        select 列名 from 表名 where 字段 regexp '^.{}$';

    3.模糊匹配查询(like,)

        %:0个或多个字符 
        -:一个字符
        select 列名 from 表名 where 字段 like '值';

    4.in/not in 关键字查询,字段为

        select 列名 from 表名 where 字段 in (值1,值2,……);
    
    5.between and 关键字查询

        select 列名 from 表名 where 字段 between 值1 and 值2;
    
    6.查询空null

        select 列名 from 表名 where 条件 is null;


4.高级查询

    1.内连接(inner join)
        
        等值:相同字段进行等号连接
            select 字段 from 表1 inner join 表2 on 连接条件 where 筛选条件

        非等值连接:无相等字段,基于非等号条件进行连接,
        
    2.外连接:根据字段连接


        左连接(left join):左为主,右为空

            select * from 表1 left join 表2 on 连接条件 where 筛选条件

        右连接(right join):右为主,左为空


    3.全连接(连接两个查询语句):union /union all

        select colum1,...columN from tableA  union select colum1,...columN from tableB;

        union语句注意事项:

             1.通过union连接的SQL它们分别单独取出的列数必须相同;
    
             2.不要求合并的表列名称相同时,以第一个sql 表列名为准;


    4.嵌套查询:
        where,having,from,select之后的嵌套查询

        =:外层查询的某个列的值是否等于子查询返回的值。
        >、<、>=、<=:用于比较外层查询的列值与子查询结果之间的大小关系。
        IN:用于检查外层查询的某个列值是否在子查询返回的一组结果中。
        ANY / SOME:用于检查外层查询的列值是否满足子查询返回结果中的任意一个值的条件。
        ALL:用于检查外层查询的列值是否满足子查询返回结果中的所有值的条件。

5.查询结果处理(分组、过滤、排序、分页)

    1.分组(一般和聚合一起使用)
        select 字段 from 表 where 条件 group by 字段;

    2.过滤:按照某个字段分组,统计每组符合条件的个数
            where和having条件
            where:处理表里面的真实字段
            having:处理select后面的临时字段
        select count(字段) from 表 where 条件 group by 字段 having count(字段)>1;

    3.排序
        select 字段 from 表 where 条件 order by 字段  asc/desc;

    4.分页,0开始计数

        select 字段 from 表名 where 条件 LIMIT 开始行,往后查几行;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyQAQLinux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值