USE mysql0001;
CREATE TABLE users
(
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',
username VARCHAR(40) NOT NULL COMMENT '用户名',
gender VARCHAR(2) DEFAULT '女' COMMENT '性别',
idcard VARCHAR(20) UNIQUE NOT NULL COMMENT '身份证',
javaScore FLOAT DEFAULT '0' COMMENT 'java成绩'
)
INSERT INTO users SET username='关羽',gender='男',idcard='110',javaScore=90
INSERT INTO users SET username='张飞',gender='男',idcard='90',javaScore=56;
INSERT INTO users SET username='刘备',gender='男',idcard='322',javaScore=78;
INSERT INTO users SET username='诸葛亮',gender='男',idcard='432',javaScore=129;
#--------------------------------排序(order by 字段 降序/升序)------------------------------------------------
#降序
SELECT * FROM users ORDER BY javaScore DESC;
#升序
SELECT * FROM users ORDER BY javaScore ASC;
#--------------------------------------聚合函数----------------------------------------------------------
#在mysql中函数使用select关键字掉用:select 函数名(字段)【from 表名】
#找出最大值:max(字段名)
#找出users表中的JavaScore最高分
SELECT MAX(javaScore)FROM users;
SELECT MAX(javaScore)AS 最高分 FROM users;
#找出最小值:min(字段名)
#找出users表中的JavaScore最低分
SELECT MIN(javaScore)AS 最低分 FROM users;
#求平均数:avg(字段名)
SELECT AVG(javaScore)AS 平均分 FROM users;
#求和:
SELECT SUM(javaScore)AS 总分数 FROM users;
#统计记录:count(字段名)
#count(字段名):如果字段的值为null,则此字段对应的数据条数不在统计之内
#为了解决上述的问题,在统计某一张表中的所有数据记录时,最好采用count(*)
SELECT COUNT(*) FROM users;
SELECT COUNT(idcard) AS 总条数 FROM users;
#-------------------------------------常用的函数-----------------------------------------------
#NOW():获取系统时间,时间的格式包括年月日时分秒
SELECT NOW() AS 当前系统时间;
#curtime():只获取系统的时分秒
SELECT CURTIME();
#curdate():只获取系统的年月日
SELECT CURDATE();
#---------------------------------------数学函数-------------------------------------------------------
#向上取舍:
SELECT CEIL(2.3);
#向下取舍:floor(数值)
SELECT FLOOR(2.3);
#返回0~1的随机数:不用接收参数,返回的时0-1之间的小数
SELECT RAND();
#获取一个随机的4位数字,没有小数
SELECT CEIL(RAND()*10000)
#---------------------------------------同时查询多条数据-------------------------------------------------------
#获取id=1或者id=2或者id=4
SELECT * FROM users WHERE id!=3;
SELECT * FROM users WHERE id=1 OR id=2 OR id=4;
#in(数据1,数据2,,,):判断表中某一个字段是否在in后面的参数列表中
SELECT * FROM users WHERE id IN(1,2,4);
SELECT * FROM users WHERE id IN(1,2,4) ORDER BY javaScore ASC;
#not in:不再not in(数据)之外的
SELECT * FROM users WHERE id NOT IN(1,2,4);
SELECT * FROM users WHERE username='小白';
#----------------------------------------分组查询(group by)------------------------------------------------
CREATE TABLE goods(
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
goodName VARCHAR(40) COMMENT '商品名称',
goodCategory VARCHAR(20) COMMENT '商品种类'
)
#查询goods表中的商品的种类数量
SELECT goodCategory FROM goods GROUP BY goodCategory;
#查询goods表中是否有种类为衣服的类型 having
#注意点:如果一个查询语句中使用了group by,则后面的条件需要使用having关键字
SELECT goodCategory FROM goods GROUP BY goodCategory HAVING goodCategory='衣服'
#-----------------------------------------分页----------------------------------------------------------
#goods表中有7条数据记录,每页显示3条,总共可以分成3页
#获取第一页数据
SELECT * FROM goods LIMIT 0,3;
#获取第二页数据
SELECT * FROM goods LIMIT 3,3;
#获取第三页数据
SELECT * FROM goods LIMIT 6,3;
SELECT * FROM goods LIMIT (pageNo-1)*pageSize,pageSize