课堂练习01

 
--  注释
-- 一.基础函数
-- 1.lower() 转换为全小写
select 'ABC',lower('ABC');
-- 2.upper() 转换为全大写
select 'abc',upper('abc');
-- 3.length() 获取长度(字节数)
select dname,length(dname)from dept;
-- 4.substr()截取子串(数据库中的字符下标从1开始,截取时含头含尾,
-- 若超出范围则默认截取到最后;
select dname,substr(dname,1,6)from dept;
-- 5.concat()拼接字符串,
select concat(dname,'(',loc,')') from dept;
-- 练习:将 'abc' 的首字母大写
select concat(upper(substr('abc',1,1)),concat(substr('abc',2,3)));

-- 6.replace() 替换字符串 
select dname,replace(dname,'人','人类')from dept;
select dname,replace(dname,'怪','精')from dept;
select replace(deptno,1,'一') from dept;
select replace(replace(deptno,1,'一'),2,'二') from dept;
select replace(replace(replace(deptno,1,'一'),2,'二'),3,'三' )from dept;

-- 7.round() 四舍五入 /ceil() 向上取整 floor() 向下取整 
select round(3.14),ceil(3.14),floor(3.14);
-- 8.uuid() 通用于唯一标识码
select uuid();
-- 9. \ 转义字符 
select 'abce\'d';

-- 二 .日期函数 
-- 1.now() 获取当前系统时间(年月日 时分秒)
select now(),curdate(),curtime(),sysdate();

-- oracle 中获取系统当前时间,dual 为内置伪表(虚伪的表)
-- select sysdate from dual;
-- 2.year() ,month(),day(),hour(),minute(),second() 
-- 分别获取年 月 日 时 分 秒
select hiredate,year(hiredate),month(hiredate),day(hiredate) from emp;

select hour(now()),minute(now()),second(now());


-- 3.date_fromat() 日期转字符串 
select date_format(now(),'%Y-%m-%d');
select date_format(now(),'%Y-%m-%d %H-%i-%s');

-- last_day() 获取每月最大日期(即最后一天)
select last_day(now());
select ename,hiredate,last_day(hiredate) from emp;
-- 获取每月的第一天最后一天
select date_format(hiredate,'%Y-%m-01'),last_day(hiredate) from emp;
-- 5.str_to_date() 字符串转日期
select str_to_date('2021-10-20','%Y-%m-%d');


-- 三 自定义函数 
-- 无参函数(无函数体)
-- return 后加具体的返回值 和 returns后定义返回值类型 
create function f1() returns int return 100; 
-- 调用函数
select f1();
-- 2.有参函数(有函数体)
delimiter $$ 
-- delimiter 定义结束符
create function f2(name varchar(20)) returns varchar(20)
begin 
-- 函数体开始     declare s varchar(20); 
    -- declare 声明变量
    select job from emp where ename=name into s;
    return s;
end $$
-- 函数体结束
delimiter ;

select f2('孙悟空');

delimiter $$ 
create function f2(name varchar(20)) returns varchar(20)
begin 
    declare s varchar(20);
    select job from emp where ename=name into s;
    return s;
end $$
delimiter ;

--调用函数 
select f2('孙悟空');
--删除函数 
drop function f1;
drop function if exists f2;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值