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