4 MySQL的日期时间函数(1)
MySQL数据库中的日期时间函数主要用来处理日期和时间值。
例如:
-- 查看当前的系统日期
SELECT CURDATE();
结果:
-- 对系统日期进行加数字操作就会得到数字的表达结果
SELECT CURDATE() + 0;
结果:
例:
-- 查看当亲系统时间并对其进行数字操作
SELECT CURTIME(),CURTIME()+0;
例:
-- 查看当前的系统日期和时间
-- 方式1
SELECT NOW();
-- 方式2
SELECT SYSDATE();
方式1结果:
方式2结果:
例:
-- 日期的加运算
SELECT DATE_ADD('2020-06-01',INTERVAL 3 MONTH),DATE_ADD('2020-06-01',INTERVAL 3 DAY);
结果:
例:
-- 计算两个日期之间间隔的天数
SELECT DATEDIFF('2020-06-01','2020-06-03'),DATEDIFF('2020-06-03','2020-06-01');
结果:
例:
-- 日期格式化
SELECT DATE_FORMAT('2020-06-03','%Y%m%d')
结果:
5 MySQL的日期时间函数(2)
需求1SQL:
-- 1、向借阅信息表中插入借书信息,注意借书日期和还书日期
INSERT INTO borrowinfo VALUES(20150301, '210210199901013333', CURDATE(), DATE_ADD(CURDATE(),INTERVAL 1 MONTH), '否');
-- 2、更新图书信息表的库存
UPDATE bookinfo SET store = store -1 WHERE book_id = 20150301;
-- 3、更新读者信息表的余额
UPDATE readerinfo SET balance = balance - (SELECT price FROM bookinfo WHERE book_id = 20150301) * 0.05 WHERE card_id = '210210199901013333';
需求2SQL:
SELECT book_id, book_category_id, book_name, author, price, DATE_FORMAT(pubdate, '%Y-%m'), store FROM bookinfo;
结果:
6 MySQL的聚合函数
-- 1.求图书信息表中所有图书的平均价格
SELECT AVG(price) FROM bookinfo;
结果:
-- 2.求图书信息表中所有图书的总价格
SELECT SUM(price) FROM bookinfo;
结果:
-- 3.求图书信息表中的最大库存
SELECT MAX(store) FROM bookinfo;
结果:
-- 4.求图书信息表中的最小库存
SELECT MIN(store) FROM bookinfo;
结果:
-- 5.求图书信息表中有多少种图书
SELECT COUNT(*) FROM bookinfo;
结果:
-- 6. 按类别进行分组, 查询每种类别下有多少种图书以及每种类别图书的库存总和
SELECT book_category_id AS '图书类别', COUNT(book_id) AS '图书种类', SUM(store) AS '库存总和' FROM bookinfo GROUP BY book_category_id;
结果:
7 MySQL的信息函数与加密函数
系统信息函数举例:
-- 查看当前MySQL服务器版本的版本号
SELECT VERSION();
结果:
-- 查看MySQL服务器当前连接的次数
SELECT CONNECTION_ID();
结果:
-- 查看当前的数据库名(2种方式)
SELECT DATABASE(), SCHEMA();
结果:
-- 查看当前登录的用户名
SELECT USER();
结果:
-- 加密函数
SELECT MD5('test');
结果:
创建一个表,并插入数据对密码进行加密:
-- 创建表
CREATE TABLE myuser(
username VARCHAR(20),
PASSWORD VARCHAR(35)
);
-- 插入数据
INSERT INTO myuser VALUES('admin', MD5('admin'));
-- 查看表中数据
SELECT * FROM myuser;
结果:
有人不禁要问:既然密码已经在数据库进行了加密,那么如何判断该用户的登陆密码的正确性呢?
实际上,我们可以通过以下SQL语句进行用户名和密码的验证:
SELECT * FROM myuser WHERE username = 'admin' AND PASSWORD = MD5('admin');
结果:
查找到了数据,说明用户名和密码是正确的。
还可以使用函数“password()”对数据进行加密处理:
SELECT PASSWORD('root');
结果: