mysql小课(4)

查询数据select
1、查询全部列

 select * from student;

2、查询指定列

 select name,gender from student;

3、查询还可以是表达式

也就是说在查询过程中可以进行一些简单的运算 decimal(3,1) 三位有效数字,保留一位小数

create table exam_result(id int,name varchar(20),chinese decimal(3,1),math decimal(3,1),english decimal(3,1));

insert into exam_result(id,name,chinese,math,english) values(1,'唐三藏',67,98,56),(2,'孙悟空',87.5,78,77),(3,'猪悟能',88,98,90),(4,'曹孟德',82,84,67),(5,'刘玄德',55.5,85,45),(6,'孙权',70,73,78.5),(7,'宋公明',75,65,30);

select name,math+10 as newmath from exam_result;

因为查询出来的数据形成的是临时表 decimal(3,1)只对原表的数据有作用 而对于临时表是不起作用的
所以说在执行了math+10操作之后会出现108.0这样的数字(有效数字为4位)

查询每个同学的总成绩:

select name,chinese+math+english as sum_grade from exam_result;

注意:

表达式查询是对于列与列之间进行运算

4、查询时候指定别名 as
5、去重查询:distinct

对指定的列进行去重(将重复的行只保留一个)

select distinct math from exam_result;

注意:
distinct指定多个列的时候,要求这些列的值都相同,才会视为重复
6、按照查询结果排序 order by

select name,math from exam_result order by math asc; 
select name,math from exam_result order by math desc;
asc为升序
desc为降序 descend
默认为升序排序

注意:还可以指定多个列来进行排序,多个列之间使用逗号来进行分隔 并且这个列越靠前,就越会优先考虑

select * from exam_result order by math desc,chinese desc;

7、条件查询

通过where子句+条件表达式完成条件查询

相当于针对数据库的表进行遍历 取出每一行数据,将数据代入条件中,判断条件是否符合,如果符合就保留,作为结果集合的一部分,否则就继续查找下一行。

注意:条件查询可以直接取两个列来进行比较

select * from exam_result where chinese > english;

条件查询还可以使用表达式来作为条件

select * from exam_result where chinese+math+english < 200;
select name,chinese+math+english as sum from exam_result where chinese+math+english < 200;

and和or的使用:

select * from exam_result where chinese > 80 and english > 80;
select * from exam_result where chinese > 80 or english > 80;

注意:

and和or具有优先级,优先执行and

范围查询:between and 前闭后闭区间 还有in()操作

模糊查询:like

1、使用% 表示任意0个字符或N个字符
2、使用_ 表示任意1个字符

姓孙:
select * from exam_result where name like '孙%';
孙权:
select * from exam_result where name like '孙_';
孙悟空:
select * from exam_result where name like '孙__';

你可能感兴趣的:(#,mysql小课,mysql,数据库,sql)