MYSQL基础3

本文深入讲解MySQL数据库操作,包括表的创建、数据插入、排序、聚合函数使用、常见函数介绍、数学函数应用、多条件查询、分组及分页查询等核心功能。通过具体实例,帮助读者掌握SQL语言的基本语法和高级技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值