MySQL--五、sql编程

一、mysql中的函数(方法)

(一)系统提供的函数

1.单行函数

1)数学函数  数学运算

  1. ceil(12.001)  13  向上取整  直接去除小数点后面的数据然后对数值加1
  2. floor(12.999) 12  向下取整 直接去除小数点后面的数据
  3. round(数值)  直接保留整数部分 做四舍五入
  4. round(数值,位数)  根据位数进行四舍五入
  5. power(基数,幂数)  用于计算一个数的N次方
  6. truncate(小数,位数)  对小数进行保留位数的运算 不考虑四舍五入
  7. sqrt(数值)  对数据进行开方运算  只能开平方
  8. rand() 产生一个0-1之间的小数

2)日期函数

(1)获取当前计算机的时间   now()   localtime();

(2)提取日期中 年 月 日 时 分 秒

  • year()
  • month()
  • day();
  • hour();
  • minute();
  • second();
  • quarter(); 用于获取时间对应的季度

(3)获取日期是这一年的第几天    dayofyear(日期)

(4)获取日期是星期几  

         dayname(日期) 返回的是一个英文单词  

         dayofweek(日期)  这一个日期是这一周的第几天 周日是第一天

(5)计算一个基础日期再过N  年/月/季度/天/时/分/秒 之后的日期 :

         date_add(基础日期,interval   N   单位);

(6)计算两个日期相差的天数   datediff(被减数,减数);

3)字符串函数

  1. 获取字符串的字符数量 : char_length(字符串) 返回字符串的字符数
  2. 获取字符串的字节数 :  length(字符串)  中英文一个字符占据的字节数不同
  3. 进行字符串中英文字符的大小写转换 : lower(字符串)  转小写  upper(字符串)  转大写
  4. 去除字符串中的空格 : trim(字符串)  ltrim(字符串)  rtrim(字符串)  分别去除 两端空格  左端空格  右端空格
  5. 查找且替换字符串中的内容 : replace(被操作的字符串,要替换的内容, 替换的新内容)
  6. 查找目标字符串在原字符串中的下标位置 : instr(被查找的字符串,要查找的字符串);   下标从1开始  如果找不到 返回0
  7. 字符串的截取:substring(被操作的字符串,起点,长度)  进行字符串的截取  从起点开始 截取N个字符
  8. left  / right  也是用于做字符串内容的截取  left(被操作的字符串,截取的字符数)
  9. 字符串的拼接   concat(字符串1,字符串2,字符串3…)  进行字符串的拼接 可以任意传入多个字符串 用逗号隔开即可

 

2.分组函数(聚合函数)

  1. max()
  2. min()
  3. sum()
  4. avg()
  5. count()  *   1   列名(空值不计数 )

 

 


二、自定义存储过程

1.删除可能存在的同名存储过程

drop  procedure  if  exists  存储过程名称;

2.创建存储过程

create  procedure  存储过程名称(in/out  参数名  数据类型,…) #默认in

begin

      逻辑代码 sql指令

end;

3.调用存储过程

call  存储过程名称(实参列表);

 


三、局部变量的使用

1.声明

declare  变量名  数据类型(长度);  所有变量声明的代码必须是存储过程的第一部分

2.赋值

set  变量名= 数据值;

3.使用  

直接用变量名进行数据访问

 


四、if语句

if()
    then
        ....;
    else
        ...;
end if;
if()
    then
        ....;
    else if()
    then
        ...;
    else
        ...;
end if;
if()
    then
        if()
        then
            ....;
        end if;
end if;

 

 


五、while循序语句

declare i int;
declare sun int;
set i=0;
set sum=0;
while(i<num)
    do
        set sum=sum+i;
        set i=i+1;
end while;

 

 


六、选择条件结构

select *,case
    when empSalary <1000 then '贫穷'
    when empSalary <2000 then '小康'
    else '富裕'
end
as 生活水平 from employee;

 


七、为什么需要独立的调整表中列属性 或 约束

1、修改列名
alter table 表名  change  原列名   新列名  数据类型  [约束]

2、新增列
alter table 表名  add column 列名 数据类型 [约束:是否允许为空]
如果允许为空 已经存在的数据行 该列获得Null
如果不允许为空  已经存在的数据行  该类获得对应类型的缺省值

3、删除列
alter table 表名  drop column  列名

4、调整列的各种约束
默认 唯一 主键 等约束 可以使用
alter table 表名  modify  列名 类型  [各种约束];

5、外键约束
alter table 表名  add constraint  名字  foreign key (外键)  references 主表(主键);

修改主键字段(如果已有,需要先drop掉已有主键)
alter table 表名 add primary key(主键列名1,主键列名2)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值