一、mysql中的函数(方法)
(一)系统提供的函数
1.单行函数
1)数学函数 数学运算
- ceil(12.001) 13 向上取整 直接去除小数点后面的数据然后对数值加1
- floor(12.999) 12 向下取整 直接去除小数点后面的数据
- round(数值) 直接保留整数部分 做四舍五入
- round(数值,位数) 根据位数进行四舍五入
- power(基数,幂数) 用于计算一个数的N次方
- truncate(小数,位数) 对小数进行保留位数的运算 不考虑四舍五入
- sqrt(数值) 对数据进行开方运算 只能开平方
- 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)字符串函数
- 获取字符串的字符数量 : char_length(字符串) 返回字符串的字符数
- 获取字符串的字节数 : length(字符串) 中英文一个字符占据的字节数不同
- 进行字符串中英文字符的大小写转换 : lower(字符串) 转小写 upper(字符串) 转大写
- 去除字符串中的空格 : trim(字符串) ltrim(字符串) rtrim(字符串) 分别去除 两端空格 左端空格 右端空格
- 查找且替换字符串中的内容 : replace(被操作的字符串,要替换的内容, 替换的新内容)
- 查找目标字符串在原字符串中的下标位置 : instr(被查找的字符串,要查找的字符串); 下标从1开始 如果找不到 返回0
- 字符串的截取:substring(被操作的字符串,起点,长度) 进行字符串的截取 从起点开始 截取N个字符
- left / right 也是用于做字符串内容的截取 left(被操作的字符串,截取的字符数)
- 字符串的拼接 concat(字符串1,字符串2,字符串3…) 进行字符串的拼接 可以任意传入多个字符串 用逗号隔开即可
2.分组函数(聚合函数)
- max()
- min()
- sum()
- avg()
- 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)