-- 创建表 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;