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;
相关推荐
DB哥讲数据库19 小时前
【ClickHouse安装教程】从零开始部署高性能列式数据库(附ClickHouse安装包)
数据库·clickhouse
TDengine (老段)19 小时前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
小白勇闯网安圈1 天前
Django 响应对象、文件上传与类视图
数据库·django·sqlite
努力的小雨1 天前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全
数据库
科技绘图1 天前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
ltl1 天前
数据库作为 LLM 记忆体:语义缓存、RAG 与一致性
数据库
ltl1 天前
WAL 与崩溃恢复:ARIES 协议怎么跑通
数据库
ltl1 天前
TEE 数据库:EnclaveDB、Oblivious 原语与机密 SQL
数据库
麻瓜code1 天前
【Mysql】重新学一遍 SQL 执行顺序
数据库·sql
这个DBA有点耶1 天前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构