MySQL_SELECT语句

基本语法:

注意事项;

1.SELECT指定查询哪些列的数据

2.COLUNM指定列名

  1. * 号代表查询所有列

4.FROM指定查询哪张表

5.DISTINCT可选,指显示结果时,是否去掉重复数据

sql 复制代码
#创建新的表
CREATE TABLE student(
	id INT NOT NULL DEFAULT 1,
	NAME VARCHAR(20) NOT NULL DEFAULT '',
	chinese FLOAT NOT NULL DEFAULT 0.0,
	english FLOAT NOT NULL DEFAULT 0.0,
	math FLOAT NOT NULL DEFAULT 0.0
);

INSERT INTO student(id,NAME,chinese,english,math) VALUES(1,'刘备',89,78,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(2,'张飞',67,98,56);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(3,'宋江',87,78,77);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(4,'关羽',88,98,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(5,'赵云',82,84,67);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(6,'欧阳锋',55,85,45);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(7,'黄蓉',75,65,30);

#查询表中所有学生的信息
SELECT * FROM student
#查询表中所有学生的姓名和对应的英语成绩
SELECT `name`,english FROM student;
#过滤表中重复数据DISTINCT
SELECT DISTINCT english FROM student
#要查询的记录,每个字段都相同,才会去重
SELECT DISTINCT `name`,english FROM student#这样写只有当name和english同时相同才会去重

使用表达式对查询的列进行运算:

在SELECT语句中可使用as语句:

sql 复制代码
#统计每个学生的总分
SELECT `name`,(chinese+english+math)FROM student;
#在所有学生总分加10分
SELECT `name`,(chinese+english+math+10)FROM student;
#使用别名 (AS + 别名)表示学生分数(chinese+english+math)
SELECT `name` AS '学生姓名',(chinese+english+math+10) AS total_score FROM student;

WHERE子句中常用的运算符:

sql 复制代码
#创建新的表
CREATE TABLE student(
	id INT NOT NULL DEFAULT 1,
	NAME VARCHAR(20) NOT NULL DEFAULT '',
	chinese FLOAT NOT NULL DEFAULT 0.0,
	english FLOAT NOT NULL DEFAULT 0.0,
	math FLOAT NOT NULL DEFAULT 0.0
);

INSERT INTO student(id,NAME,chinese,english,math) VALUES(1,'刘备',89,78,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(2,'张飞',67,98,56);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(3,'宋江',87,78,77);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(4,'关羽',88,98,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(5,'赵云',82,84,67);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(6,'欧阳锋',55,85,45);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(7,'黄蓉',75,65,50);

#使用where语句进行过滤查询
#查询姓名为赵云的学生成绩
SELECT * FROM student WHERE `name` = '赵云';
#查询英语成绩大于90分的同学
SELECT * FROM student WHERE english > 90;
#查询总分大于200分的同学
SELECT * FROM student WHERE (english+chinese+math) > 200;
#查询math大于60,且(and)english大于90的学生成绩
SELECT * FROM student WHERE english > 90 AND math > 60;
#查询总分大于200分,并且 数学成绩小于语文成绩的姓张的学生
SELECT * FROM student WHERE (english+chinese+math) > 200 AND math < chinese AND `name` LIKE '张%';
# %代表名字以张开头的就可以

#查询英语分数在80-90之间的同学
SELECT * FROM student WHERE english BETWEEN 80 AND 90;
#查询数学分数为89,90,91的同学
SELECT * FROM student WHERE math IN(89,90,91);
#查询所有姓李的学生成绩
SELECT * FROM student WHERE `name` LIKE '李%';
#查询数学>80,语文>80的同学
SELECT * FROM student WHERE chinese > 80 AND math > 80;
#查询语文在70-80之间的同学
SELECT * FROM student WHERE chinese BETWEEN 70 AND 80;
#查询总分为189,190,191的同学
SELECT * FROM student WHERE (english+chinese+math)IN(189,190,191);
#查询所有姓李或宋的学生成绩
SELECT * FROM student WHERE `name` LIKE '宋%' OR `name` LIKE '李&';
#查询数学比语文多30分的同学
SELECT * FROM student WHERE(math - chinese) > 30;

使用ORDER BY字句排序查询结果:

1.ORDER BY指定排序的列,排序的列既可以是表中的列名,也可以是SELECT语句后指定的列名

2.ASC 升序(默认) DESC 降序

3.ORDER BY子句应位于SELECT语句的结尾

sql 复制代码
#对数学成绩排序后输出(升序)
SELECT * FROM student ORDER BY math;
#对总分按从高到低的顺序输出(降序)
SELECT (math+chinese+english)AS total_score FROM student ORDER BY total_score DESC;
#对姓李的学生成绩排序输出(升序)
SELECT (math+chinese+english)AS total_score FROM student WHERE `name` LIKE '李%' ORDER BY total_score;
相关推荐
倒流时光三十年26 分钟前
SpringBoot 数据库同步 Elasticsearch 性能优化
数据库·spring boot·elasticsearch
码农小卡拉1 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
怣501 小时前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
wjhx1 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
冰暮流星1 小时前
javascript之二重循环练习
开发语言·javascript·数据库
万岳科技系统开发2 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
冉冰学姐2 小时前
SSM智慧社区管理系统jby69(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·管理系统·智慧社区·ssm 框架
杨超越luckly2 小时前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
斯普信专业组2 小时前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
Elastic 中国社区官方博客2 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索