常用函数 字符串函数 数值函数 日期函数

-- 创建表
create table student(  -- 学生信息表
sid int primary key auto_increment,  -- 学号
sname varchar(20),  -- 姓名
sex varchar(2),  -- 性别
birth  varchar(100),   -- 出生日期
tel varchar(100),  -- 联系电话
intime varchar(100), -- 入学时间
idcard varchar(100), -- 身份证号码
saddr varchar(200), -- 家庭住址
cid int  -- 所属班级
);

-- 查看建表结构
show columns from student
-- 删除表
drop table student -- 可能会报错(如果表不存在就会报错)
drop table if exists student -- 不会报错
-- 多行数据的添加
insert into student (sname,sex,birth,tel,intime,idcard,saddr,cid) values
('李四','','2000-08-05','1234567','2017-03-01','1234567890','南漳','1'),
('王五','','1998-11-09','1234567','2017-03-01','1234567890','老河口','2'),
('赵六','','2001-09-09','1234567','2017-03-01','1234567890','襄阳市区','2'),
('孙七','','2001-09-22','1234567','2017-03-01','1234567890','襄阳市区','1'),
('羿才良','','1998-01-01','1234567','2017-03-01','1234567890','老河口','2'),
('左锐志','','1998-09-01','1234567','2017-03-01','1234567890','南漳','4'),
('蓝玉轩','','1999-05-26','1234567','2017-03-01','1234567890','襄阳市区','6'),
('***成和','','2001-12-22','1234567','2017-03-01','1234567890','老河口','5'),
('江强','','1998-04-11','1234567','2017-03-01','1234567890','谷城','6'),
('关安安','','2001-05-29','1234567','2017-03-01','1234567890','老河口','5'),
('郑从安','','2000-01-05','1234567','2017-03-01','1234567890','襄阳市区','4'),
('龚磐','','2000-02-14','1234567','2017-03-01','1234567890','襄阳市区','7'),
('邬巧兰','','2002-03-01','1234567','2017-03-01','1234567890','襄阳市区','1'),
('龚邢','','1998-08-24','1234567','2017-03-01','1234567890','南漳','1'),
('云秋华','','1999-06-04','1234567','2017-03-01','1234567890','南漳','4'),
('庄莹华','','1998-09-25','1234567','2017-03-01','1234567890','枣阳','7'),
('郜宁','','1999-12-24','1234567','2017-03-01','1234567890','襄阳市区','3'),
('荆武','','2001-05-07','1234567','2017-03-01','1234567890','枣阳','1'),
('林熙华','','2000-10-27','111111212144654464564562121111111','2017-03-01','1234567890','襄阳市区','2');




-- 常用函数


-- 第一 字符(串)函数

-- 返回最左边字符的ascii码  字符  a = 97
select ASCII('abc');
-- 返回所有 ASCII 码对应的字符 97,98,99 所对应的 ASCII 码是 A B C
select CHAR(97,98,99);
-- 获取指定字符的长度  'ADGHJ' 这个字符的长度是 5
select CHAR_LENGTH('ADGHJ');
-- 在字符串中查找指定的字符(串)的下标从 1 开始计数、找不到返回 0 第二个参数是指定的字符串
select INSTR('123465789AB','AB');
-- 字符串的截取
select SUBSTR('ABCDEFGHGELMN' FROM 3 FOR 3); -- 从第 3 个 开始截取、往后截取 3个
select SUBSTR('ABCDEFGHGELMN',3,3); -- 也是从第三个开始截取、往后截取三个
select SUBSTR('ABCDEFGHGELMN',3); -- 从第三个开始截取、截取后面的全部
-- 字符串的替换 、 把(张三)换成 (李四)
select REPLACE('Hello 张三','张三','李四');
-- 字符串的拼接  把(张三,李四,王五)这三个字符拼接到一起
select CONCAT('张三,','李四,','王五'); -- 后面还可以拼接多个字符串

-- 第二 数值函数
-- 绝对值
select ABS(-100);
-- 不小于 X 的最小整数   可以用在分页计算总页数 (1.99 取整数加一)
select ceil(1.99);
-- 不大于 X 的最大整数 舍弃小数取整数  
select floor(1.99);
-- 四舍五入取整数
select ROUND(1.99);
-- 保留指定的小数位数,多的舍弃
select TRUNCATE(1.9999999999999,2); -- 结果是 1.99 多的小数舍弃了
-- 获取 0 - 1 之间的随机小数
select rand();

-- 第三 日期函数
-- 获取当前的时间 
select now(),LOCALTIME(),LOCALTIME,LOCALTIMESTAMP(),SYSDATE();  -- 年-月-日 时:分:秒
select CURRENT_DATE(),CURRENT_DATE,CURDATE(); -- 年-月-日
select CURRENT_TIME(); -- 时:分:秒
-- 计算两个日期相隔的天数
select DATEDIFF('2017-06-06',CURRENT_DATE); -- CURRENT_DATE 当前的 年-月-日 (不要带上 时:分:表 不然会少算一天的)
select TIMESTAMPDIFF(DAY,CURRENT_DATE,'2017-06-06');  -- TIMESTAMPDIFF 和 SQL server 的 datediff() 用法类似

-- 获取当前月的最后一天
select LAST_DAY(now());
-- 获取指定单位的时间
select YEAR(now()); --
select MONTH(now()); --
select day(now()); --
select HOUR(now()); --
select MINUTE(now()); --
select SECOND(now()); --
-- 年-月-日 时:分:秒   (分别获取)
select YEAR(now()),MONTH(now()),day(now()),HOUR(now()),MINUTE(now()),SECOND(now());
-- 日期的加减
-- 一年后的今天
select DATE_ADD(now(),INTERVAL 1 year);
-- 一年前的今天
select DATE_SUB(now(),INTERVAL 1 year);









select * from student;

 

posted @ 2017-05-08 17:46  吕恒  阅读(300)  评论(0编辑  收藏  举报