基本语法 🔰
SELECT DISTINCT *{column1,column2,column3...}
FROM tablename;
注意事项
select 指定查询哪些列的数据
column指定列名
*号代表查询所有列
From指定查询哪张表
DISTINCT可选,指显示结果时,是否去掉重复数据
小王在先创建一张人物表
-- 创建新的表(人物表) create table people( 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语句 插入7条信息!
insert into people (id,`name`,chinese,english,math)values(1,'小王',89,78,90); insert into people (id,`name`,chinese,english,math)values(2,'张三',67,98,56); insert into people (id,`name`,chinese,english,math)values(3,'小宋',87,78,77); insert into people (id,`name`,chinese,english,math)values(4,'李四',88,98,90); insert into people (id,`name`,chinese,english,math)values(5,'赵六',82,84,90); insert into people (id,`name`,chinese,english,math)values(6,'欧王五',55,85,45); insert into people (id,`name`,chinese,english,math)values(7,'小胡',75,65,30);
小王同学 想单独查询 name 和english的分数
1. -- 查询表中所有人的姓名和对应的英语成绩 2. select `name`,english from people;
小王想过滤一些重复的信息🥟
1. -- 过滤表中重复的数据 distinct 2. select distinct *from people;
可以发现 竟然什么也没有去掉!!
因为要具体到某一列才可以
小王查询一个数学成绩!
1. -- 要查询的记录,每个字段都相同,才会去重 2. select distinct math from people;
果然把重复的90分去掉了两个!
所以如果我们要去重的话 前提条件是:每个字段都相同 才能去重!
使用表达式对查询的列进行运算🍗
SELECT * {column1 |expression ,column2 |expression,...}
FROM tablename
select语句中使用as语句🍟
SELECT column_name as 别名 from 表名
小王想统计下同学们的总分 该如何操作呢
其实用sql语句非常的easy~
1. -- 统计每个学生的总分 2. select `name`,(chinese+math+english)from people;
这里的英文 看上去很别扭 我们可以用别名来代替!!
select `name`,(chinese+math+english) AS Total_score from people;
这样就好看多啦!
where字句中用到的运算符🥙
我们先查询几条语句!
查询姓名为小胡同学的成绩单
SELECT *FROM people WHERE `name`='小胡';
查询英语成绩大于90的同学
SELECT * FROM people WHERE english>90;
查询总分大于250分的同学
SELECT * FROM people WHERE (chinese+math+english)>250;
查询总分大于大于200并且数学成绩小于语文成绩,姓李的同学
1. -- 这里的%表示名字以李开头 2. select * from people 3. where (chinese+math+english)>200 and math>chinese and `name` like 4. '李%'
查询 英语分数在80到90之间的学生
1. select *from people 2. where english between 80 and 90
以上就是小王同学给大家带来的select一条龙服务