博客简介:
MySQL专栏:MySQL零基础入门
博客主页:程序员飞鸟
哈喽,我是飞鸟,欢迎阅读,如果文章对你有帮助,点赞关注支持一下!🧡🧡🧡
文章目录
select语句
group by语句分组和having过滤
#增强group by的使用 #(1)显示每种岗位的雇员总数、平均工资 select count(*),avg(sal),job from emp group by job; select count(*),count(comm) from emp;
字符串函数
#转换成大写 select ucase(list_name) from table_name; #转换成小写 select lcase(list_name) from table_name; #从str的position开始【从1开始计算】,取length个字符 select substring(list_name,1,2) from table_name; #去除前端空格或后端空格 #去除左边空格 select ltrim(' list_name') from dual; #去除右边空格 select rtrim('list_name ') from dual; #去除两边空格 select trim(' list_name ') from dual; #从str的position开始【从1开始计算】 substring(list_name,2) #以首字母小写的方式显示所有员工<表名>的姓名 #先取出姓名的第一个字符,转成小写的 #把他和后面的字符串进行拼接输出 select concat(lcase(substring(list_name,1,1)), substring(list_name,2)) as new_name;
数学相关函数
#数学相关函数 #abs(number) 绝对值 select abs(-10) from dual; #bin(decimal_number) 十进制转二进制 select bin(10) from dual; #ceiling(number2) 向上取整,得到比number2的最小整数 select ceiling(1.1) from dual; #conv(number2,from_base,to_base) 进制转换 select conv(9,10,2) from dual; #floor(number2) 向下取整,得到比num2小的最大整数 select floor(1.2) from dual; #format(number,decimal_places) 保留小数点(四舍五入),保留小数点后几位数 select format(45,23454,2) from dual; #least(number,number2 [,...]) 求最小值 select least(0,1,4,-20,3) from dual; #mod(numerator,denominator) 求余数 select mod(10,3) from dual; #rand([seed]) rand([seed]) 返回随机数 其范围 0< v<1.0 #如果使用read() 每次返回不同的随机数,在0< v<1.0 #如果使用read(seed) 返回随机数,范围0< v<1.0,如果seed不变,该随机数也不变了。 select rand() from dual;
时间日期相关函数
查询结果:
//创建空表 create table mes( id int, content varchar(30), send_time datetime ); //查询表 select * from mes; //插入数据到表中 insert into mes values(1,'北京新闻',current_timestamp()); insert into mes values(2,'上海新闻',now()); insert into mes values(3,'广州新闻',now()); select now() from mes; //显示所有新闻信息,发布日期只显示日期,不显示时间 select id,content,date(send_time) from mes; //查询在10分钟内发布的新闻 select * from mes where date_add(send_time,interval 10 minute) >= now() //在mysql的sql语句中求出2011-11-11和1990-2-2相差多少天 select datediff('2011-11-11','1990-02-02') from dual; //查询date减去一个时间 select * from mes where send_time >= date_sub(now(),interval 40 minute); //mysql的sql语句中求出你活了多少天?1998-06-18 出生 select datediff(now(),'1998-06-18') from dual; //如果你能活80岁,求出你还能活多少天。1998-06-18 出生 //先求出活80岁时,是什么日期x //然后再使用datediff(x,now()); select date_add('1998-06-18',interval 80 year),now() from dual; select datediff(date_add('1998-06-18',interval 80 year),now()) from dual; select timediff('10:11:11','06:23:24') from dual; //year|month|day|date(datetime) select year(now()) from dual; select month(now()) from dual; select month('2013-11-10') from dual; //UNIX_TIMESTAMP():返回的是1970-1-1到现在的秒数 select unix_timestamp() from dual; //from_unixtime():可以把一个unix_timestamp秒数,转成指定格式的日期 select from_unixtime(1637990647,'%Y-%m-%d') from dual; select from_unixtime(1637990647,'%Y-%m-%d %H:%i:%s') from dual; //意义:使用int保存一个Unix时间戳,然后使用from_unixtime()进行转换,还是非常有实用价值的
秒数时间返回
查询结果
加密和系统函数
//加密函数和系统函数 //user() 查询用户 //可以查看登录到mysql的有哪些用户,以及登录的IP select user() from dual;//用户@IP地址 //database() 查询当前使用数据库名称 select database() from dual; //用户表存放密码时,是md5 create table hsp_user (id int, `name` varchar(32)not null default '', pwd char(32) not null default ''); select * from hsp_user; insert into hsp_user values(100,'韩顺平',md5('hsp')); select * from hsp_user //sql where `name`='韩顺平' and pwd = md5('hsp') //password(str) //加密函数,mysql数据库的用户密码就是password函数加密 select password('hsp') from dual; // //select * from mysql.user\G 从原文密码str计算并返回密码字符串 //通常用于对mysql数据库的用户密码加密 //mysql.user 表示 数据库.表 select * from mysql.user
流程控制语句
//流程控制语句 #if(expr1,expr2,expr3) 如果expr1为true,则返回expr2否则返回expr3 select if(true,'北京','上海') from dual; select ifnull(null,'hsp') from dual; select case when true then 'jack' when false then 'tom' else 'mary' end #1.查询emp表,如果comm是null,则显示0.0 # 老师说明,判断是否为null要使用is null,判断不为空 使用is not select ename,if(comm is null,0.0,comm) from emp; select * from mes;
mysql表查询–加强
select * from table_name order by 部门号 asc,sal desc;
欢迎大佬们投稿,优质文章我会加精,每天晚上11点我会给大佬们一键三连,诚邀大佬们加入社区,共同学习,一起努力💛💛
点击---->https://bbs.csdn.net/forums/TuRing